Appendix D. SQL ������

Table of Contents
D.1. ֧�ֵ�����
D.2. ��֧�ֵ�����

������ͼ���� PostgreSQL �ڶ��̶�����ѭ SQL ��׼�� �������Ϣ���Ǽ����Ե�ȫ�����ݣ��������ṩ��һ�����û��Ƕ������� �Ⱥ��������õ��㹻��ϸ����Ϣ��

SQL ��׼����ʽ������ ISO/IEC 9705 "Database Language SQL"�� ����ע��û�����İ档����׼���޸İ�ᾭ���ط����������һ���汾���� 2003 ����ֵġ� �Ǹ��汾������ ISO/IEC 9075:2003�����߼��Ϊ SQL:2003������汾֮ǰ���� SQL:1999 �� SQL-92�� ÿ����׼��������ǰ���Ǹ����������Ƽ������ڰ汾û��ʲô�ٷ��ĺô��� PostgreSQL �Ŀ�����ͼ��׼���ݱ�׼���µ���ʽ�汾��ֻҪ�����ļ��ݲ���ʹ�ͳ�����Ի��߳�ʶ��ͻ�� �� SQL:2003 ��׼�������У�PostgreSQL ��Ŀ�� ISO/IEC 9075 ����������û�д��� ��ʹ��ˣ���� SQL:2003 Ҫ������Զ��Ѿ��õ���֧�֣�ֻ����Щʱ�������﷨���в�ͬ�� �����йر�׼���ݵ����Խ���δ���İ汾�￴����

SQL-92 Ϊ�����Զ������������Լ��� �������еȣ�����ȫ����������Ƽ��� SQL ��׼�����ݿ��Ʒ��ֻ�Ǽ��ݻ������� ��Ϊȫ���еȺ���ȫ������Ҫô��̫�Ӵ�Ҫô���Ǻʹ�ͳ����Ϊ���ͻ��

�� SQL:1999 ��ʼ��SQL ��׼������һ���ܴ�Ķ������Լ��ϣ� ������ SQL-92 ���������ֵ�Ч�ʵ��������� ��Щ�����е�һ���ܴ���Ӽ��γ�"����"���ԣ� ������ÿ�ּ��� SQL ��ʵ�ֱ����ṩ�����ԡ����������Զ��ǿ�ѡ�ġ� ��Щ��ѡ�����������һ���γ�"��"�� SQL ��ʵ�ֿ��Ժų���ѭ��Щ����Ҳ����������ѭ�ض��������顣

SQL:2003 ��׼Ҳ���ѳ�һϵ�в��֣� ÿ�ֶ���һ����д����ʶ����ע����Щ���ֲ���������ŵġ�

PostgreSQL ���� 1��2���� 11 ���֡� ���� 3 ���� ODBC �ӿڣ����� 4 ���� PL/pgSQL ������ԣ� �������߶�û�о����ϸ�ı�׼���ݼ�飬Ҳ��δ��ȫΪ�˱�׼��������

PostgreSQL ֧�ִ���� SQL:2003 ����Ҫ���ԡ����ܹ� 164 ��ǿ����Ҫ����ȫ���ݵĺ�������� PostgreSQL ��ѭ���� 150 �������⣬PostgreSQL ��֧��һ������ѡ�����ԡ� ֵ��һ����ǣ�������д��Щ��ʱ��û���κε�ǰ�汾�����ݿ����ϵͳ����֧��ȫ������ SQL:2003��

����������������ṩ��PostgreSQL ��֧�ֵ���Щ���Ե�һ���б� �������һ���� SQL:2003 �ﶨ���˵����� PostgreSQL �ﻹ��֧�ֵ������б� �������б��ǽ��Ƶģ��������г�Ϊ���ݵ���������һ���С��ϸ���ϵ����� ���ܴ󲿷ֵIJ�֧�ֵ����Կ���ʵ�����Ѿ�ʵ���ˡ��ĵ��������ܻ��ǰ����й���Щ���ã���Щ�����õ���׼ȷ����Ϣ��

ע��: ����һ�����ַ������Դ����ʾһ�������ԡ���ˣ� �����֧���ض��������ԣ���ô������Ҳ�����ڲ�֧�ֵ����ԣ� ��ʹ����֧��������������Ҳ��ˡ�

D.1. ֧�ֵ�����

