Chapter 33. ����ϵͳ

Table of Contents
33.1. ��ѯ��
33.2. ��ͼ�͹���ϵͳ
33.2.1. SELECT���������ת
33.2.2. ��SELECT������ͼ����
33.2.3. PostgreSQL����ͼ��ǿ������
33.2.4. ����һ����ͼ
33.3. �� INSERT��UPDATE����DELETE �ϵĹ���
33.3.1. ���¹����������ת��
33.3.2. ����ͼ����
33.4. �����Ȩ��
33.5. ���������״̬
33.6. �����봥����֮�Ƚ�

�������� PostgreSQL ��Ĺ���ϵͳ�� ��������ϵͳ�ĸ����Ǻܼ򵥵ģ�������ʵ��ʹ�õ�ʱ��������ܶ�ϸ΢�����⡣

��Щ���������ݿ�ϵͳ���嶯̬�����ݿ������Щͨ���Ǵ洢���̺ʹ������� �� PostgreSQL ���Щ����Ҳ����ͨ�������ʹ�������ʵ�֡�

����ϵͳ������׼ȷ��˵����ѯ��д����ϵͳ���Ǻʹ洢���̺ʹ�������ȫ��ͬ�Ķ����� ���Ѳ�ѯ�޸�Ϊ��Ҫ���ǹ������ʽ��Ȼ����޸Ĺ��IJ�ѯ���ݸ���ѯ�滮��ִ�С� ���Ƿdz���Ч�Ĺ��߲��ҿ�������������ѯ���Թ��̣���ͼ���Ͱ汾�ȡ� �������ϵͳ�����ۻ����������� �й����ݿ�ϵͳ�Ĺ��򣬹��̣��������ͼ �� A Unified Framework for Version Modeling Using Production Rules in a Database System �������ۡ�

33.1. ��ѯ��

Ҫ������ϵͳ��ι���������Ҫ֪�������ʱ�������Լ���������ͽ����ʲô��

����ϵͳλ�ڷ������͹滮��֮�䡣�Է���������� -- һ����ѯ���� �Լ��û��������д������Ϊ���룬 ��д����Ҳ��һ����ѯ����ֻ����������һЩ��չ��Ϣ�� Ȼ�󴴽�������߶����ѯ����Ϊ����� ������������������Ȼ����Щ�������������ɵĶ����� ����κ���������ϵͳ�������Ķ������ǿ����� SQL �����ġ�

��ôʲô�Dz�ѯ���أ� ����һ�� SQL �����ڲ�������ʽ�� ��ʱ��ɸ�����ÿ�������ز��ֶ��Ƿֱ�洢�ġ� ��������������ò��� debug_print_parse�� debug_print_rewritten���� debug_print_plan�� ��ô������ڷ�������־�п�����Щ��ѯ���� ������Ҳ���Բ�ѯ���ķ�ʽ�洢�ģ������ϵͳ��pg_rewirte ���档�����������������������ĸ�ʽ������������������ȫһ���ġ�

�Ķ�һ�����ѯ����Ҫһ���ľ��飬 ������Ϊ����ѯ���� SQL ���־�����������ϵͳ�� ��������ĵ��������������ζ�ȡ���ǡ�

�����Ƕ�ȡ�����в�ѯ���� SQL ����ʱ�� ���DZ����ܹ�ʶ�����䱻�ֽ����ڲ�ѯ����ij�Ա�� ��ѯ���ij�Ա��

�������� �� command type ��

����һ���򵥵�ֵ��˵���������� ��SELECT��INSERT��UPDATE��DELETE�� ���������ѯ����

���� ��range table��

��Χ����һ����ѯ��ʹ�õĹ�ϵ���б� ��SELECT���������FORM�ؼ��ֺ�������Ĺ�ϵ��

ÿ����Χ���ʾһ�����һ����ͼ�������Dz�ѯ���ĸ���Ա���������� �ڲ�ѯ�����Χ�����ô��Ŷ��������������õģ� �������ﲻ������ SQL�����һ�������Ƿ����������⡣ ��������������˹���ķ�Χ�����ܻᷢ���� ���µ����ӽ����������������

