���ߣ����� ([email protected]�� ��ҳ��http://nrdoc.com
��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼.
һ���ַ�����һ���ַ����У��ɵ�����(��'��)��˫����(��"��)�ַ�(����ֻ���㲻��ANSIģʽ����)��Χ�����磺
'a string' "another string"
���ַ����ڣ�ij��˳������������塣��Щ˳���ÿһ����һ����б��(��\��)��ʼ����Ϊת���ַ���MySQLʶ������ת���ַ���
\0
NUL
)�ַ��� \n
\t
\r
\b
\'
\"
\\
\%
\_
ע�⣬�������ijЩ���Ļ�����ʹ����\%������\%_������Щ�������ַ�����\%������\_����������%������_����
�м��ַ�����һ���ַ����ڰ������ţ�
������ʾ��SELECT
��ʾ���ź�ת����ι�����
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello'; +-------+---------+-----------+--------+--------+ | hello | "hello" | ""hello"" | hel'lo | 'hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; +-------+---------+-----------+--------+--------+ | hello | 'hello' | ''hello'' | hel"lo | "hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "This\nIs\nFour\nlines"; +--------------------+ | This Is Four lines | +--------------------+
�������Ҫ�Ѷ��������ݲ��뵽һ��BLOB
�У������ַ�������ת�����б�ʾ��
NUL
\
'
"
�����дC���룬�����ʹ��C API����mysql_escape_string()
��ΪINSERT
���ת���ַ�����20.3 C API ������������ Perl�У������ʹ��DBI
���е�quote
�����任������ַ�����ȷ��ת�����С���20.5.2 DBI
�ӿ���
��Ӧ�����κο��ܰ��������κ������ַ����ַ�����ʹ��ת�庯����
������ʾΪһ������˳������ʹ����.����Ϊһ��ʮ���Ʒָ��������������͵����ֿ���ǰ����-������һ����ֵ��
��Ч���������ӣ�
1221 0 -32
��Ч�����������ӣ�
294.42 -32032.6809e+10 148.00
һ�����������ڸ���������ʹ�ã�������Ϊ��ֵ�ĸ�������
MySQL֧��ʮ������ֵ�������������ģ����DZ���������һ������(64λ����)�����ַ��������ģ����DZ���������һ���������ַ���������ÿһ��ʮ���������ֱ��任Ϊһ���ַ���
mysql> SELECT 0xa+0 -> 10 mysql> select 0x5061756c; -> Paul
ʮ�������ַ���������ODBCʹ�ã�����BLOB�е�ֵ��
NULL
ֵNULL
ֵ��ζ�š������ݡ����Ҳ�ͬ�������������͵�0
Ϊ���ַ������͵Ŀ��ַ�������18.15 NULL
ֵ������
��ʹ���ı��ļ��������ʽ(LOAD DATA INFILE
, SELECT
... INTO OUTFILE
)ʱ��NULL
������\N
��ʾ����7.16 LOAD DATA INFILE
�䷨��
���ݿ⡢�����������кͱ��������ֶ�����MySQLͬ���Ĺ���:
ע�⣬��MySQL3.23.6��ʼ����ı��ˣ���ʱ������������'���õı�ʶ��(���ݿ⡢����������)���������ANSIģʽ���У�"Ҳ���������ñ�ʶ������
��ʶ�� | ��� | �������ַ� |
���ݿ� | 64 | ��һ��Ŀ¼���������κ��ַ�������/ . |
�� | 64 | ���ļ������������κ��ַ�������/ ��. |
�� | 64 | �����ַ� |
���� | 255 | �����ַ� |
ע�⣬�������ϣ�����һ����ʶ���в�����ASCII(0)��ASCII(255)��
ע�⣬�����ʶ����һ�����ƴʻ���������ַ�������ʹ����ʱ�������������`
��������
SELECT * from `select` where `select`.id > 100;
�� MySQL����ǰ�汾�������������£�
�����㲻ʹ����1e
���������֣���Ϊһ������ʽ��1e+1
�Ƕ����Եġ������Խ���Ϊ����ʽ1e
+ 1
������1e+1
��
��MySQL�У�����ʹ�����б�����κ�һ�������У�
������ | ���� |
col_name |
���������������col_name �����ڰ����ñ���һ���еIJ�ѯ�� |
tbl_name.col_name |
���Ե�ǰ�����ݿ�ı�tbl_name ����col_name |
db_name.tbl_name.col_name |
����col_name �ӱ���tbl_name ���ݿ�db_name �������ʽ��MySQL3.22���Ժ�汾���á�
|
`column_name` |
��һ���ؼ��ʻ���������ַ����С� |
��һ�������������У��㲻��ָ��һ��tbl_name
��db_name.tbl_name
ǰ���������û��ж����ԡ����磬�ٶ���t1
��t2
��ÿ����������c
����������һ��ʹ��t1
��t2
��SELECT
������c
������������£�c
�ж����ԣ���Ϊ����ʹ�ñ�������в���Ψһ�ģ���������ͨ��д��t1.c
��t2.c
��ָ������Ҫ�ĸ�����ͬ�������������ݿ�db1
��һ����t
�������ݿ�db2
��һ����t
�������������db1.t.col_name
��db2.t.col_name
������Щ���ݱ����С�
�䷨.tbl_name
��ζ���ڵ�ǰ�����ݿ��еı�tbl_name
���þ䷨Ϊ��ODBC�ļ����Ա����ܣ���ΪһЩODBC������һ����.���ַ���Ϊ���ݿ������ǰ��
��MySQL�У����ݿ�ͱ���Ӧ������ЩĿ¼�µ�Ŀ¼���ļ�����������ڵIJ���ϵͳ�������Ծ������ݿ�ͱ������Ĵ�Сд�����ԡ�����ζ�����ݿ�ͱ�����Unix�������ִ�Сд�ģ�����Win32�Ϻ��Դ�Сд��
ע�⣺��Win32�ϣ��������ݿ�ͱ����Ǻ��Դ�Сд�ģ��㲻Ӧ����ͬһ����ѯ��ʹ�ò�ͬ�Ĵ�Сд������һ�����������ݿ�ͱ������в�ѯ������������Ϊ����Ϊmy_table
����ΪMY_TABLE
����һ������
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
��������������¶��Ǻ��Դ�Сд�ġ�
���ı��������ִ�Сд�ġ����в�ѯ����������
:
������a
��A
������
mysql> SELECT col_name FROM tbl_name AS a WHERE a.col_name = 1 OR A.col_name = 2;
�еı����Ǻ��Դ�Сд�ġ�
MySQL֧���߳��ض��ı�������@variablename
�䷨��һ�������������ɵ�ǰ�ַ�����������ĸ�ַ�����_������$������.����ɡ�ȱʡ�ַ�����ISO-8859-1
Latin1�������ͨ�����±���MySQL�ı䡣��9.1.1 �������ݺ�������ַ�����
�������ر���ʼ����ȱʡ�أ����ǰ���NULL���ܴ洢������ʵ����һ���ַ���ֵ�����߳��˳�ʱ������һ���̵߳����б����Զ��ر��ͷš�
�������SET
�䷨����һ��������
SET @variable= { integer expression | real expression | string expression } [,@variable= ...].
��Ҳ������@variable:=expr
�䷨��һ������ʽ������һ��������
select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3; +----------------------+------+------+------+ | @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 | +----------------------+------+------+------+ | 5 | 5 | 1 | 4 | +----------------------+------+------+------+
��������Dz��ò�ʹ��:=
�䷨����Ϊ=
��Ϊ�Ƚϱ����ģ�
MySQL֧�ִ����������ͣ������Ա���Ϊ3�ࣺ�������͡����ں�ʱ�������Լ��ַ���(�ַ�)���͡��������ȸ����������͵�һ�������������ܽ�ÿ�������͵Ĵ洢����Ȼ���ṩÿ�����е��������ʵĸ���ϸ���������������������ϸ��˵��Ӧ�ÿ��ǵ��й��ض������͵ĸ�����Ϣ����������Ϊ��ָ��ֵ��������ʽ��
��MySQL֧�ֵ��������������档���д�����ĸ���������У�
M
D
M
-2��
������(��[������]��)ָ����ѡ���������η��IJ��֡�
ע�⣬�����ָ��һ����ΪZEROFILL
��MySQL��Ϊ�����Զ�������UNSIGNED
���ԡ�
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
-128
��127
�����ŵķ�Χ��0
��255
��
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
-32768
��32767
�����ŵķ�Χ��0
��65535
��
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
-8388608
��8388607
�����ŵķ�Χ��0
��16777215
��
INT[(M)] [UNSIGNED] [ZEROFILL]
-2147483648
��2147483647
�����ŵķ�Χ��0
��4294967295
��
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
INT
��һ��ͬ��ʡ� BIGINT[(M)] [UNSIGNED] [ZEROFILL]
-9223372036854775808
��9223372036854775807
�����ŵķ�Χ��0
��18446744073709551615
��ע�⣬���������������з��ŵ�BIGINT
��DOUBLE
ֵ��ɣ�����㲻Ӧ��ʹ�ô���9223372036854775807
��63λ)���з��Ŵ�����������λ������ע�⣬������������INTEGER
ֵʱ��-
��+
��*
��ʹ��BIGINT
���㣡����ζ��������2��������(�������ڷ��������ĺ���)������������9223372036854775807
������Եõ�����Ľ����һ���������֣����������ŵģ���һ�������ȸ��������侫�ȿ���
��<=24
����һ��˫���ȸ�����������25
��53֮�䣬��Щ������FLOAT
��DOUBLE
��������������������FLOAT(X)
�ж�Ӧ��FLOAT
��DOUBLE
��ͬ�ķ�Χ��������ʾ�ߴ��С��λ����δ����ġ���MySQL3.23�У�����һ�������ĸ���ֵ���ڸ����MySQL�汾�У�FLOAT(precision)
������2λС�����þ䷨Ϊ��ODBC�����Զ��ṩ��
FLOAT[(M,D)] [ZEROFILL]
-3.402823466E+38
��-1.175494351E-38
��0
��1.175494351E-38
��3.402823466E+38
��M����ʾ���ȶ�D��С����λ����û�в�����FLOAT
����<24
��һ��������ʾһ�������ܸ������֡�
DOUBLE[(M,D)] [ZEROFILL]
-1.7976931348623157E+308
��-2.2250738585072014E-308
��
0
��2.2250738585072014E-308
��1.7976931348623157E+308
��M����ʾ���ȶ�D��С��λ����û��һ��������DOUBLE
��FLOAT(X)
��25
< = X < = 53������һ��˫���ܸ������֡� DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
DOUBLE
ͬ��ʡ� DECIMAL[(M[,D])] [ZEROFILL]
CHAR
�У���δѹ������ζ��������Ϊһ���ַ������洢��ֵ��ÿһλʹ��һ���ַ���С���㣬���Ҷ��ڸ�������-�����Ų���M�м��㡣���D
��0��ֵ��û��С�����С�����֡�DECIMAL
ֵ�����Χ��DOUBLE
��ͬ�����Ƕ�һ��������DECIMAL
�У�ʵ�ʵķ�Χ����ͨ��M
��D
��ѡ�����ơ����D
��ʡ�ԣ���������Ϊ0�����M
��ʡ������������Ϊ10��ע�⣬��MySQL3.22�M
�����������ź�С���㡣
NUMERIC(M,D) [ZEROFILL]
DECIMAL
��һ��ͬ��ʡ� DATE
'1000-01-01'
��'9999-12-31'
��MySQL��'YYYY-MM-DD'
��ʽ����ʾDATE
ֵ������������ʹ���ַ��������ְ�ֵ����DATE
�С�
DATETIME
'1000-01-01 00:00:00'
��'9999-12-31
23:59:59'
��MySQL��'YYYY-MM-DD HH:MM:SS'
��ʽ����ʾDATETIME
ֵ������������ʹ���ַ��������ְ�ֵ����DATETIME
����
TIMESTAMP[(M)]
'1970-01-01 00:00:00'
��2037
���ijʱ��MySQL��YYYYMMDDHHMMSS
��YYMMDDHHMMSS
��YYYYMMDD
��YYMMDD
��ʽ����ʾTIMESTAMP
ֵ��ȡ�����Ƿ�M
��14
����ʡ��)��12
��8
��6
������������ʹ���ַ��������ְ�ֵ����TIMESTAMP
�С�һ��TIMESTAMP
�ж��ڼ�¼һ��INSERT
��UPDATE
���������ں�ʱ�������õģ���Ϊ����㲻�Լ�������ֵ�����Զ��ر�����Ϊ������������ں�ʱ�䡣���Կ���ͨ��������һ��NULL
ֵ������Ϊ��ǰ�����ں�ʱ�䡣��7.3.6 ���ں�ʱ�������� TIME
'-838:59:59'
��'838:59:59'
��MySQL��'HH:MM:SS'
��ʽ����ʾTIME
ֵ������������ʹ���ַ��������ְ�ֵ����TIME
�С�
YEAR[(2|4)]
1901
��2155
����0000
��4λ���ʽ���������ʹ��2λ��1970-2069(
70-69)��MySQL��YYYY
��ʽ����ʾYEAR
ֵ�������������ʹ���ַ���������ֵ����YEAR
����YEAR
������MySQL3.22���������͡��� CHAR(M) [BINARY]
M
�ķ�Χ��1
�� 255���ַ�����ֵ������ʱ���ո�β����ɾ����CHAR
ֵ����ȱʡ�ַ����Դ�Сд�����ֵķ�ʽ����ͱȽϣ���������BINARY
�ؼ��ʡ�NATIONAL
CHAR
������ʽNCHAR
)��ANSI SQL�ķ�ʽ������CHAR��Ӧ��ʹ��ȱʡ�ַ���������MySQL
��ȱʡ��CHAR
��CHARACTER
��һ����д��
[NATIONAL] VARCHAR(M) [BINARY]
VARCHAR
ֵ����ȱʡ�ַ����Դ�Сд�����ֵķ�ʽ����ͱȽϣ���������BINARY
�ؼ���ֵ����7.7.1 ��ʽ��ָ���仯�� VARCHAR
��CHARACTER
VARYING
һ����д�� TINYBLOB
TINYTEXT
BLOB
��TEXT
�У����Ϊ255(2^8-1)���ַ�����7.7.1 ��ʽ��ָ���仯�� BLOB
TEXT
BLOB
��TEXT
�У����Ϊ65535(2^16-1)���ַ�����7.7.1 ��ʽ��ָ���仯�� MEDIUMBLOB
MEDIUMTEXT
BLOB
��TEXT
�У����Ϊ16777215(2^24-1)���ַ�����7.7.1 ��ʽ��ָ���仯�� LONGBLOB
LONGTEXT
BLOB
��TEXT
�У����Ϊ4294967295(2^32-1)���ַ�����7.7.1 ��ʽ��ָ���仯 ENUM('value1','value2',...)
'value1'
��'value2'
,
...
,��NULL
��һ��ENUM
�������65535��ͬ��ֵ��
SET('value1','value2',...)
'value1'
,
'value2'
, ...
ѡ����һ��SET
�������64����Ա��
����ÿ����MySQL֧�ֵ������͵Ĵ洢���������水���г���
������ | ��Ҫ�Ĵ洢�� |
TINYINT |
1 �ֽ� |
SMALLINT |
2 ���ֽ� |
MEDIUMINT |
3 ���ֽ� |
INT |
4 ���ֽ� |
INTEGER |
4 ���ֽ� |
BIGINT |
8 ���ֽ� |
FLOAT(X) |
4 ��� X < = 24 �� 8 ��� 25 < = X < = 53 |
FLOAT |
4 ���ֽ� |
DOUBLE |
8 ���ֽ� |
DOUBLE PRECISION |
8 ���ֽ� |
REAL |
8 ���ֽ� |
DECIMAL(M,D) |
M �ֽ�(D +2 , ���M < D ) |
NUMERIC(M,D) |
M �ֽ�(D +2 , ���M < D ) |
������ | ��Ҫ�Ĵ洢�� |
DATE |
3 ���ֽ� |
DATETIME |
8 ���ֽ� |
TIMESTAMP |
4 ���ֽ� |
TIME |
3 ���ֽ� |
YEAR |
1 �ֽ� |
������ | ��Ҫ�Ĵ洢�� |
CHAR(M) |
M �ֽڣ�1 <= M <= 255 |
VARCHAR(M) |
L +1 �ֽ�, �ڴ�L <= M ��1 <= M <= 255
|
TINYBLOB , TINYTEXT |
L +1 �ֽ�, �ڴ�L < 2 ^ 8 |
BLOB , TEXT |
L +2 �ֽ�, �ڴ�L < 2 ^ 16 |
MEDIUMBLOB , MEDIUMTEXT |
L +3 �ֽ�, �ڴ�L < 2 ^ 24 |
LONGBLOB , LONGTEXT |
L +4 �ֽ�, �ڴ�L < 2 ^ 32 |
ENUM('value1','value2',...) |
1 �� 2 ���ֽ�, ȡ����ö��ֵ����Ŀ(���ֵ65535�� |
SET('value1','value2',...) |
1��2��3��4��8���ֽ�, ȡ���ڼ��ϳ�Ա������(���64����Ա�� |
VARCHAR
��BLOB
��TEXT
�����DZ䳤���ͣ�������洢����ȡ������ֵ��ʵ�ʳ���(��ǰ��ı�������L
��ʾ)��������ȡ�������͵������ܳߴ硣���磬һ��VARCHAR(10)
���ܱ������Ϊ10���ַ���һ���ַ�����ʵ�ʵĴ洢��Ҫ���ַ����ij���(L
)������1���ֽ��Լ�¼�ַ����ij��ȡ������ַ���'abcd'
��L
��4���洢Ҫ����5���ֽڡ�
BLOB
��TEXT
������Ҫ1��2��3��4���ֽ�����¼��ֵ�ij��ȣ���ȡ�������͵������ܳ��ȡ�
���һ���������κα䳤�������ͣ���¼��ʽ��Ҳ�DZ䳤�ġ�ע�⣬��һ����������ʱ��MySQL������ijЩ�����½�һ���д�һ���䳤���ı�Ϊһ���������ͻ��෴����7.7.1 ��ʽ��ָ���仯��
һ��ENUM
����Ĵ�С�ɲ�ͬö��ֵ������������1�ֽڱ�����ö�٣����255�����ܵ�ֵ��2���ֽ�����ö�٣����65535
ֵ��
һ��SET
����Ĵ�С�ɲ�ͬ�ļ��ϳ�Ա������������������ϴ�С��N
������ռ��(N+7)/8
���ֽڣ���������Ϊ1��2��3��4��8
���ֽڡ�һ��SET
�������64����Ա��
MySQL֧�����е�ANSI/ISO SQL92���������͡���Щ���Ͱ���ȷ���ֵ���������(NUMERIC
,
DECIMAL
, INTEGER
,��SMALLINT
)��Ҳ�����������ֵ���������(FLOAT
,
REAL
,��DOUBLE PRECISION
)���ؼ���INT
��INTEGER
��һ��ͬ��ʣ����ؼ���DEC
��DECIMAL
һ��ͬ��ʡ�
NUMERIC
��DECIMAL
���ͱ�MySQLʵ��Ϊͬ�������ͣ�����SQL92�����������DZ����ڱ���ֵ����ֵ��ȷ�����Ǽ�����Ҫ��ֵ���������Ǯ�йص����ݡ�������һ��������Щ����֮һʱ�����Ⱥ�ģ���ܱ�(����ͨ����)ָ�������磺
salary DECIMAL(9,2)
�����������9
(precision
)�����������ڴ洢ֵ���ܵ�С��λ������2
(scale
)�����������ڴ洢С������λ������ˣ�����������£��ܱ��洢��salary
���е�ֵ�ķ�Χ�Ǵ�-9999999.99
��9999999.99
����ANSI/ISO
SQL92�У��䷨DECIMAL(p)
�ȼ���DECIMAL(p,0)
��ͬ�����䷨DECIMAL
�ȼ���DECIMAL(p,0)
������ʵ�ֱ���������ֵp
��MySQL��ǰ��֧��DECIMAL
/NUMERIC
�������͵���Щ������ʽ����һ�֡���һ��˵������һ�����ص����⣬��Ϊ��Щ���͵���Ҫ�洦���������Եؿ��ƾ��Ⱥ�ģ��������
DECIMAL
��NUMERIC
ֵ��Ϊ�ַ����洢����������Ϊ�����Ƹ��������Ա㱣����Щֵ��С�����ȡ�һ���ַ�����ֵ��ÿһλ��С����(���scale
>0)����-������(���ڸ�ֵ)�����scale
��0��DECIMAL
��NUMERIC
ֵ������С�����С�����֡�
DECIMAL
��NUMERIC
ֵ�����ķ�Χ��DOUBLE
һ�������Ƕ���һ��������DECIMAL
��NUMERIC
�У�ʵ�ʵķ�Χ�������ɸ����е�precision
��scale
���ơ����������и�����С��������λ����ָ��scale
��������λ��ֵ����ֵ����scale
�������롣��һ��DECIMAL
��NUMERIC
�б����������С����ָ��(��ȱʡ�ģ�precision
��scale
�����ķ�Χ��ֵ��MySQL�洢��ʾ�Ǹ���Χ����Ӧ�Ķ˵�ֵ��
��Ϊ��ANSI/ISO SQL92������չ��MySQLҲ֧���ϱ����е���������TINYINT
��MEDIUMINT��BIGINT
����һ����չ��MySQL֧�ֿ�ѡ��ָ��һ������ֵ��ʾ�Ŀ��ȣ������Ÿ��ڻ����ؼ���֮��(���磬INT(4)
)�������ѡ�Ŀ���ָ�������������С����ָ�����ȵ�ֵ�������ʾ�����Dz������������б��洢��ֵ�ķ�Χ��Ҳ������ֵ������ʾ��λ��������ȳ�����ָ���Ŀ��ȡ������ѡ����չ����ZEROFILL
һ��ʹ��ʱ��ȱʡ�Ŀո��������档���磬��������ΪINT(5)
ZEROFILL
���У�һ��Ϊ4��ֵ��Ϊ00004
��������ע�⣬�������һ�������д洢������ʾ���ȵĸ���ֵ����MySQL����ijЩ���ӵ�����(join)������ʱ��ʱ������ܻ��������⣬��Ϊ����Щ����£�MySQL��������ȷʵ�ʺ�ԭ�����п��ȡ�
���е��������Ϳ�����һ����ѡ(�DZ���)����UNSIGNED
��������Ҫ�����н�����������������Ҫһ���Դ�һ����з�Χ������ʹ������ֵ��
FLOAT
���ͱ�������ʾ�������ֵ��������͡�ANSI/ISO SQL92������һ����ѡ�ľ���˵��(������ָ���ķ�Χ)�����ڹؼ���FLOAT
�����������λ����MySQLʵ��Ҳ֧�������ѡ�ľ���˵�������ؼ���FLOAT
������һ�������Ͷ�û�о���˵��ʱ��MySQLʹ��4���ֽڴ洢ֵ��һ�����ֵľ䷨Ҳ��֧�֣���FLOAT
�ؼ��ʺ�������Ÿ���2�����֡������ѡ���һ�����ּ�����ʾ���ֽڼ����ֵ�洢�����ڶ�������ָ��Ҫ���洢�ĺ���ʾ����С������λ��(����DECIMAL
��NUMERIC
)����MySQLҪ��Ϊ����һ���У�һ��С������С��λ������ָ����ֵ���洢ֵʱ����ֵ���������룬ȥ�������λ��
REAL
��DOUBLE PRECISION
���Ͳ����ܾ���˵������Ϊ��
ANSI/ISO SQL92 ������չ��MySQLʶ���DOUBLE
��ΪDOUBLE
PRECISION
���͵�һ��ͬ��ʡ���REAL
���ȱ�����DOUBLE
PRECISION
�ĸ�С�ı�Ҫ���෴��MySQLʵ�������֣���Ϊ8�ֽ�˫���ȸ���ֵ(�����в��ǡ�Ansiģʽ��ʱ)��Ϊ��������ֲ�ԣ��������ֵ�����ֵ�Ĵ洢�������Ӧ��ʹ��û�о��Ȼ�С��λ��˵����FLOAT
��DOUBLE
PRECISION
��
��Ҫ�������ֵ��д洢�����������������ķ�Χ��ֵʱ��MySQL���и�ֵ����Χ�ڵ���ȷ�˵�ֵ���Ҵ洢���к�Ľ��ֵ��
���磬һ��INT
�еķ�Χ��-2147483648
��2147483647
���������ͼ����-9999999999
��һ��INT
���У�ֵ�����е���Χ�ĵͲ��˵㣬���洢-2147483648
��ͬ�����������ͼ����9999999999
��2147483647
���洢��
���INT
����UNSIGNED
���еķ�Χ�Ĵ�С����ͬ�ģ��������Ķ˵��Ƶ���0
��4294967295
���������ͼ�洢-9999999999
��9999999999
�����б��洢��ֵ��Ϊ0
��4294967296
��
����ALTER TABLE
��LOAD DATA INFILE
��UPDATE
�Ͷ���INSERT
��䣬���ڼ����������ı任��Ϊ�����桱�����档
���ں�ʱ��������DATETIME
��DATE
��TIMESTAMP
��TIME
��YEAR
����Щ��ÿһ�����кϷ�ֵ��һ����Χ�������㡱����ָ��ȷʵ���Ϸ���ֵʱ��ʹ�á�ע�⣬MySQL������洢ij�������ϸ�ء��Ϸ�������ֵ������1999-11-31
��ԭ��������Ϊ����Ӧ�ó�����������������ڼ�飬������SQL��������Ϊ��ʹ���ڼ������족��MySQL������·���0-12�ķ�Χ������0-31�ķ�Χ��������Χ��������������ΪMySQL��������һ��DATE
��DATETIME
���д洢���ڣ��������������㡣��Դ洢�㲻֪��ȷ�����ڵ�һ�����յ�Ӧ�ó�����˵�Ǽ������õģ�����������£���ش洢������1999-00-00
��1999-01-00
������Ȼ�㲻�������Ӻ�����DATE_SUB()
��DATE_ADD()
�õ���������Щ���ڵ���ȷֵ)��
�������ں�ʱ�乤��ʱ�������ǵ�һЩҪ��ס��һ�㿼�ǣ�
'98-09-04'
)���������������ط����õ���-��-�����-��-��Ĵ���(���磬'09-04-98'
��'04-09-98')��
TIME
ֵ������Ϊ�ʵ���TIME
��Χ�˵�ֵ��)�±���ʾ��ÿ�����͵ġ��㡱ֵ�ĸ�ʽ��
������ | ���㡱ֵ |
DATETIME |
'0000-00-00 00:00:00' |
DATE |
'0000-00-00' |
TIMESTAMP |
00000000000000 ������ȡ������ʾ�ߴ磩 |
TIME |
'00:00:00' |
YEAR |
0000 |
'0'
��0
����,
�������� NULL
����ΪODBC���ܴ���������ֵ��
MySQL����Y2K��ȫ��(��1.6 2000��һ����)�����dzʽ���MySQL������ֵ���ܲ��ǡ�һ������2λ���ֵ���κ��������ɶ����Եģ���Ϊ������δ֪�ġ�������ֵ���뱻���ͳ�4λ��ʽ����ΪMySQL�ڲ�ʹ��4λ�洢��ݡ�
����DATETIME
, DATE
, TIMESTAMP
��YEAR
���ͣ�MySQLʹ�����й���Ľ��Ͷ����Ե����ֵ��
00-69
����ֵ���任��2000-2069
�� 70-99
����ֵ���任��1970-1999
���ǵ���Щ��������ṩ���������ݵĺ���ĺ����²⡣���MySQLʹ�õ�������������ȷ��ֵ����Ӧ���ṩ����İ���4λ��ֵ�����롣
DATETIME
, DATE
��TIMESTAMP
����DATETIME
, DATE
��TIMESTAMP
��������صġ������������ǵ�������������������ƵĶ��ֲ�ͬ�ġ�
DATETIME
������������Ҫͬʱ�������ں�ʱ����Ϣ��ֵʱ��MySQL����������'YYYY-MM-DD
HH:MM:SS'
��ʽ��ʾDATETIME
ֵ��֧�ֵķ�Χ��'1000-01-01
00:00:00'
��'9999-12-31 23:59:59'
������֧�֡���ζ�ž��ܸ����ֵ���ܹ����������ܱ�֤���ǿ��ԡ���
DATE
�������������Ҫ����ֵʱ��û��ʱ�䲿�֡�MySQL����������'YYYY-MM-DD'
��ʽ��ʾDATE
ֵ��֧�ֵķ�Χ��'1000-01-01'
��'9999-12-31'
��
TIMESTAMP
�������ṩһ�����ͣ������ʹ�����Զ����õ�ǰ�����ں�ʱ����INSERT
��UPDATE
�IJ������������TIMESTAMP
�У�ֻ�е�һ���Զ����¡�
�Զ����µ�һ��TIMESTAMP
���������κ������·�����
INSERT
��LOAD DATA INFILE
�����ָ����
UPDATE
�����ָ����һЩ������иı�ֵ����ע��һ��UPDATE
����һ����Ϊ���Ѿ��е�ֵ���⽫������TIMESTAMP
�б����£���Ϊ���������һ����Ϊ����ǰ��ֵ��MySQLΪ��Ч�ʶ����Ը��ġ���TIMESTAMP
��ΪNULL
. ����һ�������TIMESTAMP
��Ҳ�������õ���ǰ�����ں�ʱ�䣬ֻҪ������ΪNULL
����NOW()
��
ͨ����ȷ������ϣ����ֵ������������κ�TIMESTAMP
��Ϊ��ͬ�ڵ�ǰ���ں�ʱ���ֵ����ʹ�Ե�һ��TIMESTAMP
��Ҳ�����������磬��������㴴��һ����ʱ������Ҫһ��TIMESTAMP
�����õ���ǰ�����ں�ʱ�䣬�����Ժ����ۺ�ʱ�б�����ʱ�����ı䣬�����ʹ��������ԣ�
TIMESTAMP
��Ϊ���ĵ�ǰֵ��
��һ���棬����ܷ��֣����б���������Զ�����ĸ���ʱ����������һ������NOW()
��ʼ����DATETIME
�С�
TIMESTAMP
ֵ���Դ�1970��ijʱ�Ŀ�ʼһֱ��2037�꣬����Ϊһ�룬��ֵ��Ϊ������ʾ��
��MySQL����������ʾTIMESTAMP
ֵȡ������ʾ�ߴ�ĸ�ʽ���±�����������TIMESTAMP
��ʽ��14λ������TIMESTAMP
�п����ø��̵���ʾ�ߴ紴�죺
������ | ��ʾ��ʽ |
TIMESTAMP(14) |
YYYYMMDDHHMMSS |
TIMESTAMP(12) |
YYMMDDHHMMSS |
TIMESTAMP(10) |
YYMMDDHHMM |
TIMESTAMP(8) |
YYYYMMDD |
TIMESTAMP(6) |
YYMMDD |
TIMESTAMP(4) |
YYMM |
TIMESTAMP(2) |
YY |
���е�TIMESTAMP
�ж���ͬ���Ĵ洢��С����������ʾ�ߴ硣�������ʾ�ߴ���6��8��12����14��������ڱ�����ʱ��ָ��һ���������ʾ�ߴ磬����ֵ0���14��ǿ�Ƶ�14���ڴ�1��13��Χ������ֵ�ߴ类ǿ��Ϊ��һ�������ż����
ʹ��һ�����õĸ�ʽ�����κ�һ���������ָ��DATETIME
��DATE
��TIMESTAMP
ֵ��
'YYYY-MM-DD HH:MM:SS'
��'YY-MM-DD HH:MM:SS'
��ʽ��һ���ַ���������һ�֡����ɡ����--�κα������������ڲ��ֺ�ʱ�䲿��֮��ķָ��������磬'98-12-31
11:30:45'
��'98.12.31 11+30+45'
��'98/12/31 11*30*45'
��'98@12@31
11^30^45'
�ǵȼ۵ġ� 'YYYY-MM-DD'
��'YY-MM-DD'
��ʽ��һ���ַ���������һ�֡����ɡ���������磬'98-12-31'
,
'98.12.31'
, '98/12/31'
��'98@12@31'
�ǵȼ۵ġ� 'YYYYMMDDHHMMSS'
��'YYMMDDHHMMSS'
��ʽ��û���κηָ�����һ���ַ��������磬'19970523091528'
��'970523091528'
������Ϊ'1997-05-23
09:15:28'
������'971122459015'
�Dz��Ϸ���(���к�������ķ��Ӳ���)�ұ��'0000-00-00
00:00:00'
�� 'YYYYMMDD'
��'YYMMDD'
��ʽ��û���κηָ�����һ���ַ���������ַ�����Ϊ��һ�����ڡ����磬'19970523'
��'970523'
��������Ϊ'1997-05-23'
������'971332'
�Dz��Ϸ���(
������������º��첿��)�ұ��'0000-00-00'
�� YYYYMMDDHHMMSS
��YYMMDDHHMMSS
��ʽ��һ�����֣����������Ϊ��һ�����ڡ����磬19830905132800
��830905132800
��������Ϊ'1983-09-05
13:28:00'
�� YYYYMMDD
��YYMMDD
��ʽ��һ�����֣����������Ϊ��һ�����ڡ����磬19830905
��830905
��������Ϊ'1983-09-05'
��
DATETIME
, DATE
��TIMESTAMP
�����Ļ����н��ܵĺ���������NOW()
��CURRENT_DATE
��
���Ϸ�DATETIME
, DATE
��TIMESTAMP
ֵ���任���ʵ����͵ġ��㡱ֵ('0000-00-00
00:00:00'
, '0000-00-00'
��00000000000000
)��
���ڰ��������ڲ��ַָ�����ָ��Ϊ�ַ�����ֵ������ҪΪС��10
���»����ֵָ��2λ���֣�'1979-6-9'
��'1979-06-09'
��һ���ġ�ͬ��,
���ڰ�����ʱ�䲿�ַָ�����ָ��Ϊ�ַ�����ֵ������ΪС��10
��Сʱ���»���ָ��2λ���֣�'1979-10-30
1:2:3'
��'1979-10-30 01:02:03'
��һ���ġ�
ָ��Ϊ����Ӧ����6��8��12��14λ�������������8��14λ���������ٶ���YYYYMMDD
��YYYYMMDDHHMMSS
��ʽ���������ͷ4λ���ָ��������������6��12λ���������ٶ�����YYMMDD
��YYMMDDHHMMSS
��ʽ�������ͷ2λ���ָ�����������Щ����֮һ������ͨ���ǰͷ���㵽��ӽ��ij��������͡�
ָ��Ϊ�ָ������ַ��������Ǹ����ij��������͡�����ַ���������8��14���ַ�����ݱ��ٶ�ͷ4���ַ�������������ݱ��ٶ���ͷ2���ַ������������ַ����г��ֵĶ�����֣��ַ��������ұ߱����ͣ����ҳ��ꡢ�¡��ա�Сʱ�����Ӻ���ֵ������ζ�ţ��㲻Ӧ��ʹ������
6 ���ַ����ַ��������磬�����ָ��'9903'
����Ϊ������1999��3�£���ᷢ��MySQL��һ�����㡱���ڲ��뵽��ı��У�������Ϊ��ݺ��·�ֵ99
��03
���������ڲ��ֶ�ʧ(��)����˸�ֵ����һ���Ϸ������ڡ�
TIMESTAMP
��ʹ�ñ�ָ����ֵ���������ȵĴ洢�Ϸ���ֵ����������ʾ��С�����м������⣺
TIMESTAMP(4)
��TIMESTAMP(2)
������ֵ������һ���Ϸ������ڲ���0
�����洢��
ALTER TABLE
�ؿ�һ����խ��TIMESTAMP
�У���ǰ�������Ρ�����Ϣ������ʾ��
TIMESTAMP
�в��ᵼ����Ϣʧȥ�����˸о���ֵ����ʾʱ�����ٵ���Ϣ����ʾ����
TIMESTAMP
ֵ���洢Ϊ�������ȣ�ֱ�Ӳ����洢ֵ��Ψһ������UNIX_TIMESTAMP()
���������������ڸ�ʽ���˵ļ�����ֵ�ϣ�����ζ���㲻��ʹ�ú�������HOUR()
��SECOND()
������TIMESTAMP
ֵ����ز��ֱ������ڸ�ʽ����ֵ�С����磬һ��TIMESTAMP
�е�HH
���ֲ�����ʾ��������ʾ��С������10������ڸ��̵�TIMESTAMP
ֵ������ʹ��HOUR()
����һ��������Ľ����
��ij�̶ֳ��ϣ������һ���������͵�ֵ����һ����ͬ���������͵Ķ���Ȼ���������ֵ��һЩ�ı����Ϣ����ʧ��
DATE
ֵ����һ��DATETIME
��TIMESTAMP
�����ֵ��ʱ�䲿�ֱ�����Ϊ'00:00:00'
����ΪDATE
ֵ������ʱ����Ϣ��
DATETIME
��TIMESTAMP
ֵ����һ��DATE
�����ֵ��ʱ�䲿�ֱ�ɾ������ΪDATE
���Ͳ��洢ʱ����Ϣ��
DATETIME
, DATE
��TIMESTAMP
ֵȫ��������ͬ���ĸ�ʽ����ָ�������������Ͳ�����ͬ����ֵ��Χ�����磬TIMESTAMP
ֵ���ܱ�1970
����2037
����������ζ�ţ�һ����������'1968-01-01'
������Ϊһ��DATETIME
��DATE
ֵ�Ϸ�ʱ��������һ����ȷTIMESTAMP
ֵ�����������ֵ������һ�������������任��0
��
��ָ������ֵʱ������ijЩȱ�ݣ�
'10:11:12'
���ܿ�������ʱ��ֵ����Ϊ��:���ָ��������������һ��������ʹ�ã������Ľ���Ϊ��ݱ����ͳ�'2010-11-12'
��ֵ'10:45:15'
�����任��'0000-00-00'
����Ϊ'45'
����һ���Ϸ����·ݡ�
00-69
��Χ����ֵ���任��2000-2069
�� 70-99
Χ����ֵ���任��1970-1999
�� TIME
����MySQL��������'HH:MM:SS'
��ʽ��ʾTIME
ֵ(��Դ�Сʱֵ��'HHH:MM:SS'
��ʽ)��TIME
ֵ�ķ�Χ���Դ�'-838:59:59'
��'838:59:59'
��Сʱ���ֿ��ܴܺ�ĵ�ԭ����TIME
���Ͳ������Ա�ʹ���ڱ�ʾһ���ʱ��(�������Dz���24��Сʱ)���������ڱ�ʾ��2���¼�֮�侭����ʱ���ʱ����(�������DZ�24��Сʱ��Щ���������Ǹ�ֵ)��
�����ö��и�ʽָ��TIME
ֵ��
'HH:MM:SS'
��ʽ��һ���ַ����������ɡ����������--�κα����ſ�����ʱ�䲿�ֵķָ��������磬'10:11:12'
��'10.11.12'
�ǵȼ۵ġ�
'HHMMSS'
��ʽ��һ���ַ������������Ϊһ��ʱ����͡����磬'101112'
������Ϊ'10:11:12'
������'109712'
�Dz��Ϸ���(����������ķ��Ӳ���)�����'00:00:00'
��
HHMMSS
��ʽ��һ�����֣�������ܽ���Ϊһ��ʱ�䡣���磬101112
������Ϊ'10:11:12'
��
TIME
�����Ľ��ܵĺ���������CURRENT_TIME
��
������Ϊ����һ��ʱ��ָ������ַ�����ָ����TIME
ֵ������ΪС��10
��Сʱ�����ӻ���ֵָ��2λ���֣�'8:3:2'
��'08:03:02'
��һ���ġ�
�����̵ġ�TIME
ֵ��ֵ��һ��TIME
������Ҫ����С�ġ�MySQLʹ������λ������ļ���������ֵ��(MySQL��TIME
ֵ����Ϊ������ʱ�䣬������Ϊһ���ʱ��
)���磬������뵽'11:12'
��'1112'
��1112
���'11:12:00'
��11��12��)������MySQL��������Ϊ'00:11:12'
��11��12��)��ͬ����'12'
��12
������Ϊ'00:00:12'
��
���dz���TIME
��Χ֮���ֵ�����Ϸ��ģ��������е���Χ�ʵ��Ķ˵�ֵ�����磬'-850:00:00'
��'850:00:00'
���任��'-838:59:59'
��'838:59:59'
��
���Ϸ���TIME
ֵ���任��'00:00:00'
��ע�⣬��Ȼ'00:00:00'
������һ���Ϸ���TIME
ֵ��û�������������ֱ��д洢��һ��'00:00:00'
ֵ��ԭ����ֵ�Ƿ�ָ��Ϊ'00:00:00'
�����Ƿ��Dz��Ϸ��ġ�
YEAR
����YEAR
������һ�� 1 �ֽ��������ڱ�ʾ��ݡ�
MySQL����������YYYY
��ʽ��ʾYEAR
ֵ���䷶Χ��1901
��2155
��
�����ö��ָ�ʽָ��YEAR
ֵ��
'1901'
��'2155'
��Χ��һ��4λ�ַ����� 1901
��2155
��Χ��һ��4λ���֡� '00'
��'99'
��Χ��һ��2λ�ַ���.��'00'
��'69'
��'70'
��'99'
��Χ��ֵ���任����2000
��2069
����1970
��1999
��YEAR
ֵ��1
��99
��Χ��һ��2λ���֡��ڷ�Χ1
��69
��70
��99
��ֵ���任���ڷ�Χ2001
��2069
��1970
��1999
��YEAR
��ֵ��ע�����2λ���ֵķ�Χ����ͬ��2λ�����ַ����ķ�Χ����Ϊ�㲻��ֱ��ָ������Ϊһ�����ֲ��Ұ�������Ϊ2000
����������Ϊһ���ַ���'0'
��'00'
ָ����������������Ϊ0000
��
YEAR
�����Ļ����н��ܵĺ���������NOW()
��
���Ϸ�YEAR
ֵ���任��0000
��
�ַ���������CHAR
��VARCHAR
��BLOB
��TEXT
��ENUM
��SET
��
CHAR
��VARCHAR
����CHAR
��VARCHAR
���������Ƶģ����������DZ��洢�ͼ����ķ�ʽ��ͬ��
һ��CHAR
�еij��ȱ�����Ϊ���㴴���ʱ���������ij��ȡ����ȿ�����1��255֮����κ�ֵ������MySQL
3.23�У�CHAR
���ȿ�����0��255��) ��CHAR
ֵ���洢ʱ�����DZ��ÿո����ұ����ָ���ij��ȡ���CHAR
ֵ������ʱ���Ϻ�Ŀո�ɾȥ��
��VARCHAR
���е�ֵ�DZ䳤�ַ��������������һ��VARCHAR
������1��255֮����κγ��ȣ������CHAR
�С�Ȼ������CHAR
�෴��VARCHAR
ֵֻ�洢������ַ������һ���ֽڼ�¼���ȣ�ֵ��������෴����ֵ���洢ʱ���Ϻ�Ŀո�ɾȥ��������ո�ɾ����ͬ��ANSI
SQL�淶����
������һ����������ȵ�ֵ����һ��CHAR
��VARCHAR
�У�ֵ���ض����ʺ�����
�±���ʾ���������͵��еIJ�ͬ��ͨ����ʾ�洢�䳤�ַ���ֵ��CHAR(4)
��VARCHAR(4)
�У�
ֵ | CHAR(4) |
�洢���� | VARCHAR(4) |
�洢���� |
'' |
' ' |
4 ���ֽ� | '' |
1 �ֽ� |
'ab' |
'ab ' |
4 ���ֽ� | 'ab' |
3 ���ֽ� |
'abcd' |
'abcd' |
4 ���ֽ� | 'abcd' |
5 ���ֽ� |
'abcdefgh' |
'abcd' |
4 ���ֽ� | 'abcd' |
5 ���ֽ� |
��CHAR(4)
��VARCHAR(4)
�м�����ֵ��ÿ������¶���һ���ģ���Ϊ�Ϻ�Ŀո�Ӽ�����CHAR
���ϱ�ɾ����
��CHAR
��VARCHAR
���д洢�ͱȽ�ֵ���Դ�Сд�����ֵķ�ʽ���еģ����ǵ����ӱ�����ʱ��BINARY
���Ա�ָ����BINARY
������ζ�Ÿ��е�ֵ����MySQL�������������еĻ�����ASCII˳���Դ�Сд���ֵķ�ʽ�洢�ͱȽϡ�
BINARY
�����ǡ�ճ�ԡ��ġ�����ζ�ţ���������BINARY
��������һ������ʽ�У������ı���ʽ��Ϊһ��BINARY
ֵ���Ƚϡ�
MySQL�ڱ�����ʱ���������ظı�һ��CHAR
��VARCHAR
�е����͡���7.7.1 �����ĵ���˵���ı���
BLOB
��TEXT
����һ��BLOB
��һ���ܱ���ɱ����������ݵĶ����ƵĴ����4��BLOB
����TINYBLOB
��BLOB
��MEDIUMBLOB
��LONGBLOB
�����������ܱ���ֵ����ȷ���������ͬ����7.3.1 �����ʹ洢������
4��TEXT
����TINYTEXT
��TEXT
��MEDIUMTEXT
��LONGTEXT
��Ӧ��4��BLOB
���ͣ�������ͬ������Ⱥʹ洢������BLOB
��TEXT
����֮���Ψһ����Ƕ�BLOB
ֵ������ͱȽ��Դ�Сд���з�ʽִ�У�����TEXT
ֵ�Ǵ�Сд�����еġ����仰˵��һ��TEXT
��һ����Сд�����е�BLOB
��
������һ��������������ȵ�ֵ����һ��BLOB
��TEXT
�У�ֵ���ض����ʺ�����
�ڴ�������棬�������Ϊһ��TEXT
����������ϣ�����һ��VARCHAR
�С�ͬ�����������Ϊһ��BLOB
����һ��VARCHAR
BINARY
�С�����ǣ�
BLOB
��TEXT
�������������ɵ�MySQL�汾��֧�������
BLOB
��TEXT
��û���Ϻ�ո��ɾ������Ϊ��VARCHAR
����ɾ����
BLOB
��TEXT
�����DEFAULT
ֵ��
MyODBC����BLOB
ΪLONGVARBINARY
��TEXT
ֵΪLONGVARCHAR
��
��ΪBLOB
��TEXT
ֵ�����Ƿdz����ģ���ʹ������ʱ�����������һЩ���ƣ�
BLOB
��TEXT
����ʹ��GROUP BY
��ORDER
BY
������뽫��ֵ�任��һ�����������������ı���������SUBSTRING
���������磺
mysql> select comment from tbl_name,substring(comment,20) as substr ORDER BY substr;
����㲻��������������ʱ��ֻ���е���max_sort_length
���ֽڱ�ʹ�ã�ȱʡ��max_sort_length
��1024�����ֵ��������mysqld
������ʱʹ��-O
ѡ��ı䡣������ڰ���BLOB
��TEXT
ֵ��һ������ʽ�Ϸ���(group)��ͨ��ָ���е�λ�û�ʹ��һ��������
mysql> select id,substring(blob_col,1,100) from tbl_name GROUP BY 2; mysql> select id,substring(blob_col,1,100) as b from tbl_name GROUP BY b;
BLOB
��TEXT
��������ߴ��������;��������������ڿͻ��������֮����ʵ�ʴ�������ֵ�ɿ��õ��ڴ�������ͨѶ�������Ĵ�С�����������ܸı���Ϣ��������С������������ڷ������Ϳͻ�����������10.2.3 ���ڷ����������� ע�⣬ÿ��BLOB
��TEXT
ֵ�ڲ���һ����������Ķ����ʾ���������е������������෴���������ڴ�ʱ�����б�����һ�δ洢��
ENUM
����һ��ENUM
��һ���ַ�������ֵͨ����һ���ڱ�����ʱ��ȷ���оٵ�����ֵ��һ�ű���ѡ��
�����е�ij�������£�ֵҲ���Կ��ַ���(""
)��NULL
��
ENUM
������һ������������ֵ�б��е��ַ���)�����ַ�����Ϊһ����������ֵ�����롣
ENUM
������ΪNULL
��NULL
Ҳ���еĺϷ�ֵ������ȱʡֵ��NULL
�����һ��ENUM
������ΪNOT
NULL
��ȱʡֵ������ֵ���б��ĵ�һ��Ա�� ÿö��ֵ��һ����ţ�
SELECT
����ҳ���������ЧENUM
ֵ���У�
mysql> SELECT * FROM tbl_name WHERE enum_col=0;
NULL
ֵ�ı����NULL
�� ���磬ָ��ΪENUM("one", "two", "three")
���п�������ʾ�������ֵ���κ�һ����ÿ��ֵ�ı��Ҳ����ʾ��
ֵ | ��� |
NULL |
NULL |
"" |
0 |
"one" |
1 |
"two" |
2 |
"three" |
3 |
ö�ٿ��������65535����Ա��
�����ֵ����һ��ENUM
��ʱ����ĸ�Ĵ�Сд���ؽ�Ҫ�ġ�Ȼ�����Ժ�����м�����ֵ��Сдƥ���ڱ�����ʱ����ָ������ֵ��ֵ�Ĵ�Сд��
�������һ�����ֵ������Ļ����м���һ��ENUM
����ֵ�ı�ű����ء������洢һ�����ֵ�һ��ENUM
�У����ֱ�����һ����ţ����Ҵ洢��ֵ�Ǹñ�ŵ�ö�ٳ�Ա��
ENUM
ֵ������˵���оٵ�ö�ٳ�Ա�Ĵ����������仰˵��ENUM
ֵ�������ǵı�����ֱ�����)
���磬��ENUM("a", "b")��"a"
����"b"
ǰ�棬���Ƕ�ENUM("b",
"a")��"b"
����"a"
ǰ�档���ַ�������ǿ��ַ���֮ǰ������NULL
������������ö��ֵ֮ǰ��
�������Ҫ�õ�һ��ENUM
�е����п��ܵ�ֵ����Ӧ��ʹ�ã�SHOW
COLUMNS FROM table_name LIKE enum_column_name
���ҷ����ڵڶ��е�ENUM
���塣
SET
����һ��SET
�ǿ����������ֵ��һ���ַ���������ÿһ������ӱ������챻ָ���˵�����ֵ��һ���б��б�ѡ���ɶ�����ϳ�Ա��ɵ�SET
��ͨ�����ɶ��ŷָ�(��,��)�ij�Ա��ָ�����������Ǹ�SET
��Աֵ���ܰ������ű�����
����, һ��ָ��ΪSET("one", "two") NOT NULL
���п�������Щֵ���κ�һ����
""
"one"
"two"
"one,two"
һ��SET
�������64����ͬ�ij�Ա��
MySQL������ֵ�洢SET
ֵ���洢ֵ�ĵͽ�λ��Ӧ�ڵ�һ�����ϳ�Ա��������������������м���һ��SET
ֵ��������ֵ��λ����λ��Ӧ�����ֵ�ļ��ϳ�Ա�����һ�����ֱ��洢��һ��SET
�У������ֵĶ����Ʊ�ʾ�����õ�λ�����������еļ��ϳ�Ա���ٶ�һ���б�ָ��ΪSET("a","b","c","d")
����ô��Ա������λֵ��
SET ��Ա |
ʮ���Ƶ�ֵ | �����Ƶ�ֵ |
a |
1 |
0001 |
b |
2 |
0010 |
c |
4 |
0100 |
d |
8 |
1000 |
���������и�ֵ9
���������Ƶ�1001
��������һ���͵��ĸ�SET
ֵ��Ա"a"
��"d"
��ѡ���ҽ��ֵ��"a,d"
��
���ڰ�������һ��SET
��Ա��ֵ���������ֵʱ������ν��ʲô˳���о�ֵ��Ҳ����ν������ֵ�о��˶��ٴΡ����Ժ����ֵʱ����ֵ�е�ÿ����Ա������һ�Σ����������ڱ�����ʱ��ָ����˳���г���Ա�����磬�����ָ��ΪSET("a","b","c","d")
����ô"a,d"
��"d,a"
��"d,a,a,d,d"
�ڼ���ʱ������Ϊ"a,d"
���֡�
SET
ֵ�����ִ�������NULL
ָ���ڷ�NULL
SET
ֵ֮ǰ��
ͨ������ʹ��LIKE
��������FIND_IN_SET()
����ִ����һ��SET
�ϵ�һ��SELECT
��
mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%'; mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;
��������Ҳ�Ṥ����
mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2'; mysql> SELECT * FROM tbl_name WHERE set_col & 1;
��Щ���ĵ�һ�����Ѱ��һ����ȷ��ƥ�䡣�ڶ���Ѱ�Ұ�����һ�����ϳ�Ա��ֵ��
�������Ҫ�õ�һ��SET
�е����п��ܵ�ֵ����Ӧ��ʹ�ã�SHOW
COLUMNS FROM table_name LIKE set_column_name
���ҷ����ڵڶ��е�SET
���塣
Ϊ������Ч��ʹ�ô洢�ռ䣬���������е������ʹ���ȷ�����͡����磬���һ�������б�������֮��1
��99999
��ֵ��
MEDIUMINT UNSIGNED
����õ����͡�
����ֵ�ľ�ȷ��ʾ��һ�����������⡣��MySQL����Ӧ��ʹ��DECIMAL
���ͣ�����Ϊһ���ַ������洢�����ᷢ����ȷ�Ե���ʧ�������ȷ�Բ���̫��Ҫ��DOUBLE
����Ҳ���㹻�õġ�
�Ը߾��ȣ��������ܱ任����һ��BIGINT
�洢�Ķ������͡��������������������еļ��㣬���ҽ��ڱ�Ҫʱ�����ת���ظ���ֵ����10.6 ѡ��һ����������
���е�MySQL�������ܱ�����������ص����ϵ�ʹ�������ǸĽ�SELECT
�������ܵ���÷�����
һ����������16���������������������256���ֽڣ�����������ڱ���MySQLʱ���ı䡣
����CHAR
��VARCHAR
�У�����������е�ǰ������첢�ұ�������������Ҫ���ٵĴ��̿ռ䡣��CREATE
TABLE
�����������ǰ�����������������
KEY index_name (col_name(length))
���������Ϊname
�е�ͷ10���ַ�����һ��������
mysql> CREATE TABLE test ( name CHAR(200) NOT NULL, KEY index_name (name(10)));
����BLOB
��TEXT
�У�����������е�ǰ���㲻�������е�ȫ����
MySQL���ڶ�����ϴ���������һ���������������15������ɡ�����CHAR
��VARCHAR
���ϣ���Ҳ����ʹ���е�ǰ��Ϊһ�������IJ���)��
һ������������������Ϊ�ǰ���ͨ���ϲ�(concatenate)������ֵ������ֵ��һ���������顣
����Ϊ��һ��WHERE
�Ӿ������ĵ�һ��ָ����֪������ʱ��MySQL�����ַ�ʽʹ�ö���������ʹ�ò�ѯ�dz����٣���ʹ�㲻Ϊ������ָ��ֵ��
�ٶ�һ�ű�ʹ������˵��������
mysql> CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first_name));
����name
��һ����last_name
��first_name
�ϵ������������������������last_name
��last_name
��first_name
��һ����֪��Χ��ָ��ֵ�IJ�ѯ����ˣ�name
������ʹ�������в�ѯ�У�
mysql> SELECT * FROM test WHERE last_name="Widenius"; mysql> SELECT * FROM test WHERE last_name="Widenius" AND first_name="Michael"; mysql> SELECT * FROM test WHERE last_name="Widenius" AND (first_name="Michael" OR first_name="Monty"); mysql> SELECT * FROM test WHERE last_name="Widenius" AND first_name >="M" AND first_name < "N";
Ȼ����name
����������������ѯ���У�
mysql> SELECT * FROM test WHERE first_name="Michael"; mysql> SELECT * FROM test WHERE last_name="Widenius" OR first_name="Michael";
����MySQLʹ�������Ľ����ܵķ�ʽ�ĸ������Ϣ����10.4 ʹ��MySQL������
Ϊ�˸�����ʹ��Ϊ������Ӧ�̵�SQLʵ�ֱ�д�Ĵ��룬�±���ʾ��MySQLӳ��������͡���Щӳ��ʹ�ô��������ݿ������ƶ������嵽MySQL�����ף�
������Ӧ������ | MySQL���� |
BINARY(NUM) |
CHAR(NUM) BINARY |
CHAR VARYING(NUM) |
VARCHAR(NUM) |
FLOAT4 |
FLOAT |
FLOAT8 |
DOUBLE |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT3 |
MEDIUMINT |
INT4 |
INT |
INT8 |
BIGINT |
LONG VARBINARY |
MEDIUMBLOB |
LONG VARCHAR |
MEDIUMTEXT |
MIDDLEINT |
MEDIUMINT |
VARBINARY(NUM) |
VARCHAR(NUM) BINARY |
������ӳ�䷢���ڱ�����ʱ���������������Ӧ��ʹ�õ����ʹ���������ô����һ��DESCRIBE
tbl_name
��䣬MySQLʹ�õȼ۵�MySQL���ͱ�����ṹ��
SELECT
��WHERE
�Ӿ��еĺ�����һ��SQL����е�select_expression
��where_definition
����ʹ�����������ĺ������κα���ʽ��ɡ�
����NULL
��һ������ʽ���Dz���һ��NULL
ֵ��������DZ���ʽ�������IJ������ͺ������ĵ���˵����
ע�⣺��һ��������������������֮�䲻��û�пո������MySQL���������ֺ������ú;�����ͬ���ֵĶԱ����е����ã����������ڲ�����Χ�пո�
Ϊ�˼�࣬��������д��ʽ��ʾ��mysql
�����������ˣ�
mysql> select MOD(29,9); 1 rows in set (0.00 sec) +-----------+ | mod(29,9) | +-----------+ | 2 | +-----------+
����ʾΪ������
mysql> select MOD(29,9); -> 2
һ��������������ǿ��õġ�ע����-
��+
��*
����£�������������������������BIGINT
��64λ�����ȼ��㣡
+
mysql> select 3+5; -> 8
-
mysql> select 3-5; -> -2
*
mysql> select 3*5; -> 15 mysql> select 18014398509481984*18014398509481984.0; -> 324518553658426726783156020576256.0 mysql> select 18014398509481984*18014398509481984; -> 0
���һ������ʽ�Ľ���Dz���ȷ�ģ���Ϊ�����˻��Ľ��������BIGINT
�����64���
/
mysql> select 3/5; -> 0.60
���������һ��NULL
�����
mysql> select 102/(1-1); -> NULL
һ��������BIGINT
�������㣬ֻҪ�����Ľ����ת����һ����������������ִ�У�
MySQLΪλ����ʹ��BIGINT
��64λ)�㷨�������Щ�����������64λ��һ����Χ��
|
mysql> select 29 | 15; -> 31
&
mysql> select 29 & 15; -> 13
<<
BIGINT
)���֡� mysql> select 1 << 2 -> 4
>>
BIGINT
)���֡� mysql> select 4 >> 2 -> 1
~
mysql> select 5 & ~1 -> 4
BIT_COUNT(N)
N
�趨��λ�������� mysql> select BIT_COUNT(29); -> 4
�������������1
��TRUE����0
��FALSE����
NOT
!
0
������1
������0
�����⣺
NOT NULL
����NULL
�� mysql> select NOT 1; -> 0 mysql> select NOT NULL; -> NULL mysql> select ! (1+1); -> 0 mysql> select ! 1+1; -> 1
�������ӷ���1
����Ϊ����ʽ��Ϊ(!1)+1
���㡣
OR
||
0
���Ҳ�NULL
������1
��
mysql> select 1 || 0; -> 1 mysql> select 0 || 0; -> 0 mysql> select 1 || NULL; -> 1
AND
&&
0
��NULL
������0
������1
��
mysql> select 1 && NULL; -> 0 mysql> select 1 && 0; -> 0
�Ƚϲ����ó�ֵ1
��TRUE����0
��FALSE����NULL
�Ƚ������Щ�����������������ֺ��ַ����ϡ�����Ҫʱ���ַ����Զ��ر��任�����������ֵ��ַ���(����Perl)��
MySQLʹ�����й���ִ�бȽϣ�
NULL
���ȽϵĽ����NULL
������<=>
��������
TIMESTAMP
��DATETIME
�ж�����������һ���������ڱȽ�ִ��ǰ��������ת��Ϊһ��ʱ���ǡ���������Ϊ�˶�ODBC���Ѻá�
ȱʡ�أ��ַ���ʹ�õ�ǰ���ַ����Դ�Сд���еķ�ʽ����(ȱʡΪISO-8859-1 Latin1������Ӣ�����õúܳ�ɫ)��
�����������ʾ�˶��ڱȽϲ����ַ��������ֵ�ת����
mysql> SELECT 1 > '6x'; -> 0 mysql> SELECT 7 > '6x'; -> 1 mysql> SELECT 0 > 'x6'; -> 0 mysql> SELECT 0 = 'x6'; -> 1
=
mysql> select 1 = 0; -> 0 mysql> select '0' = 0; -> 1 mysql> select '0.0' = 0; -> 1 mysql> select '0.01' = 0; -> 0 mysql> select '.01' = 0.01; -> 1
<>
!=
mysql> select '.01' <> '0.01'; -> 1 mysql> select .01 <> '0.01'; -> 0 mysql> select 'zapp' <> 'zappp'; -> 1
<=
mysql> select 0.1 <= 2; -> 1
<
mysql> select 2 <= 2; -> 1
>=
mysql> select 2 >= 2; -> 1
>
mysql> select 2 > 2; -> 0
<=>
mysql> select 1 <=> 1, NULL <=> NULL, 1 <=> NULL; -> 1 1 0
IS NULL
IS NOT NULL
NULL
mysql> select 1 IS NULL, 0 IS NULL, NULL IS NULL: -> 0 0 1 mysql> select 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
expr BETWEEN min AND max
expr
�Դ��ڻ����min
��expr
��С�ڻ����max
��BETWEEN
����1
������������0
��������еIJ���������һ���ã���ȼ��ڱ���ʽ(min
<= expr AND expr <= max)
����һ������(expr
)�����Ƚ���α�ִ�С����expr
��һ����Сд�����е��ַ�������ʽ������һ����Сд�����е��ַ����Ƚϡ����expr
��һ����Сд���е��ַ�������ʽ������һ����Сд���е��ַ����Ƚϡ����expr
��һ����������ʽ�����������Ƚϡ�������һ������(ʵ��)�Ƚϡ�
mysql> select 1 BETWEEN 2 AND 3; -> 0 mysql> select 'b' BETWEEN 'a' AND 'c'; -> 1 mysql> select 2 BETWEEN 2 AND '3'; -> 1 mysql> select 2 BETWEEN 2 AND 'x-3'; -> 0
expr IN (value,...)
expr
����IN
���е��κ�ֵ������1
������0
��������е�ֵ�dz�������ô���е�ֵ����expr
���ͱ����������Ȼ����Ŀ���������ö����Ƶ�������ɡ�����ζ�����IN
ֵ��ȫ���ɳ��������IN
�Ǻܿ�ġ����expr
��һ����Сд���е��ַ�������ʽ���ַ����Ƚ��Դ�Сд���з�ʽִ�С�
mysql> select 2 IN (0,3,5,'wefwf'); -> 0 mysql> select 'wefwf' IN (0,3,5,'wefwf'); -> 1
expr NOT IN (value,...)
NOT (expr IN (value,...))
��ͬ�� ISNULL(expr)
expr
��NULL
��ISNULL()
����1
������������0
��
mysql> select ISNULL(1+1); -> 0 mysql> select ISNULL(1/0); -> 1
COALESCE(list)
NULL
�ĵ�Ԫ�� mysql> select COALESCE(NULL,1); -> 1 mysql> select COALESCE(NULL,NULL,NULL); -> NULL
INTERVAL(N,N1,N2,N3,...)
N
< N1
������0
�����N
<
N2
������1
�ȵȡ����еIJ���������������Ϊ�˺�������ȷ�ع�������Ҫ��N1
<N2
<N3
<
...
<Nn
��������Ϊʹ�ö���������(�ܿ�)�� mysql> select INTERVAL(23, 1, 15, 17, 30, 44, 200); -> 3 mysql> select INTERVAL(10, 1, 10, 100, 1000); -> 2 mysql> select INTERVAL(22, 23, 30, 44, 200); -> 0
ͨ����������ַ����Ƚ��е��κα���ʽ�����ִ�Сд�ģ��Ƚ��Դ�Сд���еķ�ʽִ�С�
expr LIKE pat [ESCAPE 'escape-char']
1
��TRUE����0
��FALSE������LIKE
���������ģʽ��ʹ������2��ͨ����ַ���
% |
ƥ���κ���Ŀ���ַ�����������ַ� |
_ |
��ȷƥ��һ���ַ� |
mysql> select 'David!' LIKE 'David_'; -> 1 mysql> select 'David!' LIKE '%D%v%'; -> 1
Ϊ�˲���һ��ͨ���������ʵ������ת���ַ��ļ����ַ�ǰ�档����㲻ָ��ESCAPE
�ַ����ٶ�Ϊ��\����
\% |
ƥ��һ% �ַ� |
\_ |
ƥ��һ_ �ַ� |
mysql> select 'David!' LIKE 'David\_';
-> 0
mysql> select 'David_' LIKE 'David\_';
-> 1
Ϊ��ָ��һ����ͬ��ת���ַ���ʹ��ESCAPE
�Ӿ䣺
mysql> select 'David_' LIKE 'David|_' ESCAPE '|'; -> 1
LIKE
�����������ֵı���ʽ�ϣ�������MySQL��ANSI
SQL LIKE
��һ�����䡣)
mysql> select 10 LIKE '1%'; -> 1
ע�⣺��ΪMySQL���ַ�����ʹ��Cת���(���磬��\n��)������������LIKE
�ַ������ظ��κ���\�������磬Ϊ�˲�����\n����ָ����Ϊ��
\\n����Ϊ�˲�����\����ָ����Ϊ��\\\\������б�߱���������ȥһ�Σ���һ������ģʽƥ�����ʱ������һ�������ķ�б�߱�ƥ��)��
expr NOT LIKE pat [ESCAPE 'escape-char']
NOT (expr LIKE pat [ESCAPE 'escape-char'])
��ͬ��
expr REGEXP pat
expr RLIKE pat
expr
��һ��ģʽpat
��ģʽƥ�䡣ģʽ������һ��������������ʽ����MySQL �������ʽ�䷨�� H ����.���expr
ƥ��pat
������1
������0
��RLIKE
��REGEXP
��һ��ͬ��ʣ��ṩ����mSQL
�ļ����ԡ�ע�⣺��ΪMySQL���ַ�����ʹ��Cת���(���磬��\n��),
����������REGEXP
�ַ����ظ��κ���\������MySQL
3.23.4�У�REGEXP
����������(���Ƕ�����)�ַ����Ǻ��Դ�Сд��
mysql> select 'Monty!' REGEXP 'm%y%%'; -> 0 mysql> select 'Monty!' REGEXP '.*'; -> 1 mysql> select 'new*\n*line' REGEXP 'new\\*.\\*line'; -> 1 mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A"; -> 1 0
REGEXP
��RLIKE
ʹ�õ�ǰ���ַ���(ȱʡΪISO-8859-1
Latin1)�� expr NOT REGEXP pat
expr NOT RLIKE pat
NOT (expr REGEXP pat)
��ͬ�� STRCMP(expr1,expr2)
STRCMP()
����0
�������һ�������ݵ�ǰ���������С�ڵڶ���������-1
������1
��
mysql> select STRCMP('text', 'text2'); -> -1 mysql> select STRCMP('text2', 'text'); -> 1 mysql> select STRCMP('text', 'text'); -> 0
BINARY
BINARY
������ǿ�Ƹ�����������ַ���Ϊһ���������ַ�������ʹ��û������ΪBINARY
��BLOB
������һ��ǿ���бȽ����ִ�Сд�ļ�������
mysql> select "a" = "A"; -> 1 mysql> select BINARY "a" = "A"; -> 0
BINARY
��MySQL 3.23.0�б����롣
IFNULL(expr1,expr2)
expr1
����NULL
��IFNULL()
����expr1
������������expr2
��IFNULL()
����һ�����ֻ��ַ���ֵ��ȡ��������ʹ�õ������Ļ�����
IF(expr1,expr2,expr3)
expr1
��TRUE(expr1<>0
��expr1<>NULL
)����ôIF()
����expr2
������������expr3
��IF()
����һ�����ֻ��ַ���ֵ��ȡ��������ʹ�õ������ġ�
mysql> select IF(1>2,2,3); -> 3 mysql> select IF(1<2,'yes','no'); -> 'yes' mysql> select IF(strcmp('test','test1'),'yes','no'); -> 'no'
expr1
��Ϊ����ֵ�����㣬����ζ����������ڲ��Ը�����ַ���ֵ����Ӧ��ʹ��һ���Ƚϲ���������
mysql> select IF(0.1,1,0); -> 0 mysql> select IF(0.1<>0,1,0); -> 1
������ĵ�һ������У�IF(0.1)
����0
����Ϊ0.1
���任������ֵ,
���²���IF(0)
������ܲ����������ġ��ڵڶ�������У��Ƚϲ���ԭ���ĸ���ֵ�����Ƿ��Ƿ��㣬�ȽϵĽ��������һ��������
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...]
[ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result]
END
result
������value=compare-value
���ڶ����汾�������һ������Ϊ�棬����result�����û��ƥ���resultֵ����ô�����ELSE
���result�����ء����û��ELSE
���֣���ôNULL
�����ء�
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END; -> "one" mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END; -> "true" mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END; -> NULL
���е���ѧ������һ������������·���NULL
��
-
mysql> select - 2;
ע�⣬��������������һ��BIGINT
ʹ�ã�����ֵ��һ��BIGINT
������ζ����Ӧ�ñ�����������ʹ��-
���ǿ�����ֵ-2^63
��
ABS(X)
X
�ľ���ֵ�� mysql> select ABS(2); -> 2 mysql> select ABS(-32); -> 32
SIGN(X)
-1
��0
��1
��ȡ����X
�Ƿ��Ǹ��������������
mysql> select SIGN(-32); -> -1 mysql> select SIGN(0); -> 0 mysql> select SIGN(234); -> 1
MOD(N,M)
%
%
������)������N
��M
����������
mysql> select MOD(234, 10); -> 4 mysql> select 253 % 7; -> 1 mysql> select MOD(29,9); -> 2
��������ɰ�ȫ����BIGINT
ֵ��
FLOOR(X)
X
���������ֵ�� mysql> select FLOOR(1.23); -> 1 mysql> select FLOOR(-1.23); -> -2
ע�ⷵ��ֵ���任Ϊһ��BIGINT
��
CEILING(X)
X
����С����ֵ�� mysql> select CEILING(1.23); -> 2 mysql> select CEILING(-1.23); -> -1
ROUND(X)
X
�����������һ�������� mysql> select ROUND(-1.23); -> -1 mysql> select ROUND(-1.58); -> -2 mysql> select ROUND(1.58); -> 2
ROUND(X,D)
X
�������������D
ΪС����һ�����֡����D
Ϊ0
�������û��С�����С�����֡�
mysql> select ROUND(1.298, 1); -> 1.3 mysql> select ROUND(1.298, 0); -> 1
EXP(X)
e
����Ȼ�����ĵף���X
��� mysql> select EXP(2); -> 7.389056 mysql> select EXP(-2); -> 0.135335
LOG(X)
X
����Ȼ������ mysql> select LOG(2); -> 0.693147 mysql> select LOG(-2); -> NULL
LOG10(X)
X
����10Ϊ�Ķ����� mysql> select LOG10(2); -> 0.301030 mysql> select LOG10(100); -> 2.000000 mysql> select LOG10(-100); -> NULL
POW(X,Y)
POWER(X,Y)
X
��Y
���ݡ� mysql> select POW(2,2); -> 4.000000 mysql> select POW(2,-2); -> 0.250000
SQRT(X)
X
��ƽ������ mysql> select SQRT(4); -> 2.000000 mysql> select SQRT(20); -> 4.472136
PI()
mysql> select PI(); -> 3.141593
COS(X)
X
������, ������X
�Ի��ȸ����� mysql> select COS(PI()); -> -1.000000
SIN(X)
X
������ֵ���ڴ�X
�Ի��ȸ����� mysql> select SIN(PI()); -> 0.000000
TAN(X)
X
������ֵ���ڴ�X
�Ի��ȸ����� mysql> select TAN(PI()+1); -> 1.557408
ACOS(X)
X
�����ң���������ֵ��X
�����X
����-1
��1
�ķ�Χ������NULL
��
mysql> select ACOS(1); -> 0.000000 mysql> select ACOS(1.0001); -> NULL mysql> select ACOS(0); -> 1.570796
ASIN(X)
X
������ֵ����������ֵ��X
��L
���X
����-1
��1
�ķ�Χ������NULL
��
mysql> select ASIN(0.2); -> 0.201358 mysql> select ASIN('foo'); -> 0.000000
ATAN(X)
X
�ķ�����ֵ����������ֵ��X
�� mysql> select ATAN(2); -> 1.107149 mysql> select ATAN(-2); -> -1.107149
ATAN2(X,Y)
X
��Y
�ķ����С��������ڼ���Y/X
�ķ����У��������������ķ��ű�����������������ޡ�
mysql> select ATAN(-2,2); -> -0.785398 mysql> select ATAN(PI(),0); -> 1.570796
COT(X)
X
������ mysql> select COT(12); -> -1.57267341 mysql> select COT(0); -> NULL
RAND()
RAND(N)
0
��1.0
�ڵ��������ֵ�����һ����������N
��ָ����������������ֵ��
mysql> select RAND(); -> 0.5925 mysql> select RAND(20); -> 0.1811 mysql> select RAND(20); -> 0.1811 mysql> select RAND(); -> 0.2079 mysql> select RAND(); -> 0.7888
�㲻����һ��ORDER BY
�Ӿ���RAND()
ֵʹ���У���ΪORDER
BY
���ظ������ж�Ρ�Ȼ����MySQL3.23�У����������
SELECT * FROM table_name ORDER BY RAND()
�����������ڵõ�һ������SELECT
* FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000
�ļ��ϵ����������ע����һ��WHERE
�Ӿ����һ��RAND()
����ÿ��WHERE
��ִ��ʱ����������
LEAST(X,Y,...)
INTEGER
�����ģ������еIJ�����������ֵ��������Ϊ�����Ƚϡ�
REAL
�����ģ������еIJ�����ʵ��ֵ��������Ϊʵ���Ƚϡ�
mysql> select LEAST(2,0); -> 0 mysql> select LEAST(34.0,3.0,5.0,767.0); -> 3.0 mysql> select LEAST("B","A","C"); -> "A"
GREATEST(X,Y,...)
LEAST
һ���Ĺ�����бȽϡ�
mysql> select GREATEST(2,0); -> 2 mysql> select GREATEST(34.0,3.0,5.0,767.0); -> 767.0 mysql> select GREATEST("B","A","C"); -> "C"
��MySQL�� 3.22.5 ��ǰ�İ汾, ����ʹ��MAX()
������GREATEST
.
DEGREES(X)
X
���ӻ��ȱ任Ϊ�Ƕȡ� mysql> select DEGREES(PI()); -> 180.000000
RADIANS(X)
X
���ӽǶȱ任Ϊ���ȡ� mysql> select RADIANS(90); -> 1.570796
TRUNCATE(X,D)
X
���ض�ΪD
λС�������D
Ϊ0
�������û��С�����С�����֡�
mysql> select TRUNCATE(1.223,1); -> 1.2 mysql> select TRUNCATE(1.999,1); -> 1.9 mysql> select TRUNCATE(1.999,0); -> 1
�������ij��ȴ��ڷ���������max_allowed_packet
���ַ���ֵ��������NULL
����10.2.3 ���ڷ�����������
��������ַ���λ�õIJ�������һ��λ�ñ����Ϊ1��
ASCII(str)
str
���������ַ���ASCII����ֵ�����str
�ǿ��ַ���������0
�����str
��NULL
������NULL
��
mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dx'); -> 100
ORD(str)
((first
byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]
�����ַ���ASCII����ֵ�����ض��ֽ��ַ����롣�����������ַ�����һ�����ֽ��ַ���������ASCII()
�������ص���ֵͬ��mysql> select ORD('2'); -> 50
CONV(N,from_base,to_base)
N
���ַ������֣���from_base
���任Ϊto_base
��������κβ�����NULL
������NULL
������N
����Ϊһ�����������ǿ���ָ��Ϊһ��������һ���ַ�������С����2
��������36
�����to_base
��һ��������N
����Ϊ��һ���з�����������N
��������������
CONV
��64λ�㾫�ȹ����� mysql> select CONV("a",16,2); -> '1010' mysql> select CONV("6E",18,8); -> '172' mysql> select CONV(-17,10,-18); -> '-H' mysql> select CONV(10+"10"+'10'+0xa,10,10); -> '40'
BIN(N)
N
��һ���ַ�����ʾ���ڴ�N
��һ��������(BIGINT
)���֣���ȼ���CONV(N,10,2)
�����N
��NULL
������NULL
��
mysql> select BIN(12); -> '1100'
OCT(N)
N
��һ���ַ����ı�ʾ���ڴ�N
��һ�����������֣���ȼ���CONV(N,10,8)
�����N
��NULL������NULL
��
mysql> select OCT(12); -> '14'
HEX(N)
N
һ���ַ����ı�ʾ���ڴ�N
��һ��������(BIGINT
)���֣���ȼ���CONV(N,10,16)
�����N
��NULL
������NULL
��
mysql> select HEX(255); -> 'FF'
CHAR(N,...)
CHAR()
����������Ϊ�������ҷ�������Щ������ASCII�����ַ���ɵ�һ���ַ�����NULL
ֵ��������
mysql> select CHAR(77,121,83,81,'76'); -> 'MySQL' mysql> select CHAR(77,77.3,'77.3'); -> 'MMM'
CONCAT(str1,str2,...)
NULL
������NULL
�������г���2���IJ�����һ�����ֲ������任Ϊ�ȼ۵��ַ�����ʽ��
mysql> select CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> select CONCAT('My', NULL, 'QL'); -> NULL mysql> select CONCAT(14.3); -> '14.3'
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
str
�ij��ȡ� mysql> select LENGTH('text'); -> 4 mysql> select OCTET_LENGTH('text'); -> 4
LOCATE(substr,str)
POSITION(substr IN str)
substr
���ַ���str
��һ�����ֵ�λ�ã����substr
������str
���棬����0
.
mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0
�ú����Ƕ��ֽڿɿ��ġ�
LOCATE(substr,str,pos)
substr
���ַ���str
��һ�����ֵ�λ�ã���λ��pos
��ʼ�����substr
������str
���棬����0
��mysql> select LOCATE('bar', 'foobarbar',5); -> 7
INSTR(str,substr)
substr
���ַ���str
�еĵ�һ�����ֵ�λ�á�������2��������ʽ��LOCATE()
��ͬ�����˲������ߵ���
mysql> select INSTR('foobarbar', 'bar'); -> 4 mysql> select INSTR('xbar', 'foobar'); -> 0
LPAD(str,len,padstr)
str
���������ַ���padstr
�ֱ��str
��len
���ַ�����
mysql> select LPAD('hi',4,'??'); -> '??hi'
RPAD(str,len,padstr)
str
���������ַ���padstr
�ֱ��str
��len
���ַ�����
mysql> select RPAD('hi',5,'?'); -> 'hi???'
LEFT(str,len)
str
��������len
���ַ���mysql> select LEFT('foobarbar', 5); -> 'fooba'
RIGHT(str,len)
str
��������len
���ַ���
mysql> select RIGHT('foobarbar', 4); -> 'rbar'
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
str
����һ��len
���ַ����Ӵ�����λ��pos
��ʼ��ʹ��FROM
�ı�����ʽ��ANSI
SQL92��� mysql> select SUBSTRING('Quadratically',5,6); -> 'ratica'
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
str
����ʼλ��pos
����һ���Ӵ��� mysql> select SUBSTRING('Quadratically',5); -> 'ratically' mysql> select SUBSTRING('foobarbar' FROM 4); -> 'barbar'
SUBSTRING_INDEX(str,delim,count)
str
�ĵ�count
��������
�ָ���delim
֮����Ӵ������count
���������������ķָ��������(�������)
�������ַ������count
�Ǹ������������ķָ������ұߵ������ַ�(���ұ���)��
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com'
LTRIM(str)
str
�� mysql> select LTRIM(' barbar'); -> 'barbar'
RTRIM(str)
str
�� mysql> select RTRIM('barbar '); -> 'barbar'
�ú����Զ��ֽ��ǿɿ��ġ�
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
str
��������remstr
ǰ�����ɾ���ˡ����û�����η�BOTH
��LEADING
��TRAILING
������BOTH
���ٶ������remstr
û��ָ�����ո�ɾ����
mysql> select TRIM(' bar '); -> 'bar' mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar' mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx'
SOUNDEX(str)
str
��һ��ͬ���ַ�������������������ͬ����2���ַ���Ӧ������ͬ��ͬ���ַ�����һ����������ͬ���ַ�������4���ַ�������SOUNDEX()
��������һ�����ⳤ���ַ�����������ڽ����ʹ��SUBSTRING()
�õ�һ����������
ͬ���������з�������ĸ�ַ��ڸ������ַ����б����ԡ�������A-Z֮����ַ�������ĸ������Ԫ����
mysql> select SOUNDEX('Hello'); -> 'H400' mysql> select SOUNDEX('Quadratically'); -> 'Q36324'
SPACE(N)
N
���ո��ַ���ɵ�һ���ַ����� mysql> select SPACE(6); -> ' '
REPLACE(str,from_str,to_str)
str
�����ַ���from_str
�����г������ַ���to_str
���档
mysql> select REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com'
REPEAT(str,count)
count
Times�ε��ַ���str
��ɵ�һ���ַ��������count
<= 0
������һ�����ַ��������str
��count
��NULL
������NULL
��
mysql> select REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL'
REVERSE(str)
str
�� mysql> select REVERSE('abc'); -> 'cba'
INSERT(str,pos,len,newstr)
str
�����pos
��ʼ���Ӵ���len
���ַ������Ӵ����ַ���newstr
���档
mysql> select INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic'
ELT(N,str1,str2,str3,...)
N
= 1
������str1
�����N
= 2
������str2
���ȵȡ����N
��1
����ڲ�������������NULL
��ELT()
��FIELD()
�����㡣
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej' mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo'
FIELD(str,str1,str2,str3,...)
str
��str1
, str2
, str3
, ...
�嵥�����������str
û�ҵ�������0
��FIELD()
��ELT()
�����㡣
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 2 mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0
FIND_IN_SET(str,strlist)
str
����N
�Ӵ���ɵı�strlist
֮�У�����һ��1
��N
��ֵ��һ���ַ������DZ���,���ָ����Ӵ���ɵ�һ���ַ����������һ��������һ�������ַ������ҵڶ���������һ������ΪSET
����FIND_IN_SET()
�������Ż���ʹ��λ���㣡���str
������strlist
��������strlist
�ǿ��ַ���������0
������κ�һ��������NULL
������NULL
�������һ����������һ����,�����ú�����������������
mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2
MAKE_SET(bits,str1,str2,...)
bits
�����еĵ��ַ�����ɡ�str1
��Ӧ��λ0��str2
��Ӧλ1���ȵȡ���str1
,
str2
, ...
�е�NULL
�������ӵ�����С� mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a' mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world' mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
mysql> select EXPORT_SET(5,'Y','N',',',4) -> Y,N,Y,N
LCASE(str)
LOWER(str)
str
�����ݵ�ǰ�ַ���ӳ��(ȱʡ��ISO-8859-1
Latin1)�����е��ַ��ı��Сд���ú����Զ��ֽ��ǿɿ��ġ� mysql> select LCASE('QUADRATICALLY'); -> 'quadratically'
UCASE(str)
UPPER(str)
str
�����ݵ�ǰ�ַ���ӳ��(ȱʡ��ISO-8859-1
Latin1)�����е��ַ��ı�ɴ�д���ú����Զ��ֽ��ǿɿ��ġ� mysql> select UCASE('Hej'); -> 'HEJ'
LOAD_FILE(file_name)
max_allowed_packet
������ļ������ڻ���������ԭ��֮һ���ܱ���������������NULL
��
mysql> UPDATE table_name SET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1;
MySQL��Ҫʱ�Զ��任����Ϊ�ַ��������ҷ�����Ҳ��ˣ�
mysql> SELECT 1+"1"; -> 2 mysql> SELECT CONCAT(2,' test'); -> '2 test'
�������Ҫ��ȷ�ر任һ�����ֵ�һ���ַ�����������Ϊ�������ݵ�CONCAT()
��
����ַ��������ṩһ���������ַ�����Ϊ����������ַ���Ҳ��һ���������ַ��������任��һ���ַ��������ֱ�������һ���������ַ��������Ӱ��Ƚϡ�
����ÿ������ӵ�е�ֵ��Χ�Լ�����ָ�����ں�ʱ��ֵ����Ч��ʽ��������7.3.6 ���ں�ʱ��������
������һ��ʹ�����ں��������ӡ�����IJ�ѯѡ�������м�¼����date_col
��ֵ�������30�����ڣ�
mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
date
����������(1
=�����죬2
=����һ,
����7
=������)����Щ����ֵ��Ӧ��ODBC���� mysql> select DAYOFWEEK('1998-02-03'); -> 3
WEEKDAY(date)
date
����������(0
=����һ��1
=���ڶ�,
����6
= ������)�� mysql> select WEEKDAY('1997-10-04 22:23:00'); -> 5 mysql> select WEEKDAY('1997-11-05'); -> 2
DAYOFMONTH(date)
date
���·������ڣ���1
��31
��Χ�ڡ�
mysql> select DAYOFMONTH('1998-02-03'); -> 3
DAYOFYEAR(date)
date
��һ���е�����, ��1
��366
��Χ�ڡ�
mysql> select DAYOFYEAR('1998-02-03'); -> 34
MONTH(date)
date
���·ݣ���Χ1
��12
�� mysql> select MONTH('1998-02-03'); -> 2
DAYNAME(date)
date
���������֡� mysql> select DAYNAME("1998-02-05"); -> 'Thursday'
MONTHNAME(date)
date
���·����֡� mysql> select MONTHNAME("1998-02-05"); -> 'February'
QUARTER(date)
date
һ���еļ��ȣ���Χ1
��4
�� mysql> select QUARTER('98-04-01'); -> 2
WEEK(date)
WEEK(date,first)
date
������������0
��52
��2��������ʽWEEK()
������ָ�������Ƿ�ʼ�������������һ������ڶ���������0
�����ڴ������쿪ʼ������ڶ���������1
��������һ��ʼ��
mysql> select WEEK('1998-02-20'); -> 7 mysql> select WEEK('1998-02-20',0); -> 7 mysql> select WEEK('1998-02-20',1); -> 8
YEAR(date)
date
����ݣ���Χ��1000
��9999
��mysql> select YEAR('98-02-03'); -> 1998
HOUR(time)
time
��Сʱ����Χ��0
��23
��mysql> select HOUR('10:05:03'); -> 10
MINUTE(time)
time
�ķ��ӣ���Χ��0
��59
��mysql> select MINUTE('98-02-03 10:05:03'); -> 5
SECOND(time)
time
������������0
��59
��mysql> select SECOND('10:05:03'); -> 3
PERIOD_ADD(P,N)
N
���µ���P
���Ը�ʽYYMM
��YYYYMM
)���Ը�ʽYYYYMM
����ֵ��ע��β���P
��������ֵ��
mysql> select PERIOD_ADD(9801,2); -> 199803
PERIOD_DIFF(P1,P2)
P1
��P2
֮��������P1
��P2
Ӧ���Ը�ʽYYMM
��YYYYMM
��ע�⣬ʱ�ڲ���P1
��P2
��������ֵ��
mysql> select PERIOD_DIFF(9802,199703); -> 11
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)
ADDDATE()
��SUBDATE()
��DATE_ADD()
��DATE_SUB()
��ͬ��ʡ���MySQL
3.23�У������ʹ��+
��-
������DATE_ADD()
��DATE_SUB()
���������ӣ�date
��һ��ָ����ʼ���ڵ�DATETIME
��DATE
ֵ��expr
��ָ���ӵ���ʼ���ڻ�ӿ�ʼ���ڼ�ȥ�ļ��ֵһ������ʽ��expr
��һ���ַ�������������һ����-����ʼ��ʾ�������type
��һ���ؼ��ʣ�ָ������ʽӦ����α����͡�EXTRACT(type
FROM date)
�����������з��ء�type��������±���ʾ��type
��expr
����������������
type ֵ |
���� | ������expr ��ʽ |
SECOND |
�� | SECONDS |
MINUTE |
���� | MINUTES |
HOUR |
ʱ�� | HOURS |
DAY |
�� | DAYS |
MONTH |
�� | MONTHS |
YEAR |
�� | YEARS |
MINUTE_SECOND |
���Ӻ��� | "MINUTES:SECONDS" |
HOUR_MINUTE |
Сʱ�ͷ��� | "HOURS:MINUTES" |
DAY_HOUR |
���Сʱ | "DAYS HOURS" |
YEAR_MONTH |
����� | "YEARS-MONTHS" |
HOUR_SECOND |
Сʱ, ���ӣ� | "HOURS:MINUTES:SECONDS" |
DAY_MINUTE |
��, Сʱ, ���� | "DAYS HOURS:MINUTES" |
DAY_SECOND |
��, Сʱ, ����, �� | "DAYS HOURS:MINUTES:SECONDS" |
MySQL��expr
��ʽ�������κα��ָ�������ʾ��ʾ���ǽ���ķָ��������date
������һ��DATE
ֵ������ļ����������YEAR
��MONTH
��DAY
����(����û��ʱ�䲿��)�������һ��DATE
ֵ����������һ��DATETIME
ֵ��
mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; -> 1998-01-01 00:00:00 mysql> SELECT INTERVAL 1 DAY + "1997-12-31"; -> 1998-01-01 mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND; -> 1997-12-31 23:59:59 mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 SECOND); -> 1998-01-01 00:00:00 mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 DAY); -> 1998-01-01 23:59:59 mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL "1:1" MINUTE_SECOND); -> 1998-01-01 00:01:00 mysql> SELECT DATE_SUB("1998-01-01 00:00:00", INTERVAL "1 1:1:1" DAY_SECOND); -> 1997-12-30 22:58:59 mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR); -> 1997-12-30 14:00:00 mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY); -> 1997-12-02 mysql> SELECT EXTRACT(YEAR FROM "1999-07-02"); -> 1999 mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); -> 199907 mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03"); -> 20102
�����ָ��̫�̵ļ��ֵ(������type
�ؼ��������ļ������)��MySQL������ʡ���˼��ֵ�������沿�֡����磬�����ָ��һ��type
��DAY_SECOND
��ֵexpr
��ϣ�����졢Сʱ�����Ӻ��벿�֡��������"1:10"
����ָ��ֵ��MySQL�������Ӻ�Сʱ�����Ƕ�ʧ�IJ���ֵ�������Ӻ��롣���仰˵��"1:10"
DAY_SECOND
�����ȼ���"1:10" MINUTE_SECOND
�ķ�ʽ���ͣ������MySQL����TIME
ֵ��ʾ������ʱ�������Ϊһ���ʱ��ķ�ʽ�ж����ԡ������ʹ��ȷʵ����ȷ�����ڣ������NULL
�����������MONTH
��YEAR_MONTH
��YEAR
���ҽ�����ڴ������·ݵ����ֵ�����������������������������
mysql> select DATE_ADD('1998-01-30', Interval 1 month); -> 1998-02-28
ע�⣬��ǰ��������д�INTERVAL
��type
�ؼ��ʲ������ִ�Сд�ġ�
TO_DAYS(date)
date
������һ������(��0�������)�� mysql> select TO_DAYS(950501); -> 728779 mysql> select TO_DAYS('1997-10-07'); -> 729669
FROM_DAYS(N)
N
������һ��DATE
ֵ�� mysql> select FROM_DAYS(729669); -> '1997-10-07'
DATE_FORMAT(date,format)
format
�ַ�����ʽ��date
ֵ���������η����Ա�����format
�ַ����У�
%M |
������(January ����December ) |
%W |
��������(Sunday ����Saturday ) |
%D |
��Ӣ��ǰ���·ݵ�����(1st , 2nd , 3rd ,
�ȵȡ��� |
%Y |
��, ����, 4 λ |
%y |
��, ����, 2 λ |
%a |
�����������(Sun ����Sat ) |
%d |
�·��е�����, ����(00 ����31 ) |
%e |
�·��е�����, ����(0 ����31 ) |
%m |
��, ����(01 ����12 ) |
%c |
��, ����(1 ����12 ) |
%b |
��д���·�����(Jan ����Dec ) |
%j |
һ���е�����(001 ����366 ) |
%H |
Сʱ(00 ����23 ) |
%k |
Сʱ(0 ����23 ) |
%h |
Сʱ(01 ����12 ) |
%I |
Сʱ(01 ����12 ) |
%l |
Сʱ(1 ����12 ) |
%i |
����, ����(00 ����59 ) |
%r |
ʱ��,12 Сʱ(hh:mm:ss [AP]M ) |
%T |
ʱ��,24 Сʱ(hh:mm:ss ) |
%S |
��(00 ����59 ) |
%s |
��(00 ����59 ) |
%p |
AM ��PM |
%w |
һ�������е�����(0 =Sunday ����6 =Saturday �� |
%U |
����(0 ����52 ), ���������������ڵĵ�һ�� |
%u |
����(0 ����52 ), ��������һ�����ڵĵ�һ�� |
%% |
һ��������%���� |
���е������ַ��������ͱ����Ƶ�����С�
mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); -> 'Saturday October 1997' mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'); -> '22:23:00' mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j'); -> '4th 97 Sat 04 10 Oct 277' mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w'); -> '22 22 10 10:23:00 PM 22:23:00 00 6'
TIME_FORMAT(time,format)
DATE_FORMAT()
����һ��ʹ�ã�����format
�ַ���ֻ�ܰ�������Сʱ�����Ӻ������Щ��ʽ���η����������η�����һ��NULL
ֵ��0
��
CURDATE()
CURRENT_DATE
'YYYY-MM-DD'
��YYYYMMDD
��ʽ���ؽ�������ֵ��ȡ���ں�������һ���ַ����������������ı�ʹ�á�
mysql> select CURDATE(); -> '1997-12-15' mysql> select CURDATE() + 0; -> 19971215
CURTIME()
CURRENT_TIME
'HH:MM:SS'
��HHMMSS
��ʽ���ص�ǰʱ��ֵ��ȡ���ں�������һ���ַ������������ֵ������ı�ʹ�á�
mysql> select CURTIME(); -> '23:50:26' mysql> select CURTIME() + 0; -> 235026
NOW()
SYSDATE()
CURRENT_TIMESTAMP
'YYYY-MM-DD HH:MM:SS'
��YYYYMMDDHHMMSS
��ʽ���ص�ǰ�����ں�ʱ�䣬ȡ���ں�������һ���ַ������������ֵ������ı�ʹ�á�
mysql> select NOW(); -> '1997-12-15 23:50:26' mysql> select NOW() + 0; -> 19971215235026
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
'1970-01-01 00:00:00'
GMT��ʼ������)�����UNIX_TIMESTAMP()
��һ��date
���������ã������ش�'1970-01-01
00:00:00'
GMT��ʼ������ֵ��date
������һ��DATE
�ַ�����һ��DATETIME
�ַ�����һ��TIMESTAMP
����YYMMDD
��YYYYMMDD
��ʽ�ı���ʱ���һ�����֡�
mysql> select UNIX_TIMESTAMP(); -> 882226357 mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00'); -> 875996580
��UNIX_TIMESTAMP
������һ��TIMESTAMP
�У�������ֱ�ӽ���ֵ��û�������ġ�string-to-unix-timestamp���任��
FROM_UNIXTIME(unix_timestamp)
'YYYY-MM-DD HH:MM:SS'
��YYYYMMDDHHMMSS
��ʽ����unix_timestamp
��������ʾ��ֵ��ȡ���ں�������һ���ַ������ǻ������������б�ʹ�á�
mysql> select FROM_UNIXTIME(875996580); -> '1997-10-04 22:23:00' mysql> select FROM_UNIXTIME(875996580) + 0; -> 19971004222300
FROM_UNIXTIME(unix_timestamp,format)
format
�ַ�����ʽ����format
��������DATE_FORMAT()
�����г�����Ŀͬ�������η���
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x'); -> '1997 23rd December 03:43:30 x'
SEC_TO_TIME(seconds)
seconds
�������任��Сʱ�����Ӻ��룬ֵ��'HH:MM:SS'
��HHMMSS
��ʽ����ȡ���ں�������һ���ַ��������������������б�ʹ�á�
mysql> select SEC_TO_TIME(2378); -> '00:39:38' mysql> select SEC_TO_TIME(2378) + 0; -> 3938
TIME_TO_SEC(time)
time
������ת�����롣 mysql> select TIME_TO_SEC('22:23:00'); -> 80580 mysql> select TIME_TO_SEC('00:39:38'); -> 2378
DATABASE()
mysql> select DATABASE(); -> 'test'
USER()
SYSTEM_USER()
SESSION_USER()
mysql> select USER(); -> 'davida@localhost'
��MySQL 3.22.11���Ժ�汾�У�������û����Ϳͻ��������������������ֻ��ȡ�û�������(ֵ�Ƿ�������������־��ɹ���)��
mysql> select substring_index(USER(),"@",1); -> 'davida'
PASSWORD(str)
str
����һ�������ַ������ú���������Ϊ����user
��Ȩ����Password
���д洢���������MySQL���
mysql> select PASSWORD('badpwd'); -> '7f84554057dd964b'
PASSWORD()
�����Ƿǿ���ġ�PASSWORD()
������Unix������ܵ���ͬ�ķ���ִ�п�����ܡ��㲻Ӧ�üٶ�������Unix
��������MySQL������һ���ģ�PASSWORD()
����������Unix�����ļ��洢����ͬ�ļ���ֵ����ENCRYPT()
��
ENCRYPT(str[,salt])
crypt()
ϵͳ���ü���str
��salt
����Ӧ����һ����2���ַ����ַ�������MySQL
3.22.16�У�salt
���Գ���2���ַ�����mysql> select ENCRYPT("hello"); -> 'VxuFAJXVARROc'
���crypt()
�����ϵͳ�ϲ����ã�ENCRYPT()
���Ƿ���NULL
��ENCRYPT()
ֻ����str
��ʼ8���ַ�����������������������ijЩϵͳ�����������⽫�ɵײ��crypt()
ϵͳ���õ���Ϊ������
ENCODE(str,pass_str)
pass_str
���������str
��Ϊ�˽��ܽ����ʹ��DECODE()
�������һ���������ַ������������Ҫ�����б�������ʹ��һ��BLOB
�����͡�
DECODE(crypt_str,pass_str)
pass_str
��Ϊ������ܼ��ܵ��ַ���crypt_str
��crypt_str
Ӧ����һ����ENCODE()
���ص��ַ�����
MD5(string)
mysql> select MD5("testing") -> 'ae2b1fca515949e5d54fb22b8ed95575'
LAST_INSERT_ID([expr])
AUTO_INCREMENT
�е����һ���Զ�������ֵ����20.4.29 mysql_insert_id()
�� mysql> select LAST_INSERT_ID(); -> 195
���������ID��ÿ������Ϊ�����ڷ�������ά���������ᱻ�����ͻ��ı䡣������������һ���з�ħ��ֵ(��������NULL
�Ͳ���0
��һ��ֵ)��AUTO_INCREMENT
�У����������ᱻ�ı䡣���expr
��Ϊһ��������һ��UPDATE
�Ӿ��LAST_INSERT_ID()
�����������ô����ֵ��Ϊһ��LAST_INSERT_ID()
ֵ�����ء����������ģ��˳�����ȴ�������
mysql> create table sequence (id int not null); mysql> insert into sequence values (0);
Ȼ����ܱ���������˳��ţ���������
mysql> update sequence set id=LAST_INSERT_ID(id+1);
����Բ�����LAST_INSERT_ID()
������˳��������ʹ�ú�����ʵ�ó����ڷ��������Զ�ά��IDֵ��Ϊ����Զ�������ֵ������Լ����µ�IDֵ���������ܶ�������MySQL�е��κ�������AUTO_INCREMENT
ֵһ�������磬LAST_INSERT_ID()
��û��һ������
)��������ID��C API����mysql_insert_id()
Ҳ�ɱ������õ�ֵ��
FORMAT(X,D)
X
Ϊ�����ڸ�ʽ'#,###,###.##'
���������뵽D
ΪС�������D
Ϊ0
�������û��С�����С�����֡�
mysql> select FORMAT(12332.123456, 4); -> '12,332.1235' mysql> select FORMAT(12332.1,4); -> '12,332.1000' mysql> select FORMAT(12332.2,0); -> '12,332'
VERSION()
mysql> select VERSION(); -> '3.22.19b-log'
GET_LOCK(str,timeout)
str
������һ�����ֵ��������ڶ���timeout
Ϊ��ʱ����������ɹ���ã�����1
��������Գ�ʱ�ˣ�����0
�����������һ��������NULL
(����Ӵ洢��������߳���mysqladmin
kill
��ɱ��)������ִ��RELEASE_LOCK()
ʱ��ִ��һ���µ�GET_LOCK()
���߳���ֹʱ��һ���������ͷš��ú�����������ʵ��Ӧ������ģ���¼��������ֹ�����ͻ���ͬ�����ֵ�����������һ�������������ַ������ֵĿͻ�����ʹ���ַ���ִ����Э�������������
mysql> select GET_LOCK("lock1",10); -> 1 mysql> select GET_LOCK("lock2",10); -> 1 mysql> select RELEASE_LOCK("lock2"); -> 1 mysql> select RELEASE_LOCK("lock1"); -> NULL
ע�⣬�ڶ���RELEASE_LOCK()
���÷���NULL
������"lock1"
�Զ��ر��ڶ���GET_LOCK()
�����ͷš�
RELEASE_LOCK(str)
str
������ͨ��GET_LOCK()
��õ�������������ͷţ�����1
�������û������߳�����(�ڴ��������û���ͷ�)����0
����������������������ڣ�����NULL
�����������û��ͨ������GET_LOCK()
��û�������Ѿ����ͷ��ˣ����������ڡ�
BENCHMARK(count,expr)
BENCHMARK()
�����ظ�count
Times��ִ�б���ʽexpr
�����������ڼ�ʱMySQL��������ʽ�ж�졣���ֵ����0
����������mysql
�ͻ����������ѯ��ִ��ʱ�䡣
mysql> select BENCHMARK(1000000,encode("hello","goodbye")); +----------------------------------------------+ | BENCHMARK(1000000,encode("hello","goodbye")) | +----------------------------------------------+ | 0 | +----------------------------------------------+ 1 row in set (4.74 sec)
�����ʱ���ǿͻ��˵ľ���ʱ�䣬�����ڷ������˵�CPUʱ�䡣ִ��BENCHMARK()
���ɴο��������ǵģ�����ע������������ĸ����ж��������ͽ����
GROUP
BY
�Ӿ�һ��ʹ�õĺ���������ڲ�����GROUP BY
�Ӿ��һ�������ʹ�þۺϺ��������ȼ��ھۺ������С�
COUNT(expr)
SELECT
�������������еķ�NULL
ֵ����Ŀ��
mysql> select student.student_name,COUNT(*) from student,course where student.student_id=course.student_id GROUP BY student_name;
COUNT(*)
�������صļ�������������Ŀ����Щ��ͬ�����������Ƿ����NULL
ֵ�����SELECT
��һ������������û�м����������в���û��WHERE
�Ӿ䣬COUNT(*)
���Ż��Ա���ٵط��ء����磺
mysql> select COUNT(*) from student;
COUNT(DISTINCT expr,[expr...])
mysql> select COUNT(DISTINCT results) from student;
��MySQL�У������ͨ������һ������ʽ�б��Եõ���ͬ�ı���ʽ��ϵ���Ŀ����
ANSI SQL�У�����ܱ�����CODE(DISTINCT ..)
�ڽ������б���ʽ�����ӡ�
AVG(expr)
expr
��ƽ��ֵ�� mysql> select student_name, AVG(test_score) from student GROUP BY student_name;
MIN(expr)
MAX(expr)
expr
����С�����ֵ��MIN()
��MAX()
������һ���ַ��������������ֵ�����£����Ƿ�����С�������ַ���ֵ��
mysql> select student_name, MIN(test_score), MAX(test_score) from student GROUP BY student_name;
SUM(expr)
expr
�ĺ͡�ע�⣬������صļ���û���У�������NULL��
STD(expr)
STDDEV(expr)
expr
����(deviation)�����Ƕ� ANSI SQL
����չ���ú�������ʽSTDDEV()
���ṩ��Oracle�ļ����ԡ� BIT_OR(expr)
expr
������λ��λ������ 64 λ(BIGINT
)���Ƚ��С�
BIT_AND(expr)
expr
������λ��λ�롣������ 64 λ(BIGINT
)���Ƚ��С�
MySQL��չ��GROUP BY
���÷�������Բ������ڵ�GROUP
BY
���ֵ�SELECT
����ʽ��ʹ���л���㣬���ʾ�������κο���ֵ�������ʹ���������ܸ��ã������ڲ���Ҫ����Ŀ������ͷ��顣���磬�������в�ѯ�в���Ҫ��customer.name
�Ͼۺϣ�
mysql> select order.custid,customer.name,max(payments) from order,customer where order.custid = customer.custid GROUP BY order.custid;
�� ANSI SQL�У��㽫���뽫customer.name
�ӵ�GROUP BY
�Ӿ䡣��MySQL�У�����������ġ�
������GROUP BY
����ʡ�Ե��������в���Ψһ�ģ���Ҫʹ��������ܡ�
��ijЩ����£������ʹ��MIN()
��MAX()
���һ���ض�����ֵ����ʹ������Ψһ�ġ����������Ӱ���sort
������Сֵ���е�column
ֵ��
substr(MIN(concat(sort,space(6-length(sort)),column),7,length(column)))
ע�⣬���������ʹ��MySQL
3.22(�����)�������������ͼ���ANSI SQL���㲻����GROUP BY
��ORDER
BY
�Ӿ���ʹ�ñ���ʽ�������ͨ��ʹ�ñ���ʽ��һ��������������ƣ�
mysql> SELECT id,FLOOR(value/100) AS val FROM tbl_name GROUP BY id,val ORDER BY val;
��MySQL
3.23���������������
mysql> SELECT id,FLOOR(value/100) FROM tbl_name ORDER BY RAND();
CREATE
DATABASE
�䷨CREATE DATABASE db_name
CREATE DATABASE
�ø��������ִ���һ�����ݿ⡣���������ݿ����ֹ�����7.1.5
���ݿ⡢���ӡ��������кͱ��������и�����������ݿ��Ѿ����ڣ�����һ������
��MySQL�е����ݿ�ʵ�ֳɰ�����Ӧ���ݿ��б����ļ���Ŀ¼����Ϊ���ݿ��ڳ�ʼ����ʱû���κα���CREATE
DATABASE
���ֻ����MySQL����Ŀ¼���洴��һ��Ŀ¼��
��Ҳ������mysqladmin
�������ݿ⡣��12.1 ��ͬ��MySQL����ĸ�����
DROP DATABASE
�䷨DROP DATABASE [IF EXISTS] db_name
DROP DATABASE
ɾ�����ݿ��е����б������ݿ⡣ҪС�ĵ�ʹ��������
DROP DATABASE
���ش����ݿ�Ŀ¼��ɾ�����ļ�����Ŀ��ͨ������3���ڱ�����������Ϊÿ�ű���Ӧ��һ����.MYD���ļ���һ����.MYI���ļ���һ����.frm���ļ���
��MySQL 3.22���Ժ�汾�У������ʹ�ùؼ���IF
EXISTS
��ֹһ������ķ�����������ݿⲻ���ڡ�
��Ҳ������mysqladmin
�������ݿ⡣��12.1 ��ͬ�� MySQL ����ĸ�����
CREATE TABLE
�䷨CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] create_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition] or PRIMARY KEY (index_col_name,...) or KEY [index_name] (index_col_name,...) or INDEX [index_name] (index_col_name,...) or UNIQUE [INDEX] [index_name] (index_col_name,...) or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition] or CHECK (expr) type: TINYINT[(length)] [UNSIGNED] [ZEROFILL] or SMALLINT[(length)] [UNSIGNED] [ZEROFILL] or MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] or INT[(length)] [UNSIGNED] [ZEROFILL] or INTEGER[(length)] [UNSIGNED] [ZEROFILL] or BIGINT[(length)] [UNSIGNED] [ZEROFILL] or REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] or DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] or FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] or DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] or NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL] or CHAR(length) [BINARY] or VARCHAR(length) [BINARY] or DATE or TIME or TIMESTAMP or DATETIME or TINYBLOB or BLOB or MEDIUMBLOB or LONGBLOB or TINYTEXT or TEXT or MEDIUMTEXT or LONGTEXT or ENUM(value1,value2,value3,...) or SET(value1,value2,value3,...) index_col_name: col_name [(length)] reference_definition: REFERENCES tbl_name [(index_col_name,...)] [MATCH FULL | MATCH PARTIAL] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT table_options: TYPE = {ISAM | MYISAM | HEAP} or AUTO_INCREMENT = # or AVG_ROW_LENGTH = # or CHECKSUM = {0 | 1} or COMMENT = "string" or MAX_ROWS = # or MIN_ROWS = # or PACK_KEYS = {0 | 1} or PASSWORD = "string" or DELAY_KEY_WRITE = {0 | 1} or ROW_FORMAT= { default | dynamic | static | compressed } select_statement: [IGNORE | REPLACE] SELECT ... (Some legal select statement)
CREATE TABLE
�ڵ�ǰ���ݿ����ø��������ִ���һ�����ݿ���������ı����Ĺ�����7.1.5
���ݿ⣬���ӣ��������кͱ��������и����������ǰ���ݿⲻ���ڻ�������Ѿ����ڣ�����һ������
��MySQL3.22���Ժ�汾�У��������Ա�ָ��Ϊdb_name.tbl_name
��������û�е�ǰ�����ݿⶼ���ԡ�
��MySQL3.23�У����㴴��һ�ű�ʱ�������ʹ��TEMPORARY
�ؼ��ʡ����һ��������������ʱ�����Զ���ɾ���������������ǰ���������������ζ�ţ�2����ͬ��������ʹ����ͬ����ʱ�������ֶ�����˴˳�ͻ������ͬ���ֵ��������ݿ����ͻ�������еı�������ֱ����ʱ����ɾ������
��MySQL3.23���Ժ�汾�У������ʹ�ùؼ���IF NOT
EXISTS
�Ա�������Ѿ����ڲ�����һ������ע�⣬��֤ʵ���ṹ����ͬ�ġ�
ÿ�ű�tbl_name
�������ݿ�Ŀ¼��һЩ�ļ���ʾ����MyISAM���͵ı�������£��㽫�õ���
�ļ� | Ŀ�� |
tbl_name.frm |
������(����)�ļ� |
tbl_name.MYD |
�����ļ� |
tbl_name.MYI |
�����ļ� |
���ڸ��������͵����ʵĸ�����Ϣ����7.3 ��������
NULL
Ҳ��ָ��NOT NULL
���б���Ϊָ����NULL
��
AUTO_INCREMENT
���������NULL
ֵ���Ƽ�)��0
��һ��AUTO_INCREMENT
����ʱ���б�����Ϊvalue+1
���ڴ�value
�ǵ�ǰ���е��е����ֵ��AUTO_INCREMENT
˳���1
��ʼ����20.4.29 mysql_insert_id()
�������ɾ���˰���һ��AUTO_INCREMENT
�е����ֵ���У�ֵ��������ʹ�á������ɾ���������е��У�˳�����¿�ʼ��ע�⣺ÿ����ֻ����һ��AUTO_INCREMENT
�У����������뱻������Ϊ��ʹ��MySQL����һЩ
ODBC Ӧ�ó��������в�ѯ������ҳ���������У� SELECT * FROM tbl_name WHERE auto_col IS NULL
NULL
ֵ����TIMESTAMP
�еĴ�����ͬ�����������͡��㲻����һ��TIMESTAMP
���д洢һ������NULL
��������ΪNULL
��������ɵ�ǰ�����ں�ʱ�䡣��ΪTIMESTAMP
�б��־�������NULL
��NOT
NULL
���Բ���һ�㷽ʽ���ò��������ָ�����ǣ��������ԡ�����һ���棬Ϊ��ʹ��MySQL�ͻ�������ʹ��TIMESTAMP
�У������������������п��Ա���ֵNULL
(
���ǶԵ�)������TIMESTAMP
ʵ���Ͼ�������һ��NULL
ֵ������ʹ��DESCRIBE
tbl_name
�õ��й���ı�������ʱ����ͻ����ס�ע�⣬����һ��TIMESTAMP
��Ϊ0
��ͬ�ڽ�������ΪNULL
����Ϊ0
��һ����Ч��TIMESTAMP
ֵ��
DEFAULT
ֵ��MySQL�Զ��ط���һ��������п���ȡNULL
��Ϊֵ��ȱʡֵ��NULL
������б�����ΪNOT
NULL
��ȱʡֵȡ���������ͣ� AUTO_INCREMENT
���Ե��������ͣ�ȱʡֵ��0
������һ��AUTO_INCREMENT
�У�ȱʡֵ����˳���е���һ��ֵ��
TIMESTAMP
�����ں�ʱ�����ͣ�ȱʡֵ�Ǹ������ʵ��ġ��㡱ֵ�����ڱ��е�һ��TIMESTAMP
�У�ȱʡֵ�ǵ�ǰ�����ں�ʱ�䡣��7.3.6 ���ں�ʱ�������� ENUM
���ַ������ͣ�ȱʡ�ǿ��ַ���������ENUM
��ȱʡֵ�ǵ�һ��ö��ֵ��
KEY
��INDEX
��һ��ͬ��ʡ� UNIQUE
��ֻ���в�ͬ��ֵ���������ͼ��ƥ�������еļ����������У�����һ������
PRIMARY KEY
��һ��ΨһKEY
�����ж�������ƣ������еĹؼ��б��뱻����ΪNOT
NULL
����MySQL�У���������ΪPRIMARY
��һ�ű�ֻ����һ��PRIMARY
KEY
������ڱ�����û��һ��PRIMARY KEY
����һЩӦ�ó���Ҫ��PRIMARY
KEY
��MySQL�����ص�һ��UNIQUE
������û���κ�NULL
�У���ΪPRIMARY
KEY
�� PRIMARY KEY
������һ������������Ȼ�����㲻����һ����˵����ʹ��PRIMARY
KEY
�Ĺؼ������Դ���һ��������������������������ǵ�������Ϊ�����������ʹ��PRIMARY
KEY(index_col_name, ...)
��� index_col_name
��ͬ�����֣���һ����ѡ��suffix(_2
,
_3
, ...
)ʹ��Ψһ������ʹ��SHOW INDEX FROM
tbl_name
����һ�ű����������֡���7.21
SHOW
�䷨(�õ������еȵ���Ϣ���� MyISAM
������֧�ֿ�����NULL
ֵ�����ϵ�����������������£������������������ΪNOT
NULL
��������һ������ col_name(length)
��������ָ����ʹ�ò��ֵ�CHAR
��VARCHAR
�е�һ������������ʹ�����ļ���ø�С����7.3.9 �������� MyISAM
������֧��BLOB
��TEXT
�е�����������һ��BLOB
��TEXT
���Ϸ�������ʱ�����������ָ�������ij��ȣ�
CREATE TABLE test (blob_col BLOB, index(blob_col(10)));
TEXT
��BLOB
��һ��ʹ��ORDER BY
��GROUP
BY
ʱ��ֻʹ��ͷmax_sort_length
���ֽڡ���7.3.7.2 BLOB
��TEXT
������
FOREIGN KEY
��CHECK
��REFERENCES
�Ӿ�ʵ���ϲ����κ����飬��������ṩ�����ԣ�ʹ���������״�������SQL��������ֲ���벢���н������ô�������Ӧ�á���5.4 MySQLȱ�ٵĹ����� NULL
��ռ�ݶ���һλ��ȡ�ᵽ��ӽ����ֽڡ� row length = 1 + (sum of column lengths) + (number of NULL columns + 7)/8 + (number of variable-length columns)
table_options
��SELECT
ѡ��ֻ��MySQL 3.23���Ժ�汾�б�ʵ�֡���ͬ�ı������ǣ�
ISAM | ԭ���ı������� |
MyISAM | ȫ�¶����ƿ���ֲ�ı������� |
HEAP | ���ڸñ������ݽ����洢���ڴ��� |
��9.4 MySQL ��������������ѡ������Ż�������Ϊ���ڴ��������£��㲻��ָ�������κ�һ����ѡ������б������ã����������˵����
AUTO_INCREMENT |
����ҪΪ��ı��趨����һ�� auto_increment ֵ ( MyISAM �� |
AVG_ROW_LENGTH |
��ı���ƽ���г��ȵĽ���ֵ����ֻ��ҪΪ�б䳤��¼�ı��������� |
CHECKSUM |
�������ҪMySQL��ÿ��ά��һ��У���(ʹ����ø����Ը��µ���ʹ���������ҳ��ı�)������Ϊ1 ( MyISAM ) |
COMMENT |
������ı���һƪ60���ַ���ע�� |
MAX_ROWS |
��ƻ��ڱ��д洢���е������Ŀ |
MIN_ROWS |
��ƻ��ڱ��д洢���е���С��Ŀ |
PACK_KEYS |
�������Ҫ�и�С��������������Ϊ1����ͨ��ʹ�ĸ��¸������Ҷ�ȡ����(MyISAM��ISAM)�� |
PASSWORD |
��һ���������.frm �ļ�����ѡ���ڱ�MySQL�汾�в����κ����顣
|
DELAY_KEY_WRITE |
�����Ҫ�Ƴٹؼ����ĸ���ֱ�������ر�(MyISAM)����������Ϊ1�� |
ROW_FORMAT |
������Ӧ����α��洢(Ϊ�˽���)�� |
����ʹ��һ��MyISAM
��ʱ��MySQLʹ��max_rows
* avg_row_length
�ij˻��������յı����ж������㲻ָ��������κ�ѡ���һ���������ߴ罫��4G(��2G�������IJ���ϵͳ��֧��2G�ı�)��
CREATE
����ָ��һ��SELECT
��MySQL����SELECT
�����еĵ�Ԫ�������ֶΡ����磺
mysql> CREATE TABLE test (a int not null auto_increment, primary key (a), key(b)) TYPE=HEAP SELECT b,c from test2;
�⽫����һ����3���е�HEAP
����ע������ڿ������ݽ���ʱ�����κδ������Զ���ɾ����
��ijЩ����£�MySQL�����ظı���һ��CREATE TABLE
��������һ����˵��������Ҳ������ALTER
TABLE
����
VARCHAR
���ı�ΪCHAR
�� VARCHAR
��TEXT
��BLOB
)�����д���3���ַ���CHAR
�б��ı�ΪVARCHAR
�С������κη��涼��Ӱ�������ʹ���У���MySQL�У�VARCHAR
ֻ�Ǵ洢�ַ���һ����ͬ������MySQLʵʩ���ָı䣬����Ϊ����ʡ�ռ䲢��ʹ����������ݡ���10.6 ѡ��һ�ֱ��������� TIMESTAMP
����ʾ�ߴ������ż������2 �� 14�ķ�Χ�ڡ������ָ��0��ʾ�ߴ���14�ߴ类ǿ��Ϊ14����1��13��Χ�ڵ�����ֵ�ߴ类ǿ��Ϊ��һ�������ż����
TIMESTAMP
������洢һ������NULL
��������ΪNULL
������Ϊ��ǰ�����ں�ʱ�䡣��ΪTIMESTAMP
�б��־���������NULL
��NOT
NULL
���Բ���һ��ķ�ʽ���ò��������ָ�����ǣ��������ԡ�DESCRIBE
tbl_name
���DZ����TIMESTAMP
�п��ܸ�����NULL
ֵ��
�������Ҫ֪��MySQL�Ƿ�ʹ���˳���ָ���������һ�������ͣ��ڴ�����ı���ı�֮����һ��DESCRIBE
tbl_name
��伴�ɡ�
�����ʹ��myisampack
ѹ��һ���������ܻᷢ���ı�ijЩ�����������͡���10.6.3 ѹ������������
ALTER TABLE
�䷨ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD INDEX [index_name] (index_col_name,...) or ADD PRIMARY KEY (index_col_name,...) or ADD UNIQUE [index_name] (index_col_name,...) or ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} or CHANGE [COLUMN] old_col_name create_definition or MODIFY [COLUMN] create_definition or DROP [COLUMN] col_name or DROP PRIMARY KEY or DROP INDEX index_name or RENAME [AS] new_tbl_name or table_options
ALTER TABLE
��������һ�����б��Ľṹ�����磬��������ӻ�ɾ���С��������ȥ�������ı������е����͡������������л����������Ҳ�ܸı����ע�ͺͱ������͡���7.7 CREATE TABLE
�䷨��
�����ʹ��ALTER TABLE
��һ����˵������DESCRIBE
tbl_name
��ʾ����в�û�б��ģ��������MySQL��Ϊ��7.7.1 ��������˵���ı���������ԭ��֮һ������������ġ����磬�������ͼ��һ��VARCHAR
��ΪCHAR
��MySQL����Ȼʹ��VARCHAR
����������������䳤���С�
ALTER TABLE
ͨ������ԭ������һ����ʱ���������������ڸ�����ʩ�У�Ȼ��ԭ���ı���ɾ��������������һ���µġ�������ʹ�����е����Զ���ת���±���û���κ�ʧ�ܵ��ġ���ALTER
TABLE
����ִ��ʱ��ԭ�������ɱ������ͻ���ȡ�����º�д������ӳٵ��±�������Ϊֹ��
ALTER TABLE
������Ҫ�ڱ��ϵ�select��insert��delete��update��create��drop��Ȩ�ޡ�
IGNORE
��MySQL��ANSI SQL92
��һ�����䣬������±��е�Ψһ�������ظ���������ALTER TABLE
���������IGNORE
û��ָ�����������������һָ�ԭ״�����IGNORE
��ָ������ô��Ψһ�����ظ����У�ֻ��ʹ�õ�һ�У����౻ɾ����
ALTER TABLE
���������ADD
��ALTER
��DROP
��CHANGE
�Ӿ䡣����MySQL��ANSI
SQL92��һ�����䣬SQL92��ÿ��ALTER TABLE
�����ֻ����һ���Ӿ䡣
CHANGE col_name
��DROP col_name
��DROP INDEX
��MySQL��
ANSI SQL92 �����䡣 MODIFY
�� Oracle ��ALTER TABLE
�����䡣 COLUMN
��һ������������ҿ���ʡ�ԡ� ALTER TABLE tbl_name RENAME AS new_name
��û���κ�����ѡ�MySQL����������Ӧ�ڱ�tbl_name
���ļ���û�б�Ҫ������ʱ����
create_definition
�Ӿ�ʹ��CREATE TABLE
��ͬ��ADD
��CHANGE
���ע������������֣���ֻ�����͡���7.7 CREATE TABLE
�䷨�� CHANGE old_col_name create_definition
�Ӿ�������һ���С�Ϊ����������ָ���ɵĺ��µ������ֺ��е�ǰ�е����͡����磬������һ��INTEGER
����a
��b
���������������
mysql> ALTER TABLE t1 CHANGE a b INTEGER;
�������Ҫ�ı��е����Ͷ������֣�����������һ���ģ�CHANGE
���Ȼ��Ҫ2�����������磺
mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
Ȼ������MySQL3.22.16a����Ҳ����ʹ��MODIFY
���ı��е����Ͷ���������������
mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
CHANGE
��MODIFY
����һ���У�һ�����������ڸ��еIJ���(���磬�������һ��VARCHAR
�е�ͷ10���ַ�������)���㲻��ʹ�ж��ڱ��������ַ���Ŀ��
CHANGE
��MODIFY
�ı�һ��������ʱ��MySQL��������ͼ�ܺõر任���ݵ������͡�
FIRST
��ADD ...
AFTER col_name
��һ������������һ���ض���λ�������С�ȱʡ�����ӵ����һ�С�
ALTER COLUMN
Ϊ��ָ���µ�ȱʡֵ��ɾ���ϵ�ȱʡֵ������ϵ�ȱʡֵ��ɾ�����п�����NULL
����ȱʡֵ��NULL
����������NULL
��MySQL����һ��ȱʡֵ��ȱʡֵ��ֵ��7.7 CREATE TABLE
�䷨��������
DROP INDEX
ɾ��һ������������MySQL�� ANSI SQL92
��һ�����䡣 DROP PRIMARY KEY
������������������������������ڣ����������е�һ��UNIQUE
������(���û����ȷ��ָ��PRIMARY
KEY
��MySQL��ǵ�һ��UNIQUE
��ΪPRIMARY
KEY
����mysql_info()
�������ҳ����ټ�¼��������
��(��ʹ��IGNORE
ʱ)����Ψһ��ֵ���ظ����ټ�¼��ɾ���� FOREIGN KEY
��CHECK
��REFERENCES
�Ӿ�ʵ���ϲ����κ����飬���ǵľ䷨�����ṩ�����ԣ�ʹ�ø����ش�����SQL��������ֲ���벢�����н�����������������Ӧ�ó���5.4 MySQLȱ�ٵĹ����� ������һ�����ӣ���ʾ��һЩALTER TABLE
�÷���������һ�����´����ı�t1
��ʼ��
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
������������t1
��t2
:
mysql> ALTER TABLE t1 RENAME t2;
Ϊ�˸ı���a
����INTEGER
��ΪTINYINT NOT NULL
(����һ��)�����Ҹı���b
����CHAR(10)
��ΪCHAR(20)
��ͬʱ������������b
��Ϊc
��
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
����һ����TIMESTAMP
�У���Ϊd
��
mysql> ALTER TABLE t2 ADD d TIMESTAMP;
����d
������һ������������ʹ��a
������
mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
ɾ����c
��
mysql> ALTER TABLE t2 DROP COLUMN c;
����һ���µ�AUTO_INCREMENT
�����У�����Ϊc
��
mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c);
ע�⣬����������c
����ΪAUTO_INCREMENT
�����뱻����������������������c
ΪNOT
NULL
����Ϊ�����˵��в�����NULL
��
��������һ��AUTO_INCREMENT
��ʱ���Զ�����˳������������ֵ��
OPTIMIZE
TABLE
�䷨OPTIMIZE TABLE tbl_name
�����ɾ����һ�����Ĵֻ�������ñ䳤���ж�һ����(��VARCHAR
��BLOB
��TEXT
�еı�)���˸ı䣬Ӧ��ʹ��OPTIMZE
TABLE
��ɾ���ļ�¼��һ�����ӱ�ά�ֲ�������INSERT
�����ٴ�ʹ���ϼ�¼��λ�á������ʹ��OPTIMIZE
TABLE
�������õĿռ䡣
OPTIMIZE TABLE
ͨ������ԭ���ı���һ����ʱ�������������ϵı��ӱ��������±���(û�����õ���)��Ȼ��ԭ���ı���ɾ������������һ���µġ�������ʹ�����и����Զ�ת���µı���û���κ�ʧ�ܵĸ��¡���ʱOPTIMIZE
TABLE
����ִ��ʱ��ԭ���ı��ɱ�����Ŀͻ���ȡ���Ա��ĸ��º�д���ӳٵ��±�������Ϊֹ��
DROP TABLE
�䷨DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...]
DROP TABLE
ɾ��һ���������ݿ�������б��е����ݺͱ��������ɾ������С��ʹ��������
��MySQL 3.22���Ժ�汾�������ʹ�ùؼ���IF EXISTS
����ⲻ���ڱ���һ����������
DELETE
�䷨DELETE [LOW_PRIORITY] FROM tbl_name [WHERE where_definition] [LIMIT rows]
DELETE
��tbl_name
����ɾ��������where_definition
�������������У����ҷ���ɾ����¼�ĸ�����
����㷢��һ��û��WHERE
�Ӿ��DELETE
�������ж���ɾ����MySQLͨ������һ���ձ�����ɣ�����ɾ��ÿ��Ҫ�졣����������£�DELETE
��������Ϊ��Ӱ���¼����Ŀ��(MySQL���ܷ���ʵ���ϱ�ɾ������������Ϊ�����ٴ��������Ǵ������ļ���ֻҪ�������ļ���tbl_name.frm������Ч�ģ��������������ٴ�������ʹ���ݻ������ļ��ƻ���)��
�����ȷʵ��Ҫ֪����������ɾ��������ʱ�����ж��ټ�¼��ɾ��������Ը������ٶ��ϵijͷ��������������ʽ��һ��ELETE
��䣺
mysql> DELETE FROM tbl_name WHERE 1>0;
ע�����û��WHERE
�Ӿ��DELETE FROM tbl_name
���Ķ��ˣ���Ϊ��һ��ɾ��һ�С�
�����ָ���ؼ���LOW_PRIORITY
��DELETE
��ִ�б��Ƴٵ�û�������ͻ���ȡ����
ɾ���ļ�¼��һ�����ӱ�ά�ֲ�������INSERT
�����ٴ�ʹ���ϵļ�¼λ�á�Ϊ�˻������õĿռ䲢��С�ļ���С��ʹ��OPTIMIZE
TABLE
����myisamchk
ʵ�ó���������֯����OPTIMIZE
TABLE
�����ף�����myisamchk
���졣��7.9 OPTIMIZE TABLE
�䷨��13.4.3 ���Ż���
MySQL��DELETE
�ض���LIMIT rows
ѡ����߷������ڿ��Ʊ����ص��ͻ�֮ǰ����Ҫɾ������������������������֤һ���ض�DELETE
����Ứ̫���ʱ�䡣����Լ��ظ�DELETE
����ֱ����Ӱ�������С��LIMIT
ֵ��
SELECT
�䷨SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] [DISTINCT | DISTINCTROW | ALL] select_expression,... [INTO {OUTFILE | DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY col_name,...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] rows] [PROCEDURE procedure_name] ]
SELECT
������������һ���������о�ѡ���С�select_expression
ָ������Ҫ�������С�SELECT
Ҳ�������������������κα��ļ����С����磺
mysql> SELECT 1 + 1; -> 2
����ʹ�õĹؼ��ʱ��뾫ȷ���������˳����������磬һ��HAVING
�Ӿ�������GROUP
BY
�Ӿ�֮���ORDER BY
�Ӿ�֮ǰ��
SELECT
����ʽ������һ��AS
����һ����������������������ʽ������������ʹ����ORDER
BY
��HAVING
�Ӿ��С����磺 mysql> select concat(last_name,', ',first_name) AS full_name from mytable ORDER BY full_name;
FROM table_references
�Ӿ�ָ�����ĸ����м����С�����������������������ִ��һ������(join)����������ľ䷨��Ϣ����7.13 JOIN
�䷨�� col_name
��tbl_name.col_name
��db_name.tbl_name.col_name
���㲻����һ��SELECT
�����ָ��һ��tbl_name
��db_name.tbl_name
��һ�������õ�ǰ�����������ж����ԡ���7.1.5
���ݿ⡢�����������кͱ������������ڶ����Ե�����Ҫ�������ʽ�������ø�ʽ��
tbl_name [AS]
alias_name
��һ�������� mysql> select t1.name, t2.salary from employee AS t1, info AS t2 where t1.name = t2.name; mysql> select t1.name, t2.salary from employee t1, info t2 where t1.name = t2.name;
ORDER BY
��GROUP
BY
�Ӿ����ã���λ�ô�1��ʼ�� mysql> select college, region, seed from tournament ORDER BY region, seed; mysql> select college, region AS r, seed AS s from tournament ORDER BY r, s; mysql> select college, region, seed from tournament ORDER BY 2, 3;
Ϊ���Խ������У���DESC
���½� )�ؼ��ʼӵ�ORDER BY
�Ӿ�����Ҫ���������ǰ��ȱʡ��������Ҳ������ASC
�ؼ�����ȷָ����
HAVING
�Ӿ��������κ��л���select_expression
�������ı�������������ã�������Ŀ���͵��ͻ�֮ǰ��û���Ż�����Ҫ�������WHERE
�Ӿ��е���Ŀʹ��HAVING
�����磬����д��������
mysql> select col_name from tbl_name HAVING col_name > 0;
�෴д��������
mysql> select col_name from tbl_name WHERE col_name > 0;
��MySQL 3.22.5���Ժ���Ҳ������д��ѯ��
mysql> select user,max(salary) from users group by user HAVING max(salary)>10;
��������ϵ�MySQL�汾�У���������д��
mysql> select user,max(salary) AS sum from users group by user HAVING sum>10;
SQL_SMALL_RESULT
��SQL_BIG_RESULT
��STRAIGHT_JOIN
��HIGH_PRIORITY
��MySQL��ANSI
SQL92����չ�� STRAIGHT_JOIN
ǿ���Ż�����������FROM
�Ӿ�Ĵ�������(join)���ӡ�����Ż����Է���Ѵ��������������ʹ�������ٲ�ѯ����7.22 EXPLAIN
�䷨(�õ�����SELECT
����Ϣ)��
SQL_SMALL_RESULT
����GROUP BY
��DISTINCT
һ��ʹ�ø����Ż������������С������������£�MySQL��ʹ�ÿ�����ʱ���洢���յı�������ʹ������
SQL_SMALL_RESULT
��һ��MySQL��չ�� SQL_BIG_RESULT
����GROUP BY
��DISTINCT
һ��ʹ���Ը����Ż���������Ͻ��кܶ��С�����������£������Ҫ��MySQL��ֱ��ʹ�û��ڴ��̵���ʱ����
MySQL
����������½�ѡ����GROUP BY
��Ԫ�ϵļ�ֵ���������������һ����ʱ����
HIGH_PRIORITY
������SELECT
��һ�����±��������ߵ����ȼ�����Ӧ�ý��Էdz���IJ��ұ���һ����ɵIJ�ѯʹ������
�����Ϊ����������������һ���ȴ����ͷŵĸ�����䣬һ��SELECT
HIGH_PRIORITY
������ LIMIT
�Ӿ���Ա���������SELECT
��䷵�ص�������LIMIT
ȡ1����2�����ֲ������������2����������һ��ָ��Ҫ���صĵ�һ�е�ƫ�������ڶ���ָ�������е������Ŀ����ʼ�е�ƫ������0(����1)��
mysql> select * from table LIMIT 5,10; # Retrieve rows 6-15
�������һ����������ָ�������е������Ŀ��
mysql> select * from table LIMIT 5; # Retrieve first 5 rows
���仰˵��LIMIT n
�ȼ���LIMIT 0,n
��
SELECT ... INTO OUTFILE 'file_name'
��ʽ��SELECT
��佫ѡ�����д��һ���ļ����ļ��ڷ����������ϱ����������Ҳ������Ѿ����ڵ�(���ܱ�ģ������ֹ���ݿ�����ļ�������/etc/passwd�����ƻ�)���ڷ������������������fileȨ����ʹ������SELECT
��SELECT
... INTO OUTFILE
��LOAD DATA INFILE
�����������export_options
���ֵ��������LOAD
DATA INFILE
����е�FIELDS
��LINES
�Ӿ����ͬ����7.16 LOAD DATA INFILE
�䷨�������յ��ı��ļ��У�ֻ�������ַ���ESCAPED
BY
�ַ�ת�壺 ESCAPED BY
�ַ�FIELDS TERMINATED BY
�еĵ�һ���ַ�LINES TERMINATED BY
�еĵ�һ���ַ����⣬ASCII 0
���任��ESCAPED BY
���0(ASCII 48
)��������ԭ���������ת���κ�FIELDS
TERMINATED BY
��ESCAPED BY
��LINES TERMINATED BY
�ַ��Ա��ܿɿ����ܶ����ļ���ASCII
0
��ת��ʹ���������÷�ҳ���ۿ�����Ϊ���յ��ļ���������ѭSQL�䷨��û�б�Ķ�����Ҫת�塣
�����ʹ��INTO DUMPFILE
������INTO
OUTFILE
��MySQL��ֻдһ�е��ļ��У�û���κ��л��н�������û���κ�ת�塣�������Ҫ��һ���ļ��洢һ��blob�����Ǻ����õġ�
JOIN
�䷨MySQL֧����������SELECT
����JOIN
�䷨��
table_reference, table_reference table_reference [CROSS] JOIN table_reference table_reference INNER JOIN table_reference table_reference STRAIGHT_JOIN table_reference table_reference LEFT [OUTER] JOIN table_reference ON conditional_expr table_reference LEFT [OUTER] JOIN table_reference USING (column_list) table_reference NATURAL LEFT [OUTER] JOIN table_reference { oj table_reference LEFT OUTER JOIN table_reference ON conditional_expr }
��������LEFT OUTER JOIN
�ľ䷨ֻ��Ϊ����ODBC���ݶ����ڵġ�
tbl_name AS alias_name
��tbl_name
alias_name
����ı����� mysql> select t1.name, t2.salary from employee AS t1, info AS t2 where t1.name = t2.name;
INNER JOIN
��,
������)���������ǵȼ۵ģ����ǽ���һ����ʹ�õı�֮���ȫ���ᡣͨ������ָ����Ӧ�������WHERE
��������������
ON
�����ǿ�������һ��WHERE
�Ӿ���ʽ���κ�������
LEFT JOIN
��û���ұ���ƥ���¼��һ������������ΪNULL
���б������ұ��������ʹ�������ʵָ����������һ������û�ж�Ӧ��¼�ļ�¼��
mysql> select table1.* from table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id is NULL;
��������ҳ���table1
���������id
ֵ��table2
�в����ڣ���������table1
���table2
��û�ж�Ӧ�е���)����Ȼ��ٶ�table2.id
������ΪNOT
NULL
��
USING
(column_list)
�Ӿ�����һϵ�б���������������е��С�
����һ��USING
�Ӿ䣺 A LEFT JOIN B USING (C1,C2,C3,...)
��������������ϵ�ͬһ��������ON
����ʽ��
A.C1=B.C1 AND A.C2=B.C2 AND A.C3=B.C3,...
NATURAL LEFT JOIN
������Ϊ�������ϵ�ͬ��һ����USING
�Ӿ������������д��ڵ������е�һ��LEFT
JOIN
�� STRAIGHT_JOIN
��ͬ��JOIN
������������ұ�֮ǰ�����룬����������Щ����������Ż���������˳��Ŵ��ˡ�
һЩ���ӣ�
mysql> select * from table1,table2 where table1.id=table2.id; mysql> select * from table1 LEFT JOIN table2 ON table1.id=table2.id; mysql> select * from table1 LEFT JOIN table2 USING (id); mysql> select * from table1 LEFT JOIN table2 ON table1.id=table2.id LEFT JOIN table3 ON table2.id=table3.id;
��10.5.4 MySQL������LEFT
JOIN
��
INSERT
�䷨INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES (expression,...),(...),... �� INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... �� INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name SET col_name=expression, col_name=expression, ...
INSERT
�����в��뵽һ�����ڵı��У�INSERT ... VALUES
��ʽ����������ȷָ����ֵ�����У�INSERT
... SELECT
��ʽ�����������ѡ����У��ж��ֵ����INSERT ...
VALUES
����ʽ��MySQL 3.22.5���Ժ�汾��֧�֣�col_name=expression
���MySQL
3.22.10���Ժ�汾��֧�֡�
tbl_name
����Ӧ�ñ��������еı�����������SET
�Ӿ�ָ�����Ϊ��һ��ָ��ֵ��
INSERT ... VALUES
��INSERT ... SELECT
��ָ���б��������е�ֵ������VALUES()
������SELECT
�ṩ������㲻֪�������е�˳��ʹ��DESCRIBE
tbl_name
���ҳ��� CREATE TABLE
�䷨��������
expression
����������һ��ֵ����ǰ���õ��κ��С����磬����������
mysql> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
������������
mysql> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);
LOW_PRIORITY
��INSERT
��ִ�б��Ƴٵ�û�������ͻ����ڶ�ȡ��������������£��ͻ�����ȵ����������ɺ������Ƶ��ʹ�ã������ܻ��ܳ�ʱ�䡣����INSERT
DELAYED
�ÿ����ϼ��������෴�� INSERT
��ָ���ؼ���IGNORE
�������κθ���һ������PRIMARY
��UNIQUE
�����б����Բ��Ҳ������롣����㲻ָ��IGNORE
������������κθ������йؼ�ֵ���б������������C
API����mysql_info()
�������б����뵽���С� DONT_USE_DEFAULT_FIELDS
ѡ�����ã�INSERT
������һ������������ȷ����Ҫһ����NULL
ֵ��������ָ��ֵ����4.7.3 ����configure
ѡ����
INSERT INTO ... SELECT
����������������� ORDER BY
�Ӿ䡣 INSERT
����Ŀ�ı����ܳ�����SELECT
��ѯ���ֵ�FROM
�Ӿ䣬��Ϊ����ANSI
SQL�б���ֹ�ô������ڲ���ı���SELECT
����������SELECT
�����ܷ�����ͬһ�������ڼ�����ǰ������ļ�¼����ʹ����ѡ���Ӿ�ʱ������ܺ���������AUTO_INCREMENT
��������һ�������� �����ʹ��INSERT ... SELECT
��INSERT ...
VALUES
����ж��ֵ�б��������ʹ��C API����mysql_info()
�õ���ѯ����Ϣ����Ϣ�ַ����ĸ�ʽ���£�
Records: 100 Duplicates: 0 Warnings: 0
Duplicates
ָ�����ܱ�������е���������Ϊ���������е�Ψһ������ֵ�ظ���Warnings
ָ���ڳ���ijЩ����ʱ���Բ�����ֵ�Ĵ������������κ������¶����ܷ�������
NULL
����������NOT NULL
���У��б�����Ϊ����ȱʡֵ��
'10.34 a'
��ֵ����β����������ȥ����Ȼ�����ֲ��ֱ����롣���ֵ��������һ�����֣��б����õ�0
��
CHAR
��VARCHAR
��TEXT
��BLOB
���С�ֵ���ض�Ϊ�е���ȡ�
����INSERT
����DELAYED
ѡ����MySQLר����ѡ��-�����ͻ��в��ܵȵ�INSERT
��ɣ����Ǻ����õġ�����Ϊ�ռǵ�¼ʹ��MySQLʱ��������Ҳ�����Ե����л��ܳ�ʱ����ɵ�SELECT
��䣬����һ�����������⡣DELAYED
����MySQL
3.22.15�б����룬����MySQL�� ANSI SQL92 ��һ����չ��
����ʹ��INSERT DELAYED
ʱ���ͻ����������ã����ҵ��������κ��������߳�ʹ��ʱ���н������롣
��һ��ʹ��INSERT DELAYED
����Ҫ�ô��ǴӺܶ�ͻ����뱻������һ����д��һ���顣������ܶ���IJ���Ҫ���Ŀ졣
ע�⣬��ǰ�Ŷӵ���ֻ�Ǵ洢���ڴ��У�ֱ�����DZ����뵽���С�����ζ�ţ������ӲҪɱ��mysqld
(kill
-9
)�����mysqld
�������ϵ�������û��д�����̵��κ��Ŷӵ��б���ʧ��
������ϸ��������ΪINSERT
��REPLACE
ʹ��DELAYED
ѡ��ʱ������ʲô������������У����̡߳����յ�һ��INSERT
DELAYED
������̲߳��ҡ����������Ǵ������ж���һ���ض�����INSERT
DELAYED
��䡣
DELAYED
���ʱ����������������Ĵ�������һ���������̱߳������Դ������ڸñ�������DELAYED
��䡣
DELAYED
�������û�У������ߴ�������ȥ��á���ʹ�������߳����ڱ��ϵ�һ��READ
��WRITE
����Ҳ�ܻ��DELAYED
����Ȼ�����������ȴ�����ALTER
TABLE
����FLUSH TABLES
�Ա�֤���ṹ�����µġ� INSERT
��䣬�����ǽ���д������������һ�еĸ����Ž����������̹߳�����һ�����С��κ�������ܱ��̷߳�����������ͻ�����
AUTO_INCREMENT
ֵ�������ܴӷ�����������ǣ���ΪINSERT
�ڲ���������ǰ���ء������ʹ��C
API��ͬ��ԭ��mysql_info()
�����������κ�������Ķ����� delayed_insert_limit
�к���������Ƿ��κ�SELECT
�����Ȼ��δ��ɣ�����������ڼ���֮ǰ����ִ����Щ��䡣
delayed_insert_timeout
����û���յ��µ�INSERT
DELAYED
�����������ֹ�� delayed_queue_size
����һ���ض��Ĵ�����������δ������̵߳ȴ�ֱ�������пռ䡣�������ڱ�֤mysqld
���������ӳٵ��ڴ���в�ʹ�������ڴ档
Command
�е�MySQL���̱�����ʾdelayed_insert
�������ִ��һ��FLUSH
TABLES
�������KILL thread_id
ɱ������������ɱ����Ȼ���������˳�ǰ���Ƚ������Ŷӵ��д�����С������ڼ䣬����������������߳̽����κ��µ�INSERT
������������֮��ִ��һ��INSERT
DELAYED
��������һ���µĴ������̡߳� INSERT DELAYED
�������Ѿ����У�INSERT
DELAYED
���������INSERT
���ߵ����ȼ������������������ȵ�INSERT
DELAY
�Ŷӱ�ա�ɱ���������߳�(��KILL thread_id
)��ִ��FLUSH
TABLES
�� INSERT DELAYED
�������Ϣ�� Delayed_insert_threads |
�������߳����� |
Delayed_writes |
��INSERT DELAYED ��������� |
Not_flushed_delayed_rows |
�ȴ���д��������� |
����ͨ������һ��SHOW STATUS
����ͨ��ִ��һ��mysqladmin
extended-status
����쿴��Щ������
ע��������Ӳ���ʹ�ã�INSERT DELAYED
��һ��������INSERT
�����Է�����Ҳ�ж���������������ʹ��INSERT
DELAYED
��ÿ������һ�������̡߳�����ζ�ţ���Ӧ��ֻ����ȷʵ�϶���Ҫ����ʱ���ʹ��INSERT
DELAYED
��
REPLACE
�䷨REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [(col_name,...)] VALUES (expression,...) �� REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [(col_name,...)] SELECT ... �� REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name SET col_name=expression, col_name=expression,...
REPLACE
������INSERT
��ȫһ������������ڱ��е�һ���ϼ�¼������һ��Ψһ�����ϵ��¼�¼����ͬ��ֵ�����¼�¼������֮ǰ���ϼ�¼��ɾ������7.14 INSERT
�䷨��
LOAD DATA INFILE
�䷨LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY '\t'] [OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ]] [LINES TERMINATED BY '\n'] [IGNORE number LINES] [(col_name,...)]
LOAD DATA INFILE
����һ���ı��ļ����Ժܸߵ��ٶȶ���һ�����С����ָ��LOCAL
�ؼ��ʣ��ӿͻ��������ļ������LOCAL
ûָ�����ļ�����λ�ڷ������ϡ�(LOCAL
��MySQL3.22.6���Ժ�汾�п��á���
Ϊ�˰�ȫԭ����ȡλ�ڷ������ϵ��ı��ļ�ʱ���ļ����봦�����ݿ�Ŀ¼��ɱ������˶�ȡ�����⣬Ϊ�˶Է��������ļ�ʹ��LOAD
DATA INFILE
���ڷ������������������file��Ȩ�ޡ���6.5 ��MySQL�ṩ��Ȩ����
�����ָ���ؼ���LOW_PRIORITY
��LOAD DATA
����ִ�б��Ƴٵ�û�������ͻ���ȡ����
ʹ��LOCAL
�����÷�����ֱ�Ӵ�ȡ�ļ���Щ����Ϊ�ļ������ݱ���ӿͻ��������͵�����������������һ���棬�㲻��ҪfileȨ��װ�ر����ļ���
��Ҳ����ʹ��mysqlimport
ʵ�ó���װ�������ļ������ɷ���һ��LOAD
DATA INFILE
����������������� --local
ѡ��ʹ��mysqlimport
�ӿͻ������϶�ȡ���ݡ�����ͻ��ͷ�����֧��ѹ��Э�飬����ָ��--compress
�ڽ����������ϻ�ø��õ����ܡ�
���ڷ�����������Ѱ���ļ�ʱ��������ʹ�����й���
ע����Щ������ζ��һ������./myfile.txt���������ļ��Ǵӷ�����������Ŀ¼��ȡ������Ϊ��myfile.txt��������һ���ļ��Ǵӵ�ǰ���ݿ�����ݿ�Ŀ¼�¶�ȡ��ҲҪע�⣬����������Щ��䣬��db1
�ļ������ݿ�Ŀ¼��ȡ��������db2
��
mysql> USE db1; mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;
REPLACE
��IGNORE
�ؼ��ʿ��ƶ����е�Ψһ����¼���ظ��Ĵ����������ָ��REPLACE
�����н���������ͬ��Ψһ��ֵ�������С������ָ��IGNORE
��������Ψһ���������е��ظ��е����롣����㲻ָ���κ�һ��ѡ����ҵ��ظ�����ʱ������һ���������ı��ļ������²��ֱ�����ʱ��
�����ʹ��LOCAL
�ؼ��ʴ�һ�������ļ�װ�����ݣ�������û�а취�ڲ����ĵ���ֹͣ�ļ��Ĵ��䣬���ȱʡ����Ϊ����IGNORE
��ָ��һ����
LOAD DATA INFILE
��SELECT ... INTO OUTFILE
�����������7.12 SELECT
�䷨��Ϊ�˽�һ�����ݿ������д��һ���ļ���ʹ��SELECT
... INTO OUTFILE
��Ϊ�˽��ļ��������ݿ⣬ʹ��LOAD DATA INFILE
�����������FIELDS
��LINES
�Ӿ�������ͬ�ġ������Ӿ��ǿ�ѡ�ģ��������ָ��������FIELDS
������LINES
֮ǰ��
�����ָ��һ��FIELDS
�Ӿ䣬����ÿһ���Ӿ�(TERMINATED
BY
, [OPTIONALLY] ENCLOSED BY
��ESCAPED BY
)Ҳ�ǿ�ѡ�ģ��������������ָ������֮һ��
����㲻ָ��һ��FIELDS
�Ӿ䣬ȱʡֵ�����������д����ͬ��
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
����㲻ָ��һ��LINES
�Ӿ䣬ȱʡֵ�����������д����ͬ��
LINES TERMINATED BY '\n'
���仰˵��ȱʡֵ���¶�ȡ����ʱ��LOAD DATA INFILE
�������£�
�෴��ȱʡֵ������д�����ʱ��SELECT ... INTO OUTFILE
�������£�
ע�⣬Ϊ��д��FIELDS ESCAPED BY '\\'
������Ϊһ�������ķ�б�߱���ȡ��ֵ�������ָ��2����б��ֵ��
IGNORE number LINES
ѡ��ɱ������������ļ���ʼ��һ�������ֵ�ͷ��
mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
������LOAD DATA INFILE
һ��ʹ��SELECT ... INTO OUTFILE
��һ�����ݿ������д��һ���ļ�����������Ͻ��ļ��������ݿ�ʱ������������ֶκʹ���ѡ�����ƥ�䣬����LOAD
DATA INFILE
��������ȷ�����ļ������ݡ��ٶ���ʹ��SELECT ...
INTO OUTFILE
���ɶ��ŷָ����ֶ�д��һ���ļ���
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt' FIELDS TERMINATED BY ',' FROM ...
Ϊ�˽��ɶ��ŷָ����ļ�����������ȷ����佫�ǣ�
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ',';
�෴���������ͼ��������ʾ������ȡ�ļ��������Ṥ������Ϊ������LOAD
DATA INFILE
���ֶ�֮��Ѱ�Ҷ�λ����
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY '\t';
���ܵĽ����ÿ�������н�������Ϊ�������ֶΡ�
LOAD DATA INFILE
�ܱ�������ȡ���ⲿ��Դ��õ��ļ������磬��dBASE��ʽ���ļ������ɶ��ŷָ�����˫���Ű�Χ���ֶΡ�����ļ��е����ɻ��з���ֹ��������ʾ������˵���㽫����װ���ļ����ֶκ��д���ѡ�
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
�κ��ֶλ��д���ѡ�����ָ��һ�����ַ���(''
)��������ǿգ�FIELDS
[OPTIONALLY] ENCLOSED BY
��FIELDS ESCAPED BY
ֵ������һ�������ַ���FIELDS
TERMINATED BY
��LINES TERMINATED BY
ֵ�����dz���һ���ַ������磬д���ɻس����з��ԣ�CR+LF����ֹ���У����ȡ���������е�һ���ļ���ָ��һ��LINES
TERMINATED BY '\r\n'
�Ӿ䡣
FIELDS [OPTIONALLY] ENCLOSED BY
�����ֶεİ�Χ�ַ����������(SELECT
... INTO OUTFILE
)�������ʡ��OPTIONALLY
�����е��ֶ���ENCLOSED
BY
�ַ���Χ�����������������һ������(ʹ��һ��������Ϊ�ֶηָ���)��ʾ�����棺
"1","a string","100.20" "2","a string containing a , comma","102.20" "3","a string containing a \" quote","102.20" "4","a string containing a \", quote and comma","102.20"
�����ָ��OPTIONALLY
��ENCLOSED BY
�ַ��������ڰ�ΧCHAR
��VARCHAR
�ֶΣ�
1,"a string",100.20 2,"a string containing a , comma",102.20 3,"a string containing a \" quote",102.20 4,"a string containing a \", quote and comma",102.20
ע�⣬һ���ֶ�ֵ�е�ENCLOSED BY
�ַ��ij���ͨ����ESCAPED
BY
�ַ���Ϊ��ǰ��ת�塣ҲҪע�⣬�����ָ��һ����ESCAPED
BY
ֵ�����ܲ������ܱ�LOAD DATA INFILE
��ȷ��������������磬���ת���ַ�Ϊ�գ�������ʾ�������ʾ���¡�ע��ڵ����еĵڶ����ֶΰ����������ŵ�һ�����ţ���(�����)����Ҫ��ֹ�ֶΣ�
1,"a string",100.20 2,"a string containing a , comma",102.20 3,"a string containing a " quote",102.20 4,"a string containing a ", quote and comma",102.20
�������룬ENCLOSED BY
�ַ�������ڣ������ֶ�ֵ��β������ȥ���������Ƿ�ָ��OPTIONALLY
����������OPTIONALLY
����������Ͳ�������)��ENCLOSED
BY
�ַ����ȵ�ESCAPED BY
�ַ����ֱ�����Ϊ��ǰ�ֶ�ֵ��һ���֡����⣬�������ֶ����ظ���ENCLOSED
BY
����������ENCLOSED BY
�ַ�������ֶα����Ը��ַ���ʼ�����磬���ENCLOSED
BY '"'
��ָ�����������´�����
"The ""BIG"" boss" -> The "BIG" boss The "BIG" boss -> The "BIG" boss The ""BIG"" boss -> The ""BIG"" boss
FIELDS ESCAPED BY
�������д�����������ַ������FIELDS
ESCAPED BY
�ַ����ǿյģ���������ǰ������ϵ������ַ���
FIELDS ESCAPED BY
�ַ�FIELDS [OPTIONALLY] ENCLOSED BY
�ַ�FIELDS TERMINATED BY
��LINES TERMINATED BY
ֵ�ĵ�һ���ַ� 0
��ʵ���Ͻ�����ת���ַ�д�� ASCII'0'
��������һ����ֵ�ֽڣ����FIELDS ESCAPED BY
�ַ��ǿյģ�û���ַ���ת�塣ָ��һ����ת���ַ����ܲ���һ�������⣬�ر���������������е��ֶ�ֵ�����ղŸ����ı��е��κ��ַ���
�������룬���FIELDS ESCAPED BY
�ַ����ǿյģ����ַ��ij��ֱ���ȥ���Һ����ַ�����������Ϊ�ֶ�ֵ��һ�����֡�������һ��ת�����0������N��������\0
��\N
�����ת���ַ�����\��)����Щ���б�����ΪASCII
0
��һ����ֵ�ֽڣ���NULL
�����������NULL
��������
���ڸ��������\��- ת��䷨����Ϣ����7.1 ���֣�����д�ַ�����������
��ijЩ����£��ֶκ��д���ѡ������ã�
LINES TERMINATED BY
��һ�����ַ�������FIELDS TERMINATED
BY
�Ƿǿյģ���Ҳ��FIELDS TERMINATED BY
��ֹ�� FIELDS TERMINATED BY
��FIELDS ENCLOSED BY
ֵ���ǿյ�(''
)��һ���̶���(������)��ʽ��ʹ�á��ù̶��и�ʽ�����ֶ�֮�䲻ʹ�÷ָ������෴����ֵֻ���еġ���ʾ�����ȱ�д��Ͷ��������磬����б�����ΪINT(7)
���е�ֵʹ��7���ַ����ֶα�д�롣�������룬��ֵͨ����ȡ7���ַ���á��̶��и�ʽҲӰ��NULL
ֵ�Ĵ����������档ע�����������ʹ��һ�����ֽ��ַ������̶����ȸ�ʽ����������
NULL
ֵ�Ĵ����ж��֣�ȡ������ʹ�õ�FIELDS
��LINES
ѡ�
FIELDS
��LINES
ֵ���������NULL
���\N
�������룬\N
����ΪNULL
����(�ٶ�ESCAPED
BY
�ַ�����\��)�� FIELDS ENCLOSED BY
���ǿյģ����������ִʵ�NULL
��Ϊ����ֵ���ֶ���Ϊһ��NULL
ֵ������(�ⲻͬ�ڰ�Χ��FIELDS
ENCLOSED BY
�ַ��е���NULL
������Ϊ�ַ���'NULL'
����)��
FIELDS ESCAPED BY
�ǿյģ�NULL
����NULL
��д�롣
FIELDS TERMINATED BY
��FIELDS ENCLOSED
BY
���ǿյ�ʱ��)��NULL
��Ϊһ�����ַ�����д�롣ע�⣬��д���ļ�ʱ�����NULL
�Ϳ��ַ����ڱ��в������֣���Ϊ���Ƕ���Ϊ���ַ�����д�롣����ڶ����ļ�ʱ��Ҫ�����������ߣ���Ӧ�ò�ʹ�ù̶��и�ʽ��
һЩ����LOAD DATA INFILE
֧�ֵ������
FIELDS TERMINATED BY
��FIELDS ENCLOSED BY
����)��BLOB
��TEXT
�С�
LOAD
DATA INFILE
������ȷ�ؽ������롣���磬����FIELDS
�Ӿ佫�������⣺
FIELDS TERMINATED BY '"' ENCLOSED BY '"'
FIELDS ESCAPED BY
�ǿյģ�һ����������FIELDS
TERMINATED BY
ֵ֮���FIELDS ENCLOSED BY
��LINES TERMINATED
BY
���ֶ�ֵ��ʹ��LOAD DATA INFILE
�������ֹ��ȡһ���ֶλ��С�������ΪLOAD
DATA INFILE
������ȷ�ؾ����ֶλ���ֵ���Ķ������� ��������װ������persondata
������
mysql> LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata;
û��ָ���ֶα�������LOAD DATA INFILE
���������ж�ÿ�����а���һ���ֶΡ�ʹ��ȱʡFIELDS
��LINES
ֵ��
�����ϣ������װ��һ�ű���ijЩ�У�ָ��һ���ֶα���
mysql> LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
����������ļ��е��ֶ�˳��ͬ�ڱ����е�˳����Ҳ����ָ��һ���ֶα�������MySQL����֪�����ƥ�������ֶκͱ��е��С�
���һ�����к��ٵ��ֶΣ����ڲ����������ֶε��б�����Ϊȱʡֵ��ȱʡֵ��ֵ��7.7 CREATE TABLE
�䷨��������
����ֶ�ֵȱʡ�����ֶ�ֵ�в�ͬ�Ľ��ͣ�
0
�� �������һ��NULL
����(ֻ�Ե�һ��TIMESTAMP
��)��ָ��һ���ֶα�ʱ�����TIMESTAMP
�д��ֶα�ʡ����TIMESTAMP
��ֻ������Ϊ��ǰ�����ں�ʱ�䡣
�����������̫����ֶΣ�������ֶα����Բ��Ҿ������ּ�1��
LOAD DATA INFILE
��Ϊ���е��������ַ���������㲻����������INSERT
����ENUM
��SET
�еķ�ʽʹ������ֵ�����е�ENUM
��SET
ֵ������Ϊ�ַ�����ָ����
���������ʹ��C API����LOAD DATA INFILE
��ѯ���ʱ�����ͨ������API����mysql_info()
�õ��йز�ѯ����Ϣ����Ϣ�ַ����ĸ�ʽ��ʾ�����棺
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
��ֵͨ��INSERT
������ʱ����ijЩ����³��־���(��7.14 INSERT
�䷨)������������������̫�ٻ�̫����ֶ�ʱ��LOAD
DATA INFILE
Ҳ�������档����û���洢���κεط����������ֽ������ڱ���һ���Ƿ�˳���������õ����沢����Ҫȷ��֪����Ϊʲô�õ����ǣ�һ��������ʹ��SELECT
... INTO OUTFILE
������һ���ļ����Ұ��������ԭ�������ļ��Ƚϡ�
�����й�INSERT
���LOAD DATA INFILE
��Ч�ʺͼӿ�LOAD
DATA INFILE
�ĸ�����Ϣ����10.5.6
����INSERT
��ѯ��
��
UPDATE
�䷨UPDATE [LOW_PRIORITY] tbl_name SET col_name1=expr1,col_name2=expr2,... [WHERE where_definition] [LIMIT #]
UPDATE
����ֵ�����ִ�����е��У�SET
�Ӿ�ָ���ĸ���Ҫ�ĺ�����Ӧ�ñ�������ֵ��WHERE
�Ӿ䣬���������ָ���ĸ���Ӧ�ñ����£����������б����¡�
�����ָ���ؼ���LOW_PRIORITY
��ִ��UPDATE
���Ƴٵ�û�������ͻ����ڶ�ȡ��ʱ��
������һ������ʽ��tbl_name
��ȡ�У�UPDATE
ʹ���еĵ�ǰֵ�����磬�����������age
Ϊ���ĵ�ǰֵ��1��
mysql> UPDATE persondata SET age=age+1;
UPDATE
��ֵ�Ǵ����Ҽ��㡣���磬�����������age
�У�Ȼ���1��
mysql> UPDATE persondata SET age=age*2, age=age+1;
�����������Ϊ������ǰ�е�ֵ��MySQLע���㲢�Ҳ���������
UPDATE
����ʵ���ϱ��ı���е���������MySQL
3.22���Ժ�汾�У�C API����mysql_info()
���ر�ƥ�䲢�Ҹ��µ���������UPDATE
�ڼ䷢�������������
��MySQL3.23�У����ʹ��LIMIT #
����ֻ֤��һ�������������б��ı䡣
��
USE
�䷨USE db_name
USE db_name
������MySQLʹ��db_name
���ݿ���Ϊ���IJ�ѯ��ȱʡ���ݿ⡣���ݿⱣ�ֵ��Ự������������һ��USE
��䣺
mysql> USE db1; mysql> SELECT count(*) FROM mytable; # selects from db1.mytable mysql> USE db2; mysql> SELECT count(*) FROM mytable; # selects from db2.mytable
����USE
���ʹ��һ���ض������ݿ��Ϊ��ǰ���ݿⲢ����ֹ���������������ݿ��еı�����������ӷ���db1
���ݿ��е�author
����db2
���ݿ��е�editor
����
mysql> USE db1; mysql> SELECT author_name,editor_name FROM author,db2.editor WHERE author.editor_id = db2.editor.editor_id;
USE
����ṩ��Sybase�ļ����ԡ�
��
FLUSH
�䷨(������棩FLUSH flush_option [,flush_option]
�������Ҫ���һЩMySQLʹ���ڲ����棬��Ӧ��ʹ��FLUSH
���Ϊ��ִ��FLUSH
���������reloadȨ�ޡ�
flush_option
�����������κζ�����
HOSTS |
��������������������ijЩ�����ı�IP���֣��������õ�������ϢHost
... is blocked ����Ӧ���������������������MySQL������ʱ����һ̨�����������ж���max_connect_errors �������������ϵط�����MySQL�϶�ijЩ�������˲�����ֹ������һ������������������������������ٳ������ӡ���18.2.3 Host '...' is blocked ����)�������-O
max_connection_errors=999999999 ����mysqld ����������������Ϣ��
|
LOGS |
�رղ����ٴ����¼�¼�ļ��������ָ����һ��û����չ���ĸ��¼�¼�ļ����µĸ��¼�¼�ļ�����չ���ֽ������ǰ���ļ���1�� |
PRIVILEGES |
��mysql ���ݿ���Ȩ��������װ��Ȩ�ޡ� |
TABLES |
�ر����дı��� |
STATUS |
���ô����״̬������0�� |
��Ҳ������mysqladmin
ʵ�ó���ʹ��flush-hosts
, flush-logs
,
reload
��flush-tables
����������������ÿһ�����
��
KILL
�䷨KILL thread_id
ÿ����mysqld
��������һ���������߳����С�������ÿ�SHOW
PROCESSLIST
����쿴�ĸ��߳��������У�������KILL thread_id
����ɱ��һ���̡߳�
�������processȨ�ޣ����ܿ�������ɱ�������̡߳�������ֻ�ܿ�������ɱ�����Լ����̡߳�
��Ҳ����ʹ��mysqladmin processlist
��mysqladmin kill
�����鲢ɱ���̡߳�
SHOW
�䷨ (�õ������еȵ���Ϣ��SHOW DATABASES [LIKE wild] or SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM db_name] or SHOW STATUS or SHOW VARIABLES [LIKE wild] or SHOW [FULL] PROCESSLIST or SHOW TABLE STATUS [FROM db_name] [LIKE wild] or SHOW GRANTS FOR user
SHOW
�ṩ�������ݿ⡢���ӡ��л����������Ϣ�����ʹ��LIKE
wild
���֣�wild
�ַ���������һ��ʹ��SQL����%������_��ͨ������ַ�����
����ʹ��db_name.tbl_name
��Ϊtbl_name FROM db_name
�䷨����һ��ѡ���������������ȵģ�
mysql> SHOW INDEX FROM mytable FROM mydb; mysql> SHOW INDEX FROM mydb.mytable;
SHOW DATABASES
�г���MySQL�����������ϵ����ݿ⡣��Ҳ������mysqlshow
����õ����ű���
SHOW TABLES
�г���һ�����������ݿ��еı�����Ҳ������mysqlshow
db_name
����õ����ű���
ע�⣺���һ���û�û��һ�������κ�Ȩ�ޣ���������SHOW
TABLES
��mysqlshow db_name
�е��������ʾ��
SHOW COLUMNS
�г���һ���������е��С���������Ͳ�ͬ�����������ǻ���CREATE
TABLE
����������ע�⣬MySQL��ʱ�ı������͡���7.7.1 ��������˵���仯��
DESCRIBE
����ṩ������SHOW COLUMNS
����Ϣ����7.23 DESCRIBE
�䷨ (�õ��е���Ϣ����
SHOW TABLE STATUS
���ڰ汾3.23����)��������SHOW STATUS
�������ṩÿ�����ĸ�����Ϣ����Ҳ����ʹ��mysqlshow
--status db_name
����õ����ű���������б����أ�
�� | ���� |
Name |
���� |
Type |
�������� (ISAM��MyISAM��HEAP) |
Row_format |
�д洢��ʽ (�̶�, ��̬, ��ѹ���� |
Rows |
������ |
Avg_row_length |
ƽ���г��� |
Data_length |
������ij��� |
Max_data_length |
���������� |
Index_length |
������ij��� |
Data_free |
�ѷ��䵫δʹ�����ֽ��� |
Auto_increment |
��һ�� autoincrement(�Զ���1��ֵ |
Create_time |
���������ʱ�� |
Update_time |
�����ļ������µ�ʱ�� |
Check_time |
���Ա�����һ������ʱ�� |
Create_options |
��CREATE TABLE һ��ʹ�õĶ���ѡ�� |
Comment |
�������ʱ��ʹ�õ�ע�� (��ΪʲôMySQL���ܴ�ȡ����Ϣ��һЩ��Ϣ)�� |
SHOW FIELDS
��SHOW COLUMNS
һ��ͬ��ʣ�SHOW KEYS
��SHOW
INDEX
һ��ͬ��ʡ���Ҳ������mysqlshow db_name tbl_name
��mysqlshow
-k db_name tbl_name
�г�һ�ű����л�������
SHOW INDEX
�Էdz�������ODBC��SQLStatistics
���õĸ�ʽ����������Ϣ��������б����أ�
�� | ���� |
Table |
���� |
Non_unique |
0������������ܰ����ظ��� |
Key_name |
������ |
Seq_in_index |
�����е���˳���, �� 1 ��ʼ�� |
Column_name |
������ |
Collation |
�������������б�������MySQL�У��������ֵA ������)
��NULL ��������)�� |
Cardinality |
������Ψһֵ�����������ͨ������isamchk -a ����. |
Sub_part |
�����ֻ�Dz��ֱ������������ַ���������NULL �������������������
|
SHOW STATUS
�ṩ��������״̬��Ϣ(��mysqladmin
extended-status
һ��)������������������ʾ�����ܸ�ʽ�����ֿ����е㲻ͬ��
+--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Connections | 17 | | Created_tmp_tables | 0 | | Delayed_insert_threads | 0 | | Delayed_writes | 0 | | Delayed_errors | 0 | | Flush_commands | 2 | | Handler_delete | 2 | | Handler_read_first | 0 | | Handler_read_key | 1 | | Handler_read_next | 0 | | Handler_read_rnd | 35 | | Handler_update | 0 | | Handler_write | 2 | | Key_blocks_used | 0 | | Key_read_requests | 0 | | Key_reads | 0 | | Key_write_requests | 0 | | Key_writes | 0 | | Max_used_connections | 1 | | Not_flushed_key_blocks | 0 | | Not_flushed_delayed_rows | 0 | | Open_tables | 1 | | Open_files | 2 | | Open_streams | 0 | | Opened_tables | 11 | | Questions | 14 | | Slow_queries | 0 | | Threads_connected | 1 | | Threads_running | 1 | | Uptime | 149111 | +--------------------------+--------+
�����г���״̬���������к��壺
Aborted_clients |
���ڿͻ�û����ȷ�ر������Ѿ��������Ѿ����������������� |
Aborted_connects |
�����Ѿ�ʧ�ܵ�MySQL�����������ӵĴ����� |
Connections |
��ͼ����MySQL�������Ĵ����� |
Created_tmp_tables |
��ִ�����ʱ���Ѿ��������˵�������ʱ���������� |
Delayed_insert_threads |
����ʹ�õ��ӳٲ��봦�����̵߳������� |
Delayed_writes |
��INSERT DELAYED �������� |
Delayed_errors |
��INSERT DELAYED д��ķ���ijЩ����(�����ظ���ֵ )��������
|
Flush_commands |
ִ��FLUSH ����Ĵ����� |
Handler_delete |
�����һ�ű���ɾ���еĴ����� |
Handler_read_first |
���������е�һ�еĴ����� |
Handler_read_key |
�������ֻ��ڼ����С� |
Handler_read_next |
����������һ������һ�еĴ����� |
Handler_read_rnd |
����������һ���̶�λ�õ�һ�еĴ����� |
Handler_update |
������±���һ�еĴ����� |
Handler_write |
��������в���һ�еĴ����� |
Key_blocks_used |
���ڹؼ��ֻ���Ŀ�������� |
Key_read_requests |
����ӻ������һ����ֵ�Ĵ����� |
Key_reads |
�Ӵ�����������һ����ֵ�Ĵ����� |
Key_write_requests |
����һ���ؼ��ֿ�д�뻺������� |
Key_writes |
��һ����ֵ������д����̵Ĵ����� |
Max_used_connections |
ͬʱʹ�õ����ӵ������Ŀ�� |
Not_flushed_key_blocks |
�ڼ��������Ѿ��ı䵫�ǻ�û����յ������ϵļ��顣 |
Not_flushed_delayed_rows |
��INSERT DELAY �����еȴ�д����е������� |
Open_tables |
���������� |
Open_files |
����������� |
Open_streams |
����������(��Ҫ������־���أ� |
Opened_tables |
�Ѿ��ı��������� |
Questions |
�����������IJ�ѯ�������� |
Slow_queries |
Ҫ������long_query_time ʱ��IJ�ѯ������ |
Threads_connected |
��ǰ�����ӵ������� |
Threads_running |
����˯�ߵ��߳������� |
Uptime |
�����������˶����롣 |
���������һЩע�ͣ�
Opened_tables
̫����ô���table_cache
��������̫С��
key_reads
̫����ô���key_cache
����̫С�����������ʿ�����key_reads
/key_read_requests
���㡣
Handler_read_rnd
̫����ô��ܿ����д����IJ�ѯ��ҪMySQLɨ��������������û��ȷʹ�ü�ֵ������(join)��
SHOW VARIABLES
��ʾ��һЩMySQLϵͳ������ֵ����Ҳ��ʹ��mysqladmin
variables
����õ������Ϣ�����ȱʡֵ�����ʣ�������mysqld
����ʱʹ��������ѡ����������Щ�����Ĵ����������������������ʾ�����ܸ�ʽ�����ֿ����е㲻ͬ��
+------------------------+--------------------------+ | Variable_name | Value | +------------------------+--------------------------+ | back_log | 5 | | connect_timeout | 5 | | basedir | /my/monty/ | | datadir | /my/monty/data/ | | delayed_insert_limit | 100 | | delayed_insert_timeout | 300 | | delayed_queue_size | 1000 | | join_buffer_size | 131072 | | flush_time | 0 | | interactive_timeout | 28800 | | key_buffer_size | 1048540 | | language | /my/monty/share/english/ | | log | OFF | | log_update | OFF | | long_query_time | 10 | | low_priority_updates | OFF | | max_allowed_packet | 1048576 | | max_connections | 100 | | max_connect_errors | 10 | | max_delayed_threads | 20 | | max_heap_table_size | 16777216 | | max_join_size | 4294967295 | | max_sort_length | 1024 | | max_tmp_tables | 32 | | net_buffer_length | 16384 | | port | 3306 | | protocol-version | 10 | | record_buffer | 131072 | | skip_locking | ON | | socket | /tmp/mysql.sock | | sort_buffer | 2097116 | | table_cache | 64 | | thread_stack | 131072 | | tmp_table_size | 1048576 | | tmpdir | /machine/tmp/ | | version | 3.23.0-alpha-debug | | wait_timeout | 28800 | +------------------------+--------------------------+
SHOW PROCESSLIST
��ʾ�ĸ��߳��������У���Ҳ��ʹ��mysqladmin
processlist
����õ������Ϣ���������processȨ�ޣ�
���ܿ������е��̣߳���������ܿ������Լ����̡߳���7.20 KILL
�䷨������㲻ʹ��FULL
ѡ���ôÿ����ѯֻ��ͷ100�ַ�����ʾ������
SHOW GRANTS FOR user
�г���һ���û����뷢�����ظ���Ȩ����Ȩ���
mysql> SHOW GRANTS FOR root@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root''localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+
EXPLAIN
�䷨(�õ�����SELECT
����Ϣ)EXPLAIN tbl_name or EXPLAIN SELECT select_options
EXPLAIN tbl_name
��DESCRIBE tbl_name
��SHOW COLUMNS
FROM tbl_name
��һ��ͬ��ʡ�
������һ��SELECT
���ǰ���Ϲؼ���EXPLAIN
��MySQL������������SELECT
���ṩ�йر�����������ʲô�����������Ϣ��
������EXPLAIN
�������֪����ʲôʱ�����Ϊ�����������Եõ�һ��ʹ�������ҵ���¼�ĸ����SELECT
����Ҳ��֪���Ż����Ƿ���һ����Ѵ����������Ϊ��ǿ���Ż�����һ��SELECT
���ʹ��һ���ض������������һ��STRAIGHT_JOIN
�Ӿ䡣
���ڷǼ����ᣬEXPLAIN
����SELECT
����е�ÿ��������һ����Ϣ���������ǽ��������˳���г���MySQL��һ��ɨ��������ķ�ʽ����������ᣬ����ζ��MySQL�ӵ�һ�����ж�һ�У�Ȼ���ҵ��ڵڶ������е�һ��ƥ���У�Ȼ���ڵ�3�����еȵȡ������еı��������꣬�����ѡ����в��һ��ݱ��б�ֱ���ҵ�һ�����и����ƥ���У��Ӹñ�������һ�в�����������һ������
��EXPLAIN
���������������
table
type
possible_keys
possible_keys
��ָ��MySQL��ʹ���ĸ������ڸñ����ҵ��С�ע�⣬������ȫ�����ڱ��Ĵ�������ζ����possible_keys�е�ijЩ��ʵ���ϲ��������ɵı�����ʹ�á���������ǿյģ�û����ص�����������������£���Ҳ����ͨ������WHERE
�Ӿ俴�Ƿ�������ijЩ�л��в����ʺ������������IJ�ѯ���ܡ����������������һ���ʵ���������������EXPLAIN
����ѯ����7.8 ALTER TABLE
�䷨��Ϊ�˿���һ�ű���ʲô������ʹ��SHOW
INDEX FROM tbl_name
�� key
key
����ʾMySQLʵ�ʾ���ʹ�õļ������û��������ѡ����NULL
��
key_len
key_len
����ʾMySQL����ʹ�õļ����ȡ��������NULL
��������NULL
��ע�����������MySQL��ʵ��ʹ��һ���ಿ��ֵ�ļ������֡�
ref
ref
����ʾ�ĸ��л�����key
һ�����ڴӱ���ѡ���С�
rows
rows
����ʾMySQL���������������ִ�в�ѯ��������
Extra
Extra
�������Only index
������ζ����Ϣֻ���������е���Ϣ�������ġ�ͨ�������ɨ��������Ҫ�졣���Extra
�������where
used
������ζ��һ��WHERE
�Ӿ佫������������Щ������һ����ƥ�����ͻ���
��ͬ�����������������棬����õ�������͵Ĵ���
system
const
�������͵�һ�������� const
const
���ܿ죬��Ϊ����ֻ��ȡһ�Σ� eq_ref
const
���͡�������һ�����������в��ֱ�����ʹ�ò���������UNIQUE
��PRIMARY
KEY
�� ref
UNIQUE
��PRIMARY
KEY
�����仰˵���������ܻ��ڼ�ֵѡ���еĻ�)��ʹ��ref
�������ʹ�õļ�����ƥ��һЩ�У������������Dz����ġ�
range
ref
����ʾ�ĸ�������ʹ�á�
index
ALL
��ͬ������ֻ����������ɨ�衣��ͨ����ALL
�죬��Ϊ�����ļ�ͨ���������ļ�С��
ALL
const
�ı�����ͨ�����ã�����ͨ�������е���������������ͨ������ͨ�����Ӹ��������������ALL
��ʹ�����ܴ����ȵı��л��ڳ���ֵ����ֵ����������
ͨ�����EXPLAIN
�����rows
�е�����ֵ�����ܵõ�һ������һ������Ҫ��õ���ʾ����Ӧ�ô��Եظ�����MySQL��������������ִ�в�ѯ������ʹ��max_join_size
�������Ʋ�ѯʱ��Ҳ��������֡���10.2.3 ���ڷ�����������
����������ʾ��һ��JOIN
�����ʹ��EXPLAIN
�ṩ����Ϣ���Ż���
�ٶ�������ʾ�������SELECT
��䣬��ʹ��EXPLAIN
���飺
EXPLAIN SELECT tt.TicketNumber, tt.TimeIn, tt.ProjectReference, tt.EstimatedShipDate, tt.ActualShipDate, tt.ClientID, tt.ServiceCodes, tt.RepetitiveID, tt.CurrentProcess, tt.CurrentDPPerson, tt.RecordVolume, tt.DPPrinted, et.COUNTRY, et_1.COUNTRY, do.CUSTNAME FROM tt, et, et AS et_1, do WHERE tt.SubmitTime IS NULL AND tt.ActualPC = et.EMPLOYID AND tt.AssignedPC = et_1.EMPLOYID AND tt.ClientID = do.CUSTNMBR;
����������ӣ��ٶ���
�� | �� | ������ |
tt |
ActualPC |
CHAR(10) |
tt |
AssignedPC |
CHAR(10) |
tt |
ClientID |
CHAR(10) |
et |
EMPLOYID |
CHAR(15) |
do |
CUSTNMBR |
CHAR(15) |
�� | ���� |
tt |
ActualPC |
tt |
AssignedPC |
tt |
ClientID |
et |
EMPLOYID �������� |
do |
CUSTNMBR �������� |
tt.ActualPC
ֵ���Ǿ��ȷֲ��ġ� ��ʼ�����κ��Ż���ʩ��ǰ��EXPLAIN
������������Ϣ��
table type possible_keys key key_len ref rows Extra et ALL PRIMARY NULL NULL NULL 74 do ALL PRIMARY NULL NULL NULL 2135 et_1 ALL PRIMARY NULL NULL NULL 74 tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872 range checked for each record (key map: 35)
��Ϊtype
��ÿ�ű���ALL
����������ʾMySQL���ڶ����б�����һ���������ᣡ�⽫���൱����ʱ�䣬��Ϊ�������ÿ�ű��������ij˻�����������һ��ʵ��������74
* 2135 * 74 * 3872 = 45,268,558,720
�С������������ֻ�������������ʱ�䡭��
�����������ͬ�������һ��������MySQL(��)���ܸ�Ч��������ʹ���������ڱ����У�VARCHAR
��CHAR
����ͬ�ģ�������������Ϊ��ͬ�ij��ȡ���Ϊtt.ActualPC
������ΪCHAR(10)
����et.EMPLOYID
������ΪCHAR(15)
����һ������ʧ�䡣
Ϊ���������г����ϵIJ�ͬ��ʹ��ALTER TABLE
��ActualPC
�ij��ȴ�10���ַ���Ϊ15���ַ���
mysql> ALTER TABLE tt MODIFY ActualPC VARCHAR(15);
����tt.ActualPC
��et.EMPLOYID
����VARCHAR(15)
����ִ��EXPLAIN
��������������
table type possible_keys key key_len ref rows Extra tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872 where used do ALL PRIMARY NULL NULL NULL 2135 range checked for each record (key map: 1) et_1 ALL PRIMARY NULL NULL NULL 74 range checked for each record (key map: 1) et eq_ref PRIMARY PRIMARY 15 tt.ActualPC 1
�ⲻ�������ģ������Ǻ�һЩ��(rows
ֵ�ij˻�����һ��74һ������)������汾�ڼ�����ִ�С�
��2�ָı�������tt.AssignedPC = et_1.EMPLOYID
��tt.ClientID =
do.CUSTNMBR
�Ƚϵ��еij���ʧ�䣺
mysql> ALTER TABLE tt MODIFY AssignedPC VARCHAR(15), MODIFY ClientID VARCHAR(15);
����EXPLAIN
�����������ʾ�����棺
table type possible_keys key key_len ref rows Extra et ALL PRIMARY NULL NULL NULL 74 tt ref AssignedPC,ClientID,ActualPC ActualPC 15 et.EMPLOYID 52 where used et_1 eq_ref PRIMARY PRIMARY 15 tt.AssignedPC 1 do eq_ref PRIMARY PRIMARY 15 tt.ClientID 1
�⡰�����������ܵõ���һ���á�
ʣ�µ������ǣ�ȱʡ�أ�MySQL������tt.ActualPC
�е�ֵ�Ǿ��ȷֲ��ģ����Ҷ�tt
�������������Һã���������MySQL������Щ��
shell> myisamchk --analyze PATH_TO_MYSQL_DATABASE/tt shell> mysqladmin refresh
���������ǡ����������ˣ�����EXPLAIN
������������
table type possible_keys key key_len ref rows Extra tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872 where used et eq_ref PRIMARY PRIMARY 15 tt.ActualPC 1 et_1 eq_ref PRIMARY PRIMARY 15 tt.AssignedPC 1 do eq_ref PRIMARY PRIMARY 15 tt.ClientID 1
ע���ڴ�EXPLAIN
�����rows
����һ������MySQL�����Ż����ġ������²⡱��Ϊ���Ż���ѯ����Ӧ�ü�������Ƿ�ӽ���ʵ��������ǣ������ͨ�������SELECT
�������ʹ��STRAIGHT_JOIN
������������FROM
�Ӿ��Բ�ͬ�Ĵ����г��������ܵõ����õ����ܡ�
��
DESCRIBE
�䷨ (�õ��е���Ϣ��{DESCRIBE | DESC} tbl_name {col_name | wild}
DESCRIBE
�ṩ����һ�ű����е���Ϣ��col_name
������һ�������ֻ����SQL����%������_��ͨ�����һ���ַ�����
��������Ͳ�ͬ�����������ǻ���һ��CREATE TABLE
��䣬ע��MySQL��ʱ�ı������͡���7.7.1 ��������˵���仯��
SHOW
����ṩ���Ƶ���Ϣ����7.21
SHOW
�䷨(�õ������е���Ϣ)��
��
LOCK TABLES/UNLOCK
TABLES
�䷨LOCK TABLES tbl_name [AS alias] {READ | [LOW_PRIORITY] WRITE} [, tbl_name {READ | [LOW_PRIORITY] WRITE} ...] ... UNLOCK TABLES
LOCK TABLES
Ϊ��ǰ�߳���������UNLOCK TABLES
�ͷű���ǰ�̳߳��е��κ��������̷߳�������һ��LOCK
TABLES
ʱ�������������ӱ��ر�ʱ����ǰ�߳����������б��Զ���������
���һ���̻߳����һ�����ϵ�һ��READ
�������߳�(�����������߳�)ֻ�ܴӱ��ж������һ���̻߳��һ�����ϵ�һ��WRITE
������ôֻ�г������߳�READ
��WRITE
���������̱߳���ֹ��
ÿ���̵߳ȴ�(û�г�ʱ)ֱ����������������������
WRITE
��ͨ����READ
���и��ߵ����ȼ�����ȷ�����ľ��챻����������ζ�ţ����һ���̻߳��READ
��������Ȼ������һ���߳�����һ��WRITE
��,
����READ
�����ȴ�ֱ��WRITE
�̵߳õ����������ͷ����������߳����ڵȴ�WRITE
��ʱ�������ʹ��LOW_PRIORITY
WRITE
���������̻߳��READ
���������϶������и�ʱ��û���߳̽���һ��READ
������Ӧ��ֻʹ��LOW_PRIORITY
WRITE
��
����ʹ��LOCK TABLES
ʱ������������㽫ʹ�õ����б������������һ����ѯ�ж��ʹ��һ�ű�(�ñ���)��������ÿ�������õ�һ�������������߱�֤����������������
ע����Ӧ���������κ���������INSERT DELAYED
ʹ�õı���������Ϊ����������£�INSERT
��һ����ͬ���߳�ִ�С�
ͨ�����㲻������������Ϊ���е���UPDATE
�����ԭ�û�������߳��ܷ����κ���������ִ��SQL�����̡߳�����������������һЩ�����
READ
�����ı�����û�������߳��ܶ�һ��WRITE
-�����ı���
SELECT
��һ��UPDATE
֮��û�������̵߳����������ʹ��LOCK
TABLES
��������ʾ������Ҫ��LOCK TABLES
�Ա㰲ȫ��ִ�У�
mysql> LOCK TABLES trans READ, customer WRITE; mysql> select sum(value) from trans where customer_id= some_id; mysql> update customer set total_value=sum_from_previous_statement where customer_id=some_id; mysql> UNLOCK TABLES;
û��LOCK TABLES
������һ���߳̿�����һ��������ִ��SELECT
��UPDATE
���֮����trans
���в���һ�����С�
ͨ��ʹ�ý�������(UPDATE customer SET value=value+new_value
)��LAST_INSERT_ID()
�������ںܶ����������ʹ��LOCK
TABLES
�����⡣
��Ҳ����ʹ���û�����������GET_LOCK()
��RELEASE_LOCK()
���һЩ�������Щ�������ڷ�������һ�Ź�ϣ���в�����pthread_mutex_lock()
��pthread_mutex_unlock()
ʵ���Ի�ø��ٶȡ���7.4.12 ����������
�й��������ߵĸ�����Ϣ����10.2.8 MySQL ������������
SET OPTION
�䷨SET [OPTION] SQL_VALUE_OPTION= value, ...
SET OPTION
����Ӱ�����������Ŀͻ������ĸ���ѡ������õ��κ�ѡ����Чֱ����ǰ�Ự��������ֱ��������ѡ��Ϊ��ͬ��ֵ��
CHARACTER SET character_set_name | DEFAULT
character_set_name
��ǰΨһ��ѡ����
cp1251_koi8
��������������ͨ���༭��MySQLԴ����ַ��ġ�sql/convert.cc���ļ������µ�ӳ�䡣ȱʡӳ������character_set_name
��DEFAULT
ֵ�ָ���ע������CHARACTER
SET
ѡ������ͬ����������ѡ��Ŀ����� PASSWORD = PASSWORD('some password')
PASSWORD FOR user = PASSWORD('some password')
mysql
���ݿ���û��������������û�Ӧ����user@hostname
��ʽ����������user
��hostname
��ȫ����������mysql.user
����Ŀ��User
��Host
��һ�������磬�������һ����Ŀ��User
��Host
�ֶ���'bob'
��'%.loc.gov'
���㽫д�ɣ�
mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("newpass"); �� mysql> UPDATE mysql.user SET password=PASSWORD("newpass") where user="bob' and host="%.loc.gov";
SQL_AUTO_IS_NULL = 0 | 1
1
��ȱʡ )����ô����һ������һ���Զ���1���еı��������й������ҳ���������У�WHERE
auto_increment_column IS NULL
���ⱻһЩ ODBC ������Accessʹ�á� SQL_BIG_TABLES = 0 | 1
1
��������ʱ�������ڴ����϶����ڴ��С��⽫����һЩ�����Ƕ���Ҫ�����ʱ���Ĵ�SELECT
�������㽫����õ�The
table tbl_name is full
�Ĵ�����һ�������ӵ�ȱʡֵ��0
������ʹ���ڴ��е���ʱ��)��
SQL_BIG_SELECTS = 0 | 1
0
�����һ��SELECT
���Կ��ܻ��ܳ���ʱ�䣬MySQL������������һ��������WHERE
��䷢��ʱ�����õġ�һ����IJ�ѯ������Ϊһ�������ܱ���������max_join_size
�е�SELECT
����һ�������ӵ�ȱʡֵ��1
��������������SELECT
���)��
SQL_LOW_PRIORITY_UPDATES = 0 | 1
1
������INSERT
��UPDATE
��DELETE
��LOCK
TABLE WRITE
���ȴ���ֱ������Ӱ��ı���û��δ�����SELECT
��LOCK
TABLE READ
�� SQL_SELECT_LIMIT = value | DEFAULT
SELECT
��䷵�صļ�¼��������������һ��SELECT
��һ��LIMIT
�Ӿ䣬LIMIT
������SQL_SELECT_LIMIT
ֵ����һ�������ӵ�ȱʡֵ�ǡ����ޡ��ġ������ı������ƣ�ȱʡֵ����SQL_SELECT_LIMIT
��һ��DEFAULT
ֵ�ָ���
SQL_LOG_OFF = 0 | 1
1
������ͻ���processȨ�ޣ��Ըÿͻ�û����־���ص�������־�ļ��С��ⲻӰ�������־��¼��
SQL_LOG_UPDATE = 0 | 1
0
, ����ͻ���processȨ�ޣ��Ըÿͻ�û����־���ص�������־�С��ⲻӰ�����־�ļ���
TIMESTAMP = timestamp_value | DEFAULT
LAST_INSERT_ID = #
LAST_INSERT_ID()
���ص�ֵ�������ڸ���һ������������ʹ��LAST_INSERT_ID()
ʱ�����洢�ڸ�����־�С�
INSERT_ID = #
AUTO_INCREMENT
ֵʱ����INSERT
����ʹ�õ�ֵ������Ҫ�������־һ��ʹ�á�
GRANT
��REVOKE
�䷨GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} TO user_name [IDENTIFIED BY 'password'] [, user_name [IDENTIFIED BY 'password'] ...] [WITH GRANT OPTION] REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name.*} FROM user_name [, user_name ...]
GRANT
��MySQL 3.22.11���Ժ�汾��ʵ�֡����ڸ���MySQL�汾��GRANT
��䲻���κ����顣
GRANT
��REVOKE
��������ϵͳ������4��Ȩ��������Ȩ�ͳ��ظ���MySQL�û���Ȩ����
mysql.user
����
mysql.db
��mysql.host
����
mysql.tables_priv
����
mysql.columns_priv
����
����GRANT
��ι��������ӣ���6.11 ΪMySQL�����µ��û�Ȩ����
����GRANT
��REVOKE
��䣬priv_type
����ָ�����е��κ�һ����
ALL PRIVILEGES FILE RELOAD ALTER INDEX SELECT CREATE INSERT SHUTDOWN DELETE PROCESS UPDATE DROP REFERENCES USAGE
ALL
��ALL PRIVILEGES
��һ��ͬ��ʣ�REFERENCES
��û��ʵ�֣�USAGE
��ǰ�ǡ�û��Ȩ�ޡ���һ��ͬ��ʡ�������������Ҫ����һ��û��Ȩ���û���ʱ��
Ϊ�˴�һ���û�����grant��Ȩ�ޣ�ʹ��GRANT OPTION
��һ��priv_type
ֵ��
REVOKE GRANT OPTION ON ... FROM ...;
���ڱ�������ָ����Ψһpriv_type
ֵ��SELECT
��INSERT
��UPDATE
��DELETE
��CREATE
��DROP
��GRANT
��INDEX
��ALTER
��
�����У�����ָ����Ψһpriv_type
ֵ��(��������ʹ��һ��column_list
�Ӿ�ʱ)��SELECT
��INSERT
��UPDATE
��
����ͨ��ʹ��ON *.*
�����ȫ��Ȩ�ޣ�����ͨ��ʹ��ON
db_name.*
��������ݿ�Ȩ�ޡ������ָ��ON *
��������һ����ǰ���ݿ⣬�㽫Ϊ�����ݿ�����Ȩ�ޡ�(���棺�����ָ��ON
*
����û��һ����ǰ���ݿ⣬�㽫Ӱ��ȫ��Ȩ�ޣ���
Ϊ�����ɶ������������û������Ȩ����MySQL֧����user@host
��ʽָ��user_name
ֵ���������Ҫָ��һ�������ַ���һ��user
�ַ���(������-��)����һ�����������ַ���ͨ�����host
�ַ���(������%��)��������������������û�����������
(���磬'test-user'@'test-hostname'
)��
��������������ָ��ͨ��������磬user@"%.loc.gov"
��������loc.gov
�����������user
������user@"144.155.166.%"
��������144.155.166
��
C �������������user
��
����ʽ��user
��user@"%"
��һ��ͬ��ʡ�ע�⣺��������������û�����MySQL������(����ȱʡ��)����ҲӦ���������б����û���user@localhost
����Ϊ�����û���ͼ�ӱ��ػ����ϵ�¼��MySQL������ʱ������mysql.user
���еı��������������û���Ŀ����ʹ�ã������û�ͨ��������User=''
����Ŀ��mysql.user
���������塣ͨ��ִ�������ѯ������Լ������Ƿ��������㣺
mysql> SELECT Host,User FROM mysql.user WHERE User='';
Ŀǰ��GRANT
��֧���60���ַ����������������ݿ��������һ���û���������ൽ16���ַ���
����һ�������е�Ȩ������4��Ȩ����������γɵġ����磬���mysql.user
��ָ��һ���û���һ��ȫ��selectȨ�ޣ������ܱ����ݿ⡢�����е�һ����Ŀ���ϡ�
����һ���е�Ȩ�������¼��㣺
global privileges OR (database privileges AND host privileges) OR table privileges OR column privileges
�ڴ��������£���ֻ�����û�һ��Ȩ�����ϵ�Ȩ�ޣ������ʵͨ������������˵���������ӡ�:) Ȩ�����̵�ϸ����6 MySQL ��ȡȨ��ϵͳ�и�����
�����Ϊһ����mysql.user
���в����ڵ��û�/�����������Ȩ��һ����Ŀ�����Ӳ��ұ���ֱ����һ��DELETE
����ɾ�������仰˵��GRANT
���Դ���user
������Ŀ������REVOKE
����ɾ�����������ȷ��ʹ��DELETE
ɾ��.
��MySQL 3.22.12���Ժ��������һ�����û����������ȫ������Ȩ�ޣ��û��Ŀ��������Ϊ��IDENTIFIED
BY
�Ӿ�ָ���Ŀ���������һ��������û��Ѿ�����һ���������һ���µĴ��档
���棺����㴴��һ�����û����Dz�ָ��һ��IDENTIFIED
BY
�Ӿ䣬�û�û�п�����Dz���ȫ�ġ�
����Ҳ����SET PASSWORD
���������7.25 SET OPTION
�䷨��
�����Ϊһ�����ݿ���Ȩ�������Ҫ��mysql.db
���д���һ����Ŀ��������Ϊ���ݿ����Ȩ��REVOKE
ɾ��ʱ�������Ŀ��ɾ����
���һ���û�û����һ�����ϵ��κ�Ȩ�ޣ����û�����һϵ�б�ʱ����������ʾ(���磬��һ��SHOW
TABLES
���)��
WITH GRANT OPTION
�Ӿ�����û������������û���ָ����Ȩ��ˮƽ�ϵ��κ�Ȩ����������Ӧ�ý����Դ���������grantȨ���û�����Ϊ���в�ͬȨ�������û�Ҳ���ܺϲ�Ȩ�ޣ�
�㲻�����������û����Լ����߱���Ȩ�ޣ� agreeȨ����������������ӵ�е���ЩȨ�ޡ�
Ҫ֪�������㽫һ���ض�Ȩ�����ϵ�grant���������û����û��Ѿ�ӵ��(����δ�������裡)���ڸü����ϵ��κ�Ȩ��Ҳ���ɸ��û���Ȩ���ٶ�����Ȩһ���û���һ�����ݿ��ϵ�insertȨ�ޣ���ô�������Ȩ�����ݿ���selectȨ����ָ��WITH
GRANT OPTION
���û��ܲ�������selectȨ�ޣ�����insert���������Ȩ�û������ݿ��ϵ�updateȨ�ޣ��û��ܷ���insert��select��update��
�㲻Ӧ�ý�alterȨ������һ��һ���û�����������������û�����ͨ������������ͼ�߸�Ȩ��ϵͳ��
ע�⣬���������ʹ�ü�ʹһ���û��ı����е�Ȩ�ޣ�������Ҫ��������û��ı�����Ȩ�����⽫ʹMySQL������һ�㡣
��mysqld
����ʱ�����е�Ȩ�ޱ�����洢�������ݿ⡢������Ȩ��������Ч�����û���Ȩ������һ���û�����ʱ��Ч������GRANT
��REVOKE
����Ȩ��ִ�еĸ���������������֪����������ֹ�����Ȩ��(ʹ��INSERT
��UPDATE�ȵ�)����Ӧ��ִ��һ��FLUSH
PRIVILEGES
��������mysqladmin flush-privileges
���߷������ٴ�װ����Ȩ������6.9 Ȩ�ޱ仯��ʱ��Ч��
ANSI SQL�汾��GRANT
��MySQL�汾֮��������
REVOKE
��������MySQL��Ȩ��������
��
��CREATE INDEX
�䷨CREATE [UNIQUE] INDEX index_name ON tbl_name (col_name[(length)],... )
CREATE INDEX
�����MySQL�汾 3.22
��ǰ�����κ����顣�� 3.22 ���Ժ�汾�У�CREATE INDEX
��ӳ�䵽һ��ALTER
TABLE
�����������������7.8
ALTER TABLE
�䷨��
ͨ����������CREATE TABLE
����������ʱ��������������������7.7 CREATE TABLE
�䷨��CREATE
INDEX
������������ӵ����б��С�
һ��(col1,col2,...)
��ʽ���б�����һ����������������ֵ�и����е�ֵ�������ɡ�
����CHAR
��VARCHAR
�У���������ֻ��һ���еIJ�����������ʹ��col_name(length)
�䷨������BLOB
��TEXT
������Ҫ����)��������ʾ�����ʹ��name
�е�ͷ10���ַ�����һ��������
mysql> CREATE INDEX part_of_name ON customer (name(10));
��Ϊ���������ͨ����ͷ10���ַ���ͬ���������Ӧ�ò��ȴ�����name
�еĴ��������������١����⣬������ʹ�ò��ֵ�����ʹ���������Ϊ��С���ļ���, ���ܱ���ܶ���̿ո��ҿ���Ҳ�ӿ�INSERT
������
ע�⣬���������ʹ��MySQL�汾 3.23.2
����²�������ʹ��MyISAM
�������ͣ���ֻ���ڿ�����NULL
ֵ���л�һ��BLOB
/TEXT
��������һ��������
����MySQL���ʹ�������ĸ�����Ϣ����10.4 MySQL������ʹ����
��
DROP INDEX
�䷨DROP INDEX index_name ON tbl_name
DROP INDEX
��tbl_name
��������Ϊindex_name
��������DROP
INDEX
��MySQL 3.22 ��ǰ�İ汾�в����κ����顣�� 3.22
���Ժ�DROP INDEX
��ӳ�䵽һ��ALTER TABLE
�����������������7.8 ALTER TABLE
�䷨��
MySQL������֧��# to end of line
��-- to end of
line
��/* in-line or multiple-line */
ע�ͷ��
mysql> select 1+1; # This comment continues to the end of line mysql> select 1+1; -- This comment continues to the end of line mysql> select 1 /* this is an in-line comment */ + 1; mysql> select 1+ /* this is a multiple-line comment */ 1;
ע��--
ע�ͷ��Ҫ������--
�Ժ�������һ���ո�
���ܷ���������ղ�������ע�;䷨��mysql
�ͻ�����/*
... */
ע�͵ķ�ʽ����һЩ���ƣ�
mysql
�����ܸ�֪��Щ���ң���Ϊ��ʾ����mysql>
��Ϊ'>
��">
��
���㽻��ʽ����mysql
ʱ�͵�����������һ���ļ��в���mysql
< some-file
����mysql
���Ǹ��ļ�����������ʱ����Щ���ƶ����á�
MySQL��֧����--����ANSI SQLע�ͷ��5.4.7 ��--����Ϊһƪע�͵Ŀ�ʼ��
��
CREATE
FUNCTION/DROP FUNCTION
�䷨CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|REAL|INTEGER} SONAME shared_library_name DROP FUNCTION function_name
һ���û��ɶ��庯��(UDF)����һ����MySQL��ԭ�������ã�������ABS()
��CONCAT()
���º�������չMySQL�ķ�����
AGGREGATE
��MySQL 3.23��һ����ѡ�һ��AGGREGATE
�������ܾ���һ��ԭ��MySQL
GROUP
������SUM
��COUNT()
��
CREATE FUNCTION
��mysql.func
ϵͳ���б��溯���������ͺ���������������mysql
���ݿ���insert��deleteȨ���Դ���������������
���л�Ծ�ĺ�����ÿ�η���������ʱ������װ�أ�������ʹ��--skip-grant-tables
ѡ������mysqld
������������£�UDF��ʼ������������UDF������õġ���һ����Ծ������һ���Ѿ���CREATE
FUNCTION
װ�ز���û��DROP FUNCTION
ɾ���ĺ�����)
���ڱ�д�û��ɶ��庯����ָ���14 ΪMySQL�����º���������UDF�Ĺ������ƣ�����������
C �� C++
��д����IJ���ϵͳ����֧�ֶ�̬װ�ز�������붯̬������mysqld
(���Ǿ�̬)��
��
һ������������Դ������ͼʹ��MySQL���õ��������ͻ�����ͬ���������������ݿ��������TIMESTAMP
��GROUP
��������������(���磬ABS
��һ������������)�����ǵ�ʹ��������Ҳ�������ĺ���ʱ����һ������������
( ��֮�䲻�����ա�
���д���ȷ����MySQL�б����������ǵĴ������ ANSI
SQL92 ��ֹ��Ϊ�л����(���磬group
)��һЩ��������ΪMySQL��Ҫ���Dz�������(��ǰ)ʹ��һ��yacc
��������
action |
add |
aggregate |
all |
alter |
after |
and |
as |
asc |
avg |
avg_row_length |
auto_increment |
between |
bigint |
bit |
binary |
blob |
bool |
both |
by |
cascade |
case |
char |
character |
change |
check |
checksum |
column |
columns |
comment |
constraint |
create |
cross |
current_date |
current_time |
current_timestamp |
data |
database |
databases |
date |
datetime |
day |
day_hour |
day_minute |
day_second |
dayofmonth |
dayofweek |
dayofyear |
dec |
decimal |
default |
delayed |
delay_key_write |
delete |
desc |
describe |
distinct |
distinctrow |
double |
drop |
end |
else |
escape |
escaped |
enclosed |
enum |
explain |
exists |
fields |
file |
first |
float |
float4 |
float8 |
flush |
foreign |
from |
for |
full |
function |
global |
grant |
grants |
group |
having |
heap |
high_priority |
hour |
hour_minute |
hour_second |
hosts |
identified |
ignore |
in |
index |
infile |
inner |
insert |
insert_id |
int |
integer |
interval |
int1 |
int2 |
int3 |
int4 |
int8 |
into |
if |
is |
isam |
join |
key |
keys |
kill |
last_insert_id |
leading |
left |
length |
like |
lines |
limit |
load |
local |
lock |
logs |
long |
longblob |
longtext |
low_priority |
max |
max_rows |
match |
mediumblob |
mediumtext |
mediumint |
middleint |
min_rows |
minute |
minute_second |
modify |
month |
monthname |
myisam |
natural |
numeric |
no |
not |
null |
on |
optimize |
option |
optionally |
or |
order |
outer |
outfile |
pack_keys |
partial |
password |
precision |
primary |
procedure |
process |
processlist |
privileges |
read |
real |
references |
reload |
regexp |
rename |
replace |
restrict |
returns |
revoke |
rlike |
row |
rows |
second |
select |
set |
show |
shutdown |
smallint |
soname |
sql_big_tables |
sql_big_selects |
sql_low_priority_updates |
sql_log_off |
sql_log_update |
sql_select_limit |
sql_small_result |
sql_big_result |
sql_warnings |
straight_join |
starting |
status |
string |
table |
tables |
temporary |
terminated |
text |
then |
time |
timestamp |
tinyblob |
tinytext |
tinyint |
trailing |
to |
type |
use |
using |
unique |
unlock |
unsigned |
update |
usage |
values |
varchar |
variables |
varying |
varbinary |
with |
write |
when |
where |
year |
year_month |
zerofill |
���з���(�����ϱ�)��ANSI SQL��ֹ���DZ�MySQL������Ϊ��/������������Ϊ��Щ���ֵ�һЩ�Ǻ���Ȼ�����ֲ��Һܶ����Ѿ�ʹ�������ǡ�
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP