8.3. �ַ�����

Table 8-4. �ַ�����

��������
character varying(n), varchar(n)�䳤���г�������
character(n), char(n)����,���㲹�հ�
text�䳤���޳�������

Table 8-4 ��ʾ���� PostgreSQL ����õ�һ����;���ַ����͡�

SQL ���������ֻ������ַ����ͣ� character varying(n) �� character(n)�� ����� n ��һ�����������������Ͷ����Դ洢��� n ���ַ������ִ��� ��ͼ�洢�������ִ�����Щ���͵��ֶ�������һ������ ���dz������ȵ��ַ����ǿհף���������¸��ִ������ض�Ϊ��󳤶ȡ� ���������ȥ�е�����������SQL��׼Ҫ��ġ��� ���Ҫ�洢���ִ��������ij��ȶ̣� ����Ϊ character ����ֵ�����ÿհ������� ������Ϊ character varying ����ֵ��ֻ�Ǵ洢��Щ���ִ���

���������ȷ�ذ�һ����ֵת���� character(n) ���� character varying(n)�� ��ô��������ֵ�����ضϳ� n ���ַ����������׳����󡣣���Ҳ��SQL��׼��Ҫ�󡣣�

ע��: ��PostgreSQL7.2 ��ǰ��̫�����ִ��ܻᱻ����������������� ���Ҳ������ɴ��󡣲�������ȷ�Ļ���������ת������¡�

char(n) �� varchar(n) �ĸ���ֱ��� character(n) �� character varying(n) �ı����� û�г��������ʵ�character ���� character(1)�������������˵����ʹ�� character varying����ô�����ͽ����κγ��ȵ��ִ��� ������PostgreSQL����չ��

���⣬PostgreSQL �ṩ text ���ͣ������Դ洢�κγ��ȵ��ִ��� �������� text ����SQL��׼������������� SQL ���ݿ�ϵͳҲ������

���� character ����ֵ�����϶��ÿհ���䵽ָ���ij��� n�� ���������ַ�ʽ�洢����ʾ�����������Ŀհ���������������ν�ġ� �ڱȽ����� character ��ֵ��ʱ�����Ŀհ׶����ᱻ��ע�� ��ת���������ִ����͵�ʱ��character ֵ����Ŀհ׻ᱻɾ���� ��ע�⣬�� character varying �� text ��ֵ� ��β�Ŀհ����������к���ġ�

��Щ���͵Ĵ洢������ 4 �ֽڼ���ʵ�ʵ��ִ�������� character �Ļ��ټ��������ֽڡ������ִ������Զ���ϵͳѹ���� ����ڴ����ϵ�����������ܻ����Щ��������ֵҲ��洢�ں�̨�����棬�������ǾͲ�����ŶԶ��ֶ�ֵ�Ŀ��ٷ��ʡ� ��������������洢����ִ������ 1 GB�� ���������������������г��ֵĵ� n �����ֵ���⻹С�� �޸������Ϊû����ô���壬��Ϊ�ڶ��ֽڱ������ַ����ֽڵ���Ŀ���ܲ��ܴ� �������洢û���ض����޵ij��ִ�����ôʹ�� text ����û�г��������ʵ� character varying�� ����Ҫѡ��һ�����ⳤ�����ơ���

��ʾ: ����������֮��û�����ܲ��ֻ��������ʹ�����հ׵����͵�ʱ�������˴洢�ߴ硣 ��Ȼ��ijЩ���������ݿ�ϵͳ�character(n) ��һ�����������ƣ� ���� PostgreSQL ��û�С��ڴ��������£�Ӧ��ʹ�� text ���� character varying��

��ο� Section 4.1.2.1 ��ȡ�����ִ��ı����﷨����Ϣ�� �Լ����� Chapter 9 ��ȡ���ڿ��ò������ͺ�������Ϣ�� ���ݿ���ַ����������ڴ洢�ı�ֵ���ַ������й��ַ���֧�ֵĸ�����Ϣ�� ��ο� Section 20.2��

Example 8-1. ʹ���ַ�����

CREATE TABLE test1 (a character(4));
INSERT INTO test1 VALUES ('ok');
SELECT a, char_length(a) FROM test1; -- (1)
  a   | char_length
------+-------------
 ok   |           2

CREATE TABLE test2 (b varchar(5));
INSERT INTO test2 VALUES ('ok');
INSERT INTO test2 VALUES ('good      ');
INSERT INTO test2 VALUES ('too long');
ERROR:  value too long for type character varying(5)
INSERT INTO test2 VALUES ('too long'::varchar(5)); -- ��ȷ�ض�
SELECT b, char_length(b) FROM test2;
   b   | char_length
-------+-------------
 ok    |           2
 good  |           5
 too l |           5
(1)
���� char_length �� Section 9.4�����ۡ�

�� PostgreSQL �����⻹�����ֶ����ַ����͡� �� Table 8-5 ����ʾ�� name����ֻ�������ڲ�ϵͳ���д洢��ʶ�����Ҳ��Ǹ�һ���û�ʹ�õġ� �����ͳ��ȵ�ǰ��Ϊ 64 �ֽ� ��63 �����ַ��ӽ���������Ӧ��ʹ�ó��� NAMEDATALEN ���á�����������ڱ����ʱ�����õģ����������Ϊ������;�������� ȱʡ����󳤶����Ժ�İ汾���ܻ�ı䡣 ���� "char" ��ע�����ţ��� char(1) �Dz�һ���ģ���ֻ����һ���ֽڵĴ洢�ռ䡣����ϵͳ�ڲ�����ϵͳ�������˵�ö�������á�

Table 8-5. �����ַ�����

�����洢�ռ�����
"char"1 �ֽ����ֽ��ڲ�����
name64 �ֽ����ڶ��������ڲ�����