�����ϵ��result relation��

����һ����Χ������������ڱ�ʶ��ѯ���ǰ���ı�

SELECT��ѯͨ��û�н����ϵ������SELECT INTO ��������һ�� CREATE TABLE�� INSERT ... SELECT���У������������ǾͲ����������ˡ�

��INSERT��UPDATE��DELETE����� �����ϵ�Ǹ��ķ���Ӱ��ı�����ͼ������

Ŀ���� ��target list��

Ŀ������һ�ж����ѯ����ı��ʽ����SELECT������£� ��Щ���ʽ���ǹ�����ѯ����������Ķ����� ������λ��SELECT��FROM�ؼ���֮��ı��ʽ ��* ֻ�DZ���һ����ϵ�������ֶε���д��������������չΪ�������ֶΣ� ��˹���ϵͳ��Զ������������

DELETE ����ҪĿ��������Ϊ���Dz������κν���� ʵ���Ϲ滮�������Ŀ�ı���������һ�������CTID��¼�� �������ڹ���ϵͳ֮�������ǽ��Ժ����ۣ����ڹ���ϵͳ���ԣ�Ŀ�����ǿյġ�

����INSERT�������棬Ŀ����������Ӧ�ý�������ϵ�����С� ��Щ����Щ��VALUES�Ӿ���ı��ʽ���� INSERT ... SELECT ������ SELECT �Ӿ�����ı��ʽ���ɡ� ��д���̵ĵ�һ������Ϊ�κβ�����ԭʼ�IJ�ѯ��ֵ��������ȱʡֵ���ֶ�����Ŀ���б�� �κ��������ֶΣ����޸���ֵ��Ҳ��ȱʡ�ģ����ɹ滮���Զ�����һ������ NULL ���ʽ��

����UPDATE�������Ŀ���У�����Ӧ���滻���е����С� �ڹ���ϵͳ���ֻ�������Բ�ѯ�� SET attribute = expression���ֳ�ȡ�ı��ʽ�� ��ʱ���滮����ͨ������Ӿ��г�ȡ���ݵ����еı��ʽ�ķ�������ȱʧ���ֶΡ� ������Ҳ���� ��DELETE���������������CTID��¼��

Ŀ�������ÿ��Ԫ�ض�������һ�����ʽ�� ������Ϊ����ֵ������Ϊһ��ָ��ij����Χ������Ĺ�ϵ��һ���ֶεı����� ����Ϊһ���ɺ������ã��������������������ȹ��ɵı��ʽ����

���� ��qualification��

��ѯ������һ�����ʽ�����dz�������Щ������Ŀ���������Ŀ�� ������ʽ��ֵ��һ������ֵ��ͨ����ֵ���ж϶����ս�����Ƿ�Ҫִ���� ��INSERT��UPDATE��DELETE �� SELECT���� ����һ��SQL ��� ��WHERE�Ӿ䡣

������

��ѯ����������ʾ��FROM �Ӿ�Ľṹ�� ������SELECT FROM a, b, c�����ļ򵥲�ѯ�� ������ֻ��һ��FROM��ļ��б� ��Ϊ��������������˳���������ǡ� �����ʹ���� JOIN ���ʽ — ������ outer join ��ʱ�� ���Ǿͱ��밴�ո�������ʾ��˳��������ӡ� ��������ʾ JOIN ���ʽ�Ľṹ�� ���ض��� JOIN �Ӿ䣨���� ON ���� USING ���ʽ����ص�������Ϊ��������Щ�������ڵ���������ʽ�洢�� ��ʵ֤���Ѷ��� WHERE ���ʽҲ���������ڶ�������������������洢�Ƿdz�����ġ�����ʵ��������������SELECT���� FROM �� WHERE �Ӿ䡣

���� ��others��

��ѯ�����������֣���ORDER BY �Ӿ䣬���Dz�׼�����������ۡ� ����ϵͳ�ڸ��ӹ���ʱ�������ORDER BY �Ӿ䣩�滻һЩ��Ŀ�� ��������ڹ���ϵͳ�Ļ���ԭ��û�ж���ϵ��