PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
�������� SQL ����� ��Щ��������������µĻ�������Щ�����潫��ϸ���� SQL ����������ڶ���������ݡ�
����Ҳ������Щ�Ѿ�����Ϥ SQL ���û���ϸ�Ķ����£���Ϊ��һЩ��������� SQL ���ݿ�֮��ʵ�ֵò���һ�£���������Щ������ PostgreSQL ���еġ�
SQL ������һϵ��������ɡ� һ����������һϵ���Ǻ����ɣ� ��һ���ֺţ�";"����β�� ����������ֹҲ����һ�������Щ�Ǻ��ǺϷ���ȡ�����ض���������
�Ǻſ�����һ���ؼ����� һ����ʶ����һ�� ���Ű�Χ�ı�ʶ���� һ���ı�����������������������ַ����š� �Ǻ�ͨ���ɿհָ����ո�tab�����з���������������ڻ�����ʱ��Ҳ���Բ��� ��ͨ��ֻ��һ�������ַ���һЩ�����Ǻ�����������ʱ��
���⣬�� SQL �����������ע���� ���Dz��ǼǺţ�����ʵ���ϵ�Ч�ڿհס�
���磬���������ǣ���ϣ��Ϸ��� SQL ���룺
SELECT * FROM MY_TABLE; UPDATE MY_TABLE SET A = 5; INSERT INTO MY_TABLE VALUES (3, 'hi there');
������������������У�ÿ��һ�У����ܲ���Ҫ����ô���� �������������һ�������������Ժ���ط��ѳɶ���У���
�������Щ�Ǻű�ʶ�����Щ�Dz�����������ĽǶȿ��ǣ� SQL ������Ƿdz�һ�¡�ͨ��ͷ�����Ǻ����������֣� ����������������ͨ������˵��һ��"SELECT"�� һ��"UPDATE"����һ��"INSERT"��� ������ UPDATE ��������Ҫ��һ�� SET ��ij��λ�ó��֣������������� INSERT ��Ҫ����һ�� VALUES ��������ÿ�������ȷ������� Part VI ����д��
�������������� SELECT��UPDATE�� �� VALUES �����ļǺŶ����ؼ��������ӣ� Ҳ������Щ�� SQL �������й̶�����ĵ��ʡ� �Ǻ� MY_TABLE �� A ����ʶ�������ӡ� ����ʹ�����ǵ�����IJ�ͬ�����DZ�ʶ���ֶΣ������������ݿ��������֡� ��ˣ���ʱ��ֻ�Ǽؽ�����"����"�� �ؼ��ֺͱ�ʶ������ͬ���Ĵʷ��ṹ����˼��������û����ʶ��������֮ǰ��������һ���Ǻ��DZ�ʶ���������֡� ������� Appendix C ���ҵ�һ���ؼ��ֵ������б�
SQL ��ʶ���ؼ��ֱ�����һ����ĸ��ͷ ��a-z �Լ����������ǵ���ĸ�Լ���������ĸ �����»��߿�ͷ ��_����ͷ����ʶ���ؼ����������ַ���������ĸ�����֣�0-9���� �����»��ߣ��� SQL �����ᶨ��������ֻ������»��߿�ͷ���β�Ĺؼ��֡�
ϵͳʹ�ò����� NAMEDATALEN-1 ���ַ���Ϊ��ʶ���� �������������д���������֣������ǻᱻ�ضϡ�ȱʡʱ�� NAMEDATALEN �� 64����˱�ʶ������� 63 �������������������⣬��ô������� src/include/postgres_ext.h ���� NAMEDATALEN ���ı�����
UPDATE MY_TABLE SET A = 5;
Ҳ���Ե�Ч��д��
uPDaTE my_TabLE SeT a = 5;
һ�ֺ�ϰ���ǰѹؼ���д�ɴ�д�������ֵ���Сд��
UPDATE my_table SET a = 5;
���еڶ��ֱ�ʶ�����ָ���ʶ�� �����Ű�Χ�ı�ʶ���� ����ͨ����˫���ţ�" �� ���Χ�����ַ������γɵġ� �ָ���ʶ������һ����ʶ���������ǹؼ��֡���ˣ�������� "SELECT" ��ʾһ���ֶ����ֻ������ֽ� "SELECT" �ı���һ��û�����ŵ� SELECT ��������һ�������һ���֣���������������һ��������ֻ����ֶ������õĻ��ͻ����һ���������� ��������ӿ���������ı�ʶ����ôд��
UPDATE "my_table" SET "a" = 5;
���Ű�Χ�ı�ʶ�������������ű���������κ������ַ��� Ҫ����һ��˫���ţ����ǿ���д����˫���š� �������ǾͿ��Թ�����Щԭ���Dz�����ı�����ֶ����֣� ������Щ�����հ���ŵ����֡��������������ɡ�
��һ����ʶ�������Ű�Χ������ͬʱҲ������Сд��أ���û�����Ű�Χ��������������ת��Сд�� ���磬������Ϊ��ʶ�� FOO��foo �� "foo" ��һ���� PostgreSQL���֣� �� "Foo" �� "FOO" �����������Լ�����֮�䶼�Dz�ͬ�ġ� ��PostgreSQL ���δ�����ŵ���������ת����Сд�� ��� SQL �Dz����ݵģ�SQL ��Ҫ��δ�����Ű�Χ��������������ת�ɴ�д�� ��� foo ���� "FOO"�� �������д����ֲ�ij�����ô���ǽ�����Ҫô���������Ű�Χ��ij�����֣�Ҫô�ͼ����������
�� PostgreSQL ���������������͵ij����� �ַ�����λ��������ֵ�� ����Ҳ��������Ϊ��ȷ�����ͣ������Ϳ���ʹ�ø�ȷ�ı�����ʽ�Լ�����ͨ��ϵͳ����Ч�ش��� ��Щ��ѡ���ں����С��������
SQL ���һ���ִ��ı����õ����ţ�'����Χ�������ַ����У� ���磬'This is a string'�� ���������ִ������ķ����� SQL ������ġ� ���������͵��ִ�������Ƕ�뵥���ŵı����ݵ��������������������ĵ����ű��磬'Dianne''s horse'�� ���⣬PostgreSQL ��������һ����б�ܣ�"\"�������ݵ����ţ� ���ͬһ���ִ�����д��'Dianne\'s horse'��
����һ�� PostgreSQL ��չ�ǻ�����ʹ�� C-���ķ�б�����ݣ� \b ��һ���˸�\f ��һ����ֽ��\n ��һ�����з��� \r ��һ���س���\t ��һ��ˮƽ�Ʊ������\xxx�� ���� xxx ��һ���˽��������Ƕ�Ӧ ASCII ����ַ����κ��������ڷ�б�ܺ�����ַ��������ı������� ��ˣ�Ҫ���ַ��������������б�ܣ������д������б�ܡ�
����Ϊ����ַ����ܳ������ַ��������С�
����ֻ��ͨ��������һ�����з��Ŀհָ����ַ��������ᱻ������һ�𣬲�����������д��һ���������� ���磺
SELECT 'foo' 'bar';
����
SELECT 'foobar';
��
SELECT 'foo' 'bar';
�ǷǷ���������������Щ�������Ϊ�� SQL �����ģ� PostgreSQL ��ѭ������
���������ִ������ı�����ͨ�����ܷ��㣬��������ִ������ܶ���Ż��߷�б�ܣ� ��ô����ִ������ݿ��ܾͻ��úܿ�ɬ����Ϊÿ�������Ŷ�Ҫ�ӱ��� Ϊ�������ֳ����µIJ�ѯ���߿ɶ��ԣ�PostgreSQL ��������һ�ֳ���"��Ԫ����Χ"���ִ����������취�� һ��ͨ����Ԫ����Χ�������ִ�������һ����Ԫ���ţ�$����һ����ѡ����������ַ�"�Ǻ�"�� ����һ����Ԫ���ţ�һ������ִ������������ַ������У�һ����Ԫ���ţ��Լ�һ���Ϳ�ʼ�����Ԫ����Χ�ļǺ���ͬ�ļǺţ���һ����Ԫ������ɡ� ���磬������������ͬ�ķ���������Ԫ����Χ������ǰ������ӣ�
$$Dianne's horse$$ $SomeTag$Dianne's horse$SomeTag$
��ע�⣬����Ԫ����Χ���ִ�������ſ��Բ�������ʹ�á� ʵ���ϣ���һ����Ԫ����Χ���ִ��û��ʲô�ַ���Ҫ���ݣ� �ִ��������ǰ�����������д����б�ܲ�������ģ� ��Ԫ���Լ�Ҳ��������ģ��������ǺͿ���ǩ��һ����ƥ�䡣
���ǿ���ͨ���ڲ�ͬǶ����ʹ�ò�ͬ����Ԫ�������ִ�������ʵ��Ƕ�ס� �������д���������ʱ���磺
$function$ BEGIN RETURN ($1 ~ $q$[\t\r\n\v\\]$q$); END; $function$
������� $q$[\t\r\n\v\\]$q$ ��ʾһ����Ԫ����Χ���ִ��ı� [\t\r\n\v\\]�� �ں����屻 PostgreSQL ִ�е�ʱ��������ʶ������� ������Ϊ������в�ƥ��������Ԫ���ָ���$function$�� ����ֻҪ����������ִ�������ֻ�dz��������һЩ������ַ����ѡ�
����б�ǩ�Ļ���һ����Ԫ����Χ���ִ���ѭ�������Ű�Χ�ı�ʶ����ͬ�Ĺ��� ֻ�������ܰ�����Ԫ������ǩ�Ǵ�Сд��صģ���� $tag$String content$tag$ ����ȷ�ģ��� $TAG$String content$tag$ ���ԡ�
һ��������Źؼ��ֻ��߱�ʶ������Ԫ��Χ���ִ������ÿհ����� ������Ԫ����Χ�ָ������ᱻ��Ϊǰ���ʶ����һ���֡�
��Ԫ����Χ���� SQL ����������д���ӵ��ִ��ı���ʱ����ͨ���ȱ��ĵ�����������㡣 ����������������������ִ�������ʱ������ã����羭���ڹ��̺�����������ġ� ����õ��������ÿ������������ķ�б�ܶ�����д�ĸ�����������Ϊ�ִ��ı�������ʱ������Ϊ������ Ȼ���ں���ִ�е�ʱ�����ڲ��ִ���������ٴα�����Ϊһ����
λ�����������������ڿ�����ǰ����һ�� B ����д��Сд������ͨ�ַ���������֮��û�пհף��� ���� B'1001'��λ������������õ��ַ�ֻ�� 0 �� 1��
���⣬λ������������ʮ�����Ʊ�ʾ��������������ʹ��ǰ�� X ����д����Сд�������磬X'1FF'�� ���ֱ�ʾ����Ч��һ��ÿ��ʮ������λ�ĸ�������λ��λ��������
������ʽ��λ����������������ͨ�ִ������������������� ��Ԫ����Χ��������λ��������
��ֵ������������ͨ�õ���ʽ��
digits digits.[digits][e[+-]digits] [digits].digits[e[+-]digits] digitse[+-]digits
����� digits ��һ������ʮ����λ��0 �� 9���� �����С���㣬��ô������һλ��С����ǰ�����档���������ָ���ָ�����e������ô������һ��λ���������档 �ڳ����ﲻ���пո���������ַ�Ƕ�����ڡ� ��ע���κ�ǰ�������Ż��߸���ʵ���϶�����Ϊ�dz�����һ���֣� ����ʩ���ڳ�����һ����������
������һЩ�Ϸ�����ֵ���������ӣ�
42
3.5
4.
.001
5e2
1.925e-3
���һ����ֵ�����Ȳ�����С���㣬Ҳ������ָ���������� ��ô���������ֵ���Է���integer�����У�32λ���� ����Ϊ����integer���ͣ����������ֵ���Է��� bigint�У�64λ��������Ϊ���� bigint�� ������Ϊ���� numeric���͡�����С�����/��ָ���������ij������DZ���Ϊ��numeric���͡�
��һ����ֵ���������ʼ��������ֻ�����ͽ����㷨�Ŀ��ˡ� �ڴ��������¸ó�������ݻ������Զ�ǿ��ת��������ʵ����͡� ��Ҫʱ�������ͨ��ǿ������ת����һ����ֵ�������ض����������͡� ���磬�����ǿ��Ҫ���һ����ֵ��������real��float4������������ʱ��ôд��
REAL '1.23' -- �ִ���� '1.23'::REAL -- PostgreSQL ����ʷԭ���
��Щʵ����ֻ���������۵�ͨ��ת����������
�������Ƶij������������б�ʾ���е��κ�һ�������룺
type 'string' 'string'::type CAST ( 'string' AS type )
���ִ��������ı������ݸ����ֽ� type �����͵�����ת�����̡� ������������͵�һ����������������ڸó����������͵����壬 ��ô��ȷ������ӳ�����ʡ�ԣ����磬�������ֱ�Ӹ���һ�����ֶε�ʱ�� ��������������Զ�ת����
�ִ�������������ͨ SQL ��ʾ��������Ԫ����Χ����д��
���ǻ������ú������������������ת����
typename ( 'string' )
��������������������������ʹ�ã����� Section 4.2.8 ��ȡϸ�ڡ�
::��CAST()���ͺ��������Ҳ������������������ʽ������ʱ����ת���� �� Section 4.2.8 �����۵������� ���� type 'string' ����ʽֻ����������һ���ı����������͡� type 'string' ������һ�������������������������ͣ�Ҫ�� :: ���� CAST() ����һ�����鳣�������͡�
һ������������� NAMEDATALEN-1 ��ȱʡ 63 ���ַ����������ַ������У�
+ - * / < > = ~ ! @ # % ^ & | ` ?
�������Բ����������м������ƣ�-- �� /* ���ܳ����ڲ����������е��κεط�����Ϊ���ǻᱻ����ע�Ϳ�ʼ�Դ���
���ַ������������� + �� - ������ �������������ٻ��������в�����֮һ��
~ ! @ # % ^ & | ` ?
���磬@- ������IJ��������֣� �� *- ���ǡ������������ PostgreSQL �ڲ�Ҫ��Ǻ�֮���пհ�����·��� SQL ���ݵIJ�ѯ��
����ʹ�÷� SQL ���IJ��������ֵ�ʱ����ͨ����Ҫ�ÿհָ����ڵIJ������Ա������塣 ���磬����㶨����һ���� "@" ����Ŀ����������ô��Ͳ���д X*@Y������Ҫд�� X* @Y ��ȷ�� PostgreSQL ��������������������������һ����
��Щ����ĸ�����ַ���һЩ���⺬�壬��˲��������������� ���ǵ��÷���ϸ�ڿ�������Ӧ�������Ԫ�صĵط��ҵ��� ����ֻ���������ǵĴ��ں���һ����Щ�ַ���Ŀ�ġ�
��Ԫ���ţ�$�������������������һ�������嶨��������õ������ ��ʾ������λ�á���������������Ԫ���ſ�����һ����ʶ�����ֻ�����һ����Ԫ����Χ���ִ�������һ���֡�
Բ������()�����ڷ����ǿ�����ȼ���ʱ������ƽ��һ���� ��Щ������Բ��������Ϊһ���ض� SQL ����Ĺ̶����һ����Ҫ��ġ�
��������[]������ѡȡ����Ԫ�ء� ���� Section 8.10 ��ȡ������Ϣ��
���ţ�,��һЩ����������ڷָ�һ���б��Ԫ�ء�
�ֺţ�;������һ�� SQL ��� �����ܳ�����һ����������κεط����������Ű�Χ���������ַ����������߱�ʶ���á�
ð�� ��:�����ڴ�������ѡȡ"Ƭ��"�������� Section 8.10������һЩ SQL ���������Ƕ�� SQL ���� ð������ǰ��������
�Ǻ� ��* ��ijЩ�������ʾһ�����л���һ����������ֵ��ȫ���ֶΡ� �������ۼ����� COUNT �IJ���ʱ�������⺬�塣
��� ��.�������ֳ���������ڷָ�ģʽ������ֶ����֡�
ע����������˫���߿�ͷ�����쵽��β�������ַ����У����磺
-- ���DZ��� SQL92 ע��
���⣬������ʹ�� C-���Ŀ�ע�ͣ�
/* ����ע�� * ����Ƕ�ס�/* Ƕ�Ŀ�ע�� */ */
����ע���� /* ��ͷ����չ����Ӧ�� */����Щ��ע�Ϳ���Ƕ�ף����� SQL99 ��˵�������� ���� C ��һ����������ǿ���ע�͵�һ����Ѿ�������ע�͵Ĵ��롣
ע���ڽ�һ���������֮ǰ����������ɾ�����ÿհ״��档
Table 4-1 ��ʾ�� PostgreSQL ����IJ����������ȼ������ԡ� �����������������ͬ�����ȼ����Ҷ���������ġ� ����������ܻ��в���ôֱ�۵���Ϊ�����磬���������� < �� > �Ͳ��������� <= �� >= ֮�����Ų�ͬ�����ȼ���ͬ���������˫Ŀ�͵�Ŀ���������ʹ�õ�ʱ�� ��ʱ��Ҳ��Ҫ��Բ����������
SELECT 5 ! - 6;
�ᱻ������
SELECT 5 ! (- 6);
��Ϊ��������֪�� ! ������˺��������� ����������������— ֪����ʱ��ֻ����̫���� — Ҫ�ڱ����л������Ҫ�����ԣ���Ҫд��
SELECT (5 !) - 6;
��������Ϊ��չ�Ը����Ĵ��ۡ�
Table 4-1. ���������ȼ����ݼ���
������/Ԫ�� | ������ | ���� |
---|---|---|
. | �� | ��/�ֶ����ָ��� |
:: | �� | PostgreSQL-���е�����ת�������� |
[ ] | �� | ����Ԫ��ѡ�� |
- | �� | ��Ŀ���� |
^ | �� | �ݲ��� |
* / % | �� | �ˣ�����ģ |
+ - | �� | �ӣ��� |
IS | IS TRUE, IS FALSE, IS UNKNOWN, IS NULL | |
ISNULL | �����Ƿ�Ϊ��ֵ | |
NOTNULL | �����Ƿ�Ϊ�ǿ�ֵ | |
���κ������ģ� | �� | ���������ı��غ��û���������� |
IN | ���ϳ�Ա | |
BETWEEN | ������ | |
OVERLAPS | ʱ�����ص� | |
LIKE ILIKE SIMILAR | �ַ���ģʽƥ�� | |
< > | С�ڣ����� | |
= | �� | ���ڣ���ֵ |
NOT | �� | ���� |
AND | �� | ���� |
OR | �� | ���� |
��ע����������ȼ�Ҳ�����ں������ᵽ��ͬ�������ò������û������������ ���磬�����ΪһЩ�ͻ��������Ͷ���һ�� "+" �������� ��ô�������õ� "+" ��������ͬ�������ȼ������������ʲô��
����� OPERATOR ���ʹ����ģʽ���εIJ��������� ����
SELECT 3 OPERATOR(pg_catalog.+) 4;
��ô OPERATOR ����ͻ��� Table 4-1 ������Ϊ"�κ�����"��������ʾ��ȱʡ���ȼ��� ����ʲô�ض��IJ����������� OPERATOR()�����������