PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 9. �����Ͳ����� | Fast Forward | Next |
�������� PostgreSQL �������õ� SQL ���ݵ��Ӳ�ѯ���ʽ�����б����г��ĵı��ʽ�����ز���ֵ����/�٣������
EXISTS ( subquery )
EXISTS �IJ�����һ�������SELECT��䣬 ����˵�Ӳ�ѯ��ϵͳ���Ӳ�ѯ�����������ж����Ƿ��С� ��������ٷ���һ�У���ô EXISTS �Ľ����Ϊ"��"�� ����Ӳ�ѯû�з����У���ô EXISTS �Ľ����"��"��
�Ӳ�ѯ��������������Χ�IJ�ѯ�ı�������Щ�����ڸ��Ӳ�ѯ���κ�һ�μ����ж����������á�
����Ӳ�ѯͨ��ֻ�����е����ж����Ƿ������������һ��Ϊֹ�� �����ǵȵ�ȫ��������������д�κ��и����õ��Ӳ�ѯ���Dz����ǵģ�����������к���������Щ�������Ƿ����Ǻ����жϵġ�
��Ϊ���ֻȡ�����Ƿ�᷵���У�����ȡ������Щ�е����ݣ� ��������Ӳ�ѯ������б�ͨ�����ؽ�Ҫ�ġ�һ�����õı���ϰ�������������ʽд���е�EXISTS���� EXISTS(SELECT 1 WHERE ...)�������������������⣬ ������Щʹ�� INTERSECT ���Ӳ�ѯ��
�������������������col2�ϵ�һ�������ӣ�������Ϊÿ�� tab1�����������һ���������ʹ���ڶ��ƥ��tab2����Ҳ��ˡ�
SELECT col1 from tab1 WHERE EXISTS(SELECT 1 from tab2 WHERE col2 = tab1.col2);
expression IN (subquery)
IN ��������ʽ�����ֱ���һ��Բ�������������Ӳ�ѯ�� ������ֻ����һ���ֶΡ����ֱ߱��ʽ���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ� ����ҵ��κε����Ӳ�ѯ�е��������ô IN �Ľ������"��"�� ���û���ҵ�����У���ô�����"��"�������Ӳ�ѯû�з����κ��е��������ӣ���
��ע��������ֱ߱��ʽ���� NULL������û����ȵ����ֱ���ֵ�� ����������һ�����ֱ������� NULL����ô IN ����Ľ������ NULL�������Ǽ١� �����Ϊ������ SQL �������� NULL ֵ���ʱ�Ĺ��ġ�
�� EXISTS һ���������Ӳ�ѯ�������������ȫ�Dz����ǵġ�
row_constructor IN (subquery)
������ʽ�� IN �����ֱ���һ���й������� �� Section 4.2.11 ���������� ���ֱ���һ��Բ�������������Ӳ�ѯ�������뷵�غ����ֱ߷��ص����б��ʽ�����ɵ���ȫһ������ֶΡ� ���ֱ߱��ʽ���Ӳ�ѯ�����ÿһ�н��м���ܱȽϡ�����ҵ�������ȵ��Ӳ�ѯ�У��� IN �Ľ��Ϊ"��"�����û���ҵ�����У� ��ô���Ϊ"��"�������Ӳ�ѯ�������е��������ӣ���
ͨ�������ʽ�����Ӳ�ѯ����� NULL �ǰ��� SQL �������ʽ��һ����������ϵġ� ��������ж�Ӧ�ij�Ա���Ƿǿղ�����ȣ���ô��Ϊ��������ȣ���������Ӧ��ԱΪ�ǿ��Ҳ��ȣ���ô�����в��ȣ� �����������бȽϵĽ����δ֪��NULL������������еĽ��Ҫô�Dz��ȣ� Ҫô�� NULL������������һ�� NULL����ô IN �Ľ���� NULL��
expression NOT IN (subquery)
���ֱ���һ����Բ������Χ���Ӳ�ѯ�������뷵��һ���ֶΡ����ֱ߱��ʽ���Ӳ�ѯ�����ÿһ�н��м���ͱȽϡ� ���ֻ�ҵ�����ȵ��Ӳ�ѯ�У������Ӳ�ѯ�������е��������������ôNOT IN �Ľ����"��"�� ����ҵ��κ�����У�����Ϊ"��"��
��ע��������ֱ߱��ʽ���ؿգ��������û�е������ֱߵ�ֵ����������һ�����ֱ������ɿգ� ��ô NOT IN ����Ľ�����ǿգ��������档���Ǹ��� SQL �Բ����Ϳ�ֵ��ϵ�һ������ƶ��ġ�
�� EXISTS һ���������Ӳ�ѯ����ȫ�����Dz����ǵġ�
row_constructor NOT IN (subquery)
NOT IN ��������ʽ���ֱ���һ���й������� �� Section 4.2.11 �������������ֱ���һ��Բ�������������Ӳ�ѯ�� �����뷵�غ����ֱ߱��ʽ���ص���һ������ֶΡ� ���ֱ߱��ʽ���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ� ���ֻ���ֲ������Ӳ�ѯ�е��������ô NOT IN �Ľ������"��"�� �������Ӳ�ѯû�з����κ��е��������ӣ�������ҵ�����У���ô�����"��"��
��ͨ��һ�������ʽ�����Ӳ�ѯ����� NULL �ǰ��� SQL �������ʽ��һ����������ϵġ� ��������ж�Ӧ�ij�Ա���Ƿǿղ�����ȣ���ô��Ϊ��������ȣ���������Ӧ��ԱΪ�ǿ��Ҳ��ȣ���ô�����в��ȣ� �����������бȽϵĽ����δ֪(NULL)����������еĽ��Ҫô�Dz��ȣ� Ҫô�� NULL������������һ�� NULL����ô NOT IN �Ľ���� NULL��
expression operator ANY (subquery) expression operator SOME (subquery)
������ʽ�� ANY ���ֱ���һ��Բ�������������Ӳ�ѯ�� �����뷵��һ���ֶΡ����ֱ߱��ʽ��ʹ�ø����� operator���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ� Ŀǰ�������κ���ֵ�������ô ANY �Ľ������"��"�� ���û���ҵ���ֵ�������ô�����"��"�������Ӳ�ѯû�з����κ��е��������ӣ���
SOME �� ANY ��ͬ��ʡ� IN ��Ч�� = ANY��
��ע�����û���κγɹ�����������һ�����ֱ���Ϊ�ò������������ NULL�� ��ô ANY ����Ľ������ NULL�������� FALSE�� �����Ϊ������ SQL �������� NULL ֵ���ʱ�Ĺ��ġ�
�� EXISTS һ���������Ӳ�ѯ�������������ȫ�Dz����ǵġ�
row_constructor operator ANY (subquery) row_constructor operator SOME (subquery)
��������ʽ�����ֱ���һ���й��������� Section 4.2.11 �������������� ���ֱ���һ��Բ�������������Ӳ�ѯ�� �����뷵�غ����ֱ��б�����ı��ʽһ������С����ֱ߱��ʽ��ʹ�ø����� operator���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ� Ŀǰ��ϵͳֻ����ʹ�� = �� <> �������������е� ANY ���졣 ����ֱ��ҵ���Ȼ��߲���ȵ��У���ô ANY �Ľ������ "��"�����û���ҵ��������У���ô�����"��"�������Ӳ�ѯû�з����κ��е��������ӣ���
ͨ�������ʽ�����Ӳ�ѯ����� NULL �ǰ��� SQL �������ʽ��һ����������ϵġ� ��������ж�Ӧ�ij�Ա���Ƿǿղ�����ȣ���ô��Ϊ��������ȣ���������Ӧ��ԱΪ�ǿ��Ҳ��ȣ���ô�����в��ȣ� �����������бȽϵĽ����δ֪(NULL)�����������һ�� NULL �н���� ��ô ANY �Ľ������TRUE ���� NULL��
expression operator ALL(subquery)
ALL ��������ʽ�����ֱ���һ��Բ�������������Ӳ�ѯ�� ������ֻ����һ�С����ֱ߱��ʽ��ʹ�ø����� operator���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ��ò������������ɲ�������� ��������еĽ����Ϊ"��"���������Ӳ�ѯû�з����κ��е��������ӣ��� ��ô ALL �Ľ������"��"�����û�д����κμ�ֵ�������ô�����"��"��
NOT IN ���� <> ALL��
��ע�����û������ʧ�ܵ���������һ�����ֱ���Ϊ�ò������Ľ������ NULL ֵ�� ��ô ALL ����Ľ������ NULL�������� TRUE�� �����Ϊ������ SQL �������� NULL ֵ���ʱ��һ����ġ�
�� EXISTS һ���������Ӳ�ѯ�������������ȫ�Dz����ǵġ�
row_constructor operator ALL (subquery)
ALL ��������ʽ�����ֱ���һ���й��������� Section 4.2.11 ������ ���ֱ���һ��Բ�������������Ӳ�ѯ�������뷵�غ����ֱ��и����ı��ʽһ������ֶΡ� ���ֱ߱��ʽ��ʹ�ø����� operator���Ӳ�ѯ�Ľ����ÿһ�н���һ�μ���ͱȽϡ� Ŀǰϵͳֻ����ʹ�� = �� <> �������������е� ALL ��ѯ�� ��������Ӳ�ѯ������Ȼ��߲���ȵ��У���ô ALL �Ľ������"��"���������Ӳ�ѯû�з����κ��е��������ӣ��� ����ֱ����κβ���Ȼ�����ȵ��У���ô�����"��"��
ͨ�������ʽ�����Ӳ�ѯ����� NULL �ǰ��� SQL �������ʽ��һ����� ������ϵġ���������ж�Ӧ�ij�Ա���Ƿǿղ�����ȣ���ô��Ϊ������ ��ȣ���������Ӧ��ԱΪ�ǿ��Ҳ��ȣ���ô�����в��ȣ� �����������бȽϵĽ����δ֪(NULL)�����������һ�� NULL �н���� ��ô ALL �Ľ���Ͳ�������TRUE���������� FALSE ���� NULL��
row_constructor operator (subquery)
���ֱ���һ���й��������� Section 4.2.11 ������ ���ֱ���һ��Բ�������������Ӳ�ѯ���ò�ѯ���뷵�غ����ֱ߱��ʽ��Ŀ��ȫһ�����ֶΡ� ���⣬���Ӳ�ѯ���ܷ��س���һ�е���������������������У���ô������� NULL���� ���ֱ����������ֱߵ��Ӳ�ѯ����У��������ֱ߱��ʽ�б���бȽϡ�Ŀǰ��ֻ����ʹ�� = �� <> �������������бȽϡ�������зֱ�����Ȼ��߲��ȣ���ô���Ϊ"��"��
ͨ�������ʽ�����Ӳ�ѯ����� NULL �ǰ��� SQL �������ʽ��һ����������ϵġ� ��������ж�Ӧ�ij�Ա���Ƿǿղ�����ȣ���ô��Ϊ��������ȣ���������Ӧ��ԱΪ�ǿ��Ҳ��ȣ���ô�����в��ȣ� �����������бȽϵĽ����δ֪��NULL����