��ʶ��������ע��
B012����Ƕ��� C 
B021 ֱ�ӵ� SQL 
E011������ֵ�������� 
E011-01����INTEGER �� SMALLINT �������� 
E011-02����REAL, DOUBLE PRECISON, �� FLOAT �������� 
E011-03����DECIMAL �� NUMERIC �������� 
E011-04�������������� 
E011-05������ֵ�Ƚ� 
E011-06��������ֵ��������֮�����������ת�� 
E021�����ַ��������� 
E021-01����CHARACTER �������� 
E021-02����CHARACTER VARYING �������� 
E021-03�����ַ��ı� 
E021-04����CHARACTER_LENGTH ���� 
E021-05����OCTET_LENGTH ���� 
E021-06����SUBSTRING ���� 
E021-07�����ַ����� 
E021-08����UPPER �� LOWER ���� 
E021-09����TRIM ���� 
E021-10�������ַ���������֮�����������ת�� 
E021-11����POSITION ���� 
E021-12�����ַ��Ƚ� 
E031������ʶ�� 
E031-01�����ָ��ı�ʶ�� 
E031-02����Сд�ı�ʶ�� 
E031-03������β���»��� 
E051����������ѯ���� 
E051-01����SELECT DISTINCT 
E051-02����GROUP BY �Ӿ� 
E051-04����GROUP BY ���԰�������<ѡ���б�>����ֶ� 
E051-05����ѡ���б�������ֿ���������Ҫ��ʹ�� AS
E051-06����HAVING �Ӿ� 
E051-07������ѡ���б��������ε� * 
E051-08����FROM �Ӿ���Ĺ����� 
E051-09������ FROM �Ӿ����������ֶ� 
E061��������ν�ʺ��������� 
E061-01�����Ƚ�ν�� 
E061-02����BETWEEN ν�� 
E061-03������һ����ֵ�� IN ν�� 
E061-04����LIKE ν�� 
E061-05����LIKE ν�� ESCAPE �Ӿ� 
E061-06����NULL ν�� 
E061-07���������εıȽ�ν�� 
E061-08����EXISTS ν�� 
E061-09�����Ƚ�ν������Ӳ�ѯ 
E061-11����IN ν��������Ӳ�ѯ 
E061-12���������εıȽ�ν���е��Ӳ�ѯ 
E061-13���������Ӳ�ѯ 
E061-14������������ 
E071����������ѯ���ʽ 
E071-01����UNION DISTINCT ������� 
E071-02����UNION ALL ������� 
E071-03����EXCEPT DISTINCT ������� 
E071-05����ͨ�����������ϵ��ֶβ�������ȫ��ͬ���������� 
E071-06�����Ӳ�ѯ�еı������ 
E081-01����SELECT Ȩ�� 
E081-02����DELETE Ȩ�� 
E081-03��������� INSERT Ȩ�� 
E081-04��������� UPDATE Ȩ�� 
E081-06��������� REFERENCES Ȩ�� 
E081-08����WITH GRANT OPTION 
E091�������Ϻ��� 
E091-01����AVG 
E091-02����COUNT 
E091-03����MAX 
E091-04����MIN 
E091-05����SUM 
E091-06����ALL ����
E091-07����DISTINCT ����
E101�����������ݲ��� 
E101-01����INSERT ��� 
E101-03���������� UPDATE ��� 
E101-04���������� DELETE ��� 
E111�������� SELECT ��� 
E121-01����DECLARE CURSOR 
E121-02����ORDER BY �ֶβ�����ѡ���б��� 
E121-03����ORDER BY �Ӿ��е�ֵ���ʽ 
E121-08����CLOSE ��� 
E121-10����FETCH ��������� NEXT 
E131������ֵ֧�֣�null����ֵ������ 
E141��������������Լ�� 
E141-01����NOT NULL Լ�� 
E141-02����NOT NULL �ֶε� UNIQUE Լ�� 
E141-03����PRIMARY KEY Լ�� 
E141-04�����ο�ɾ�������Ͳο����¶����Ĵ��� NO ACTION ȱʡ�Ļ��� FOREIGN KEY Լ�� 
E141-06����CHECK Լ�� 
E141-07�����ֶ�ȱʡ 
E141-08����PRIMARY KEY ������� NOT NULL 
E141-10��������ϵ����ֿ������κ�˳������ 
E151��������֧�� 
E151-01����COMMIT ��� 
E151-02����ROLLBACK ��� 
E152���������� SET TRANSACTION ��� 
E152-01����SET TRANSACTION ��䣺ISOLATION LEVEL SERIALIZABLE �Ӿ� 
E152-02����SET TRANSACTION ��䣺READ ONLY and READ WRITE �Ӿ� 
E161����ʹ��ǰ����˫���ŵ� SQL ע�� 
F021����������Ϣģʽ 
F021-01����COLUMNS ��ͼ 
F021-02����TABLES ��ͼ 
F021-03����VIEWS ��ͼ 
F021-04����TABLE_CONSTRAINTS ��ͼ 
F021-05����REFERENTIAL_CONSTRAINTS ��ͼ 
F021-06����CHECK_CONSTRAINTS ��ͼ 
F031��������ģʽ���� 
F031-01�������ڴ������û������ CREATE TABLE ��� 
F031-02����CREATE VIEW ��� 
F031-03����GRANT ��� 
F031-04����ALTER TABLE ��䣺ADD COLUMN �Ӿ� 
F031-13����DROP TABLE ��䣺RESTRICT �Ӿ� 
F031-16����DROP VIEW ��䣺RESTRICT �Ӿ� 
F031-19����REVOKE ��䣺RESTRICT �Ӿ� 
F032 CASCADE ɾ����Ϊ 
F033 ALTER TABLE ��䣺DROP COLUMN �Ӿ� 
F034 ��չ�� REVOKE ��� 
F034-01 REVOKE �����ģʽ����������֮����û�ִ�� 
F034-02 REVOKE ��䣺GRANT OPTION FOR �Ӿ� 
F034-03 ����һ���� WITH GRANT OPTION Ȩ�޵������˵�Ȩ�޵� REVOKE ��� 
F041�������������� 
F041-01���������ӣ����Dz�һ���� INNER ���֣� 
F041-02����INNER ���� 
F041-03����LEFT OUTER JOIN 
F041-04����RIGHT OUTER JOIN 
F041-05������Ƕ�׵������� 
F041-07�����������ӻ�������������ڲ��Ҳ�������������� 
F041-08����֧�����бȽϲ����������������� = �� 
F051�����������ں�ʱ�� 
F051-01����DATE �������ͣ����� DATE �ı�֧�֣� 
F051-02��������С���벿��������Ϊ 0 �� TIME �������ͣ����� TIME �ı���֧�֣� 
F051-03������������ 0 �� 6 λС�����ȵ� TIMESTAMP �������� (���� TIMESTAME �ı���֧��) 
F051-04������ DATE��TIME���� TIMESTAMP ���������ϵıȽ�ν�� 
F051-05����������ʱ�����ͺ��ַ�����֮�����ȷ CAST 
F051-06����CURRENT_DATE 
F051-07����LOCALTIME 
F051-08����LOCALTIMESTAMP 
F052��ǿ����ʱ����ʩʱ����������ʱ������ 
F081������ͼ��� UNION �� EXCEPT 
F111 SERIALIZABLE ֮��ĸ��뼶�� 
F111-01 READ UNCOMMITTED ���뼶����Ϊ�� READ COMMITTED ����
F111-02 READ COMMITTED ���뼶�� 
F111-03 REPEATABLE READ ���뼶����Ϊ�� SERIALIZABLE ����
F131��������IJ��� 
F131-01�����ڴ��з������ͼ�IJ�ѯ��֧�� WHERE��GROUP BY���� HAVING �Ӿ� 
F131-02�����ڴ��з������ͼ�IJ�ѯ֧�ֶ���� 
F131-03�����ڴ��з������ͼ�IJ�ѯ��֧�ּ��Ϻ��� 
F131-04�������� GROUP BY �� HAVING �Ӿ�ͷ�����ͼ���Ӳ�ѯ 
F131-05�������� GROUP BY �� HAVING �Ӿ��Լ�������ͼ�ĵ��� SELECT 
F171 ÿ�û��Ķ��ģʽ 
F191��ǿ�����Թ����ο�ɾ������ 
F201����CAST ���� 
F221������ȷ��ȱʡ 
F222 INSERT ��䣺DEFAULT VALUES �Ӿ� 
F231 Ȩ�ޱ� 
F231-01 TABLE_PRIVILEGES ��ͼ 
F231-02 COLUMN_PRIVILEGES ��ͼ 
F231-03 USAGE_PRIVILEGES ��ͼ 
F251 ��֧�� 
F261����CASE ���ʽ 
F261-01������ CASE 
F261-02���������� CASE 
F261-03����NULLIF 
F261-04����COALESCE 
F271 ����ַ��ı� 
F281 LIKE ��ǿ 
F302OLAP ��ʩINTERSECT ������� 
F302-01OLAP ��ʩINTERSECT DISTINCT ������� 
F302-02OLAP ��ʩINTERSECT ALL ������� 
F304OLAP ��ʩEXCEPT ALL ������� 
F311-01����CREATE SCHEMA 
F311-02�����������ñ�� CREATE TABLE 
F311-03����CREATE VIEW 
F311-05����GRANT ��� 
F321 �û���֤ 
F361 �ӳ���֧�� 
F381 ��չ��ģʽ���� 
F381-01 ALTER TABLE ��䣺ALTER COLUMN �Ӿ� 
F381-02 ALTER TABLE ��䣺ADD CONSTRAINT �Ӿ� 
F381-03 ALTER TABLE ��䣺DROP CONSTRAINT �Ӿ� 
F391 ����ʶ�� 
F401OLAP ��ʩ��չ�ı����� 
F401-01OLAP ��ʩNATURAL JOIN 
F401-02OLAP ��ʩFULL OUTER JOIN 
F401-03OLAP ��ʩUNION JOIN 
F401-04OLAP ��ʩCROSS JOIN 
F411��ǿ����ʱ����ʩʱ������ 
F421 �����ַ� 
F431 ֻ���Ŀɹ����α� 
F431-01 ����ȷ FETCH �� NEXT 
F431-02 FETCH FIRST 
F431-03 FETCH LAST 
F431-04 FETCH PRIOR 
F431-05 FETCH ABSOLUTE 
F431-06 FETCH RELATIVE 
F441 ��չ�ļ��Ϻ���֧�� 
F471���������Ӳ�ѯ��ֵ 
F481������չ�� NULL ν�� 
F491��ǿ�����Թ���Լ������ 
F501�������Ժͼ�������ͼ 
F501-01����SQL_FEATURES ��ͼ 
F501-02����SQL_SIZING ��ͼ 
F501-03����SQL_LANGUAGES ��ͼ 
F502 ��ǿ���ĵ��� 
F502-01 SQL_SIZING_PROFILES ��ͼ 
F502-02 SQL_IMPLEMENTATION_INFO ��ͼ 
F502-03 SQL_PACKAGES ��ͼ 
F511 BIT �������� 
F531 ��ʱ�� 
F555��ǿ����ʱ����ʩ��ǿ���뾫�� 
F561 ȫֵ���ʽ 
F571 ��ֵ���� 
F591OLAP ��ʩ������ 
F611 ָʾ���������� 
F651 ���������δ� 
F701��ǿ�����Թ����ο����¶��� 
F711 ALTER �� 
F761 �Ự���� 
F771 ���ӹ��� 
F781 �����õIJ��� 
F791 �����е��α� 
F801 ȫ�����Ϻ��� 
S071��ǿ�Ķ���֧�������е� SQL ·���Լ����������� 
S111��ǿ�Ķ���֧����ѯ���ʽ�е� ONLY 
S211��ǿ�Ķ���֧��, SQL/MM ֧���û���������ת������ 
T031 BOOLEAN �������� 
T141 SIMILAR ν�� 
T151 DISTINCT ν�� 
T171 ������� LIKE �Ӿ� 
T191��ǿ�����Թ����ο����� RESTRICT 
T201��ǿ�����Թ������ڲο������ԵĿɱȽϵ��������� 
T211-01��ǿ�����Թ���, �������ݿ���һ��������� UPDATE��INSERT������ DELETE �ϻ�Ծ�Ĵ����� 
T211-02��ǿ�����Թ���, �������ݿ�BEFORE ������ 
T211-03��ǿ�����Թ���, �������ݿ�AFTER ������ 
T211-04��ǿ�����Թ���, �������ݿ�FOR EACH ROW ������ 
T211-07��ǿ�����Թ���, �������ݿ�TRIGGER Ȩ�� 
T212��ǿ�����Թ�����ǿ�Ĵ��������� 
T231 SENSITIVE �α� 
T241 START TRANSACTION ��� 
T271 ����� 
T312 OVERLAY ���� 
T321-01���������ص��û����庯�� 
T321-03������������ 
T321-06����ROUTINES ��ͼ 
T321-07����PARAMETERS ��ͼ 
T322PSM, SQL/MM ֧��SQL ���õĺ����Լ����̵����� 
T323 �ⲿ���̵���ȷ��ȫ 
T351 SQL �еĿ�ע�ͣ�/*...*/ע�ͣ� 
T441 ABS �� MOD ���� 
T501 ��ǿ�� EXISTS ν�� 
T551 ȱʡ�﷨�Ŀ�ѡ���� 
T581 ������ʽ���ִ����� 
T591 ���ܵĿ��ֶε� UNIQUE Լ��