基本操作

  1. 启动/重启/停止服务 service mysql start/restart/stop /etc/init.d/mysqld start/restart/stop

基本概念

外键

在表A上建立一个指向表B外键,如将A.field1作为外键,指向B.id

此时,表A称为referencing table, 表B称为master table 或 referenced table

在B中记录更新或删除时,可以选择一下A中外键field1更新的策略:

  1. 级联 Cascade: 当删除(更新)B中记录i时,级联删除(更新)A中外键指向i的记录

  2. 限制 Restricted: 当删除(更新)B中记录i时,如果A中u存在外键指向i的记录,则不允许删除i

  3. 设空 SetNull: 当删除(更新)B中记录i是,将A中外键指向i的记录的field1设为空

  4. 无操作 No Action:类似与限制策略,‘very much alike’ >The main difference between NO ACTION and RESTRICT is that with NO ACTION the referential integrity check is done after trying to alter the table. RESTRICT does the check before trying to execute the UPDATE or DELETE statement. Both referential actions act the same if the referential integrity check fails: the UPDATE or DELETE statement will result in an error.

See more

设置字符集

查看字符集 SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

修改成utf8mb4

ALTER DATABASE readweibo CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; # For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # (Don’t blindly copy-paste this! The exact statement depends on the column type, maximum length, and other properties.  #The above line is just an example for a `VARCHAR` column.) 

参考这里

输出到文件

  1. select … into outfile …

    select * from control_pagos into outfile ‘c:\data.csv’ FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”’ LINES TERMINATED BY ‘\n’;

正则

  1. select … regexp …

    select link from rss_news where link REGEXP ‘http://tvfantasy.net/.{10}/newsletter’

日期相关

  1. 日期比较,直接比较字符串

    select id from rss_news where delegate is null and pubDate <= ‘2013-02-17 17:53:52’ order by pubDate;

域类型

mysql中int字段的长度设置是11,挺奇怪的,今天查了一下,原来这个长度是10进制下的最大‘显示长度’,内部存储还是4个字节 http://dev.mysql.com/doc/refman/5.0/en/integer-types.html

<TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP><TR VALIGN=TOP>
Type
Use for
Size
TINYINT
A very small integer
The signed range is 128 to 127. The unsigned range is 0 to 255.
SMALLINT
A small integer
The signed range is 32768 to 32767. The unsigned range is 0 to 65535
MEDIUMINT
A medium-size integer
The signed range is 8388608 to 8388607. The unsigned range is 0 to 16777215
INT or INTEGER
A normal-size integer
The signed range is 2147483648 to 2147483647. The unsigned range is 0 to 4294967295
BIGINT
A large integer
The signed range is 9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615
FLOAT
A small (single-precision) floating-point number. Cannot be unsigned
Ranges are 3.402823466E+38 to 1.175494351E-38, 0 and 1.175494351E-38 to 3.402823466E+38. If the number of Decimals is not set or <= 24 it is a single-precision floating point number
DOUBLE,
DOUBLE PRECISION,
REAL
A normal-size (double-precision) floating-point number. Cannot be unsigned
Ranges are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0 and 2.2250738585072014E-308 to 1.7976931348623157E+308. If the number of Decimals is not set or 25 <= Decimals <= 53 stands for a double-precision floating point number
DECIMAL,
NUMERIC
An unpacked floating-point number. Cannot be unsigned
Behaves like a CHAR column: unpacked means the number is stored as a string, using one character for each digit of the value. The decimal point, and, for negative numbers, the - sign is not counted in Length. If Decimals is 0, values will have no decimal point or fractional part. The maximum range of DECIMAL values is the same as for DOUBLE, but the actual range for a given DECIMAL column may be constrained by the choice of Length and Decimals. If Decimals is left out its set to 0. If Length is left out its set to 10. Note that in MySQL 3.22 the Length includes the sign and the decimal point
DATE
A date
The supported range is 1000-01-01 to 9999-12-31. MySQL displays DATE values in YYYY-MM-DD format
DATETIME
A date and time combination
The supported range is 1000-01-01 00:00:00 to 9999-12-31 23:59:59. MySQL displays DATETIME values in YYYY-MM-DD HH:MM:SS format
TIMESTAMP
A timestamp
The range is 1970-01-01 00:00:00 to sometime in the year 2037. MySQL displays TIMESTAMP values in YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD or YYMMDD format, depending on whether M is 14 (or missing), 12, 8 or 6, but allows you to assign values to TIMESTAMP columns using either strings or numbers. A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation because it is automatically set to the date and time of the most recent operation if you dont give it a value yourself
TIME
A time
The range is -838:59:59 to 838:59:59. MySQL displays TIME values in HH:MM:SS format, but allows you to assign values to TIME columns using either strings or numbers
YEAR
A year in 2- or 4- digit formats (default is 4-digit)
The allowable values are 1901 to 2155, and 0000 in the 4 year format and 1970-2069 if you use the 2 digit format (70-69). MySQL displays YEAR values in YYYY format, but allows you to assign values to YEAR columns using either strings or numbers. (The YEAR type is new in MySQL 3.22.)
CHAR
A fixed-length string that is always right-padded with spaces to the specified length when stored
The range of Length is 1 to 255 characters. Trailing spaces are removed when the value is retrieved. CHAR values are sorted and compared in case-insensitive fashion according to the default character set unless the BINARY keyword is given
VARCHAR
A variable-length string. Note: Trailing spaces are removed when the value is stored (this differs from the ANSI SQL specification)
The range of Length is 1 to 255 characters. VARCHAR values are sorted and compared in case-insensitive fashion unless the BINARY keyword is given
TINYBLOB,
TINYTEXT

A BLOB or TEXT column with a maximum length of 255 (2^8 - 1) characters
BLOB,
TEXT

A BLOB or TEXT column with a maximum length of 65535 (2^16 - 1) characters
MEDIUMBLOB,
MEDIUMTEXT

A BLOB or TEXT column with a maximum length of 16777215 (2^24 - 1) characters
LONGBLOB,
LONGTEXT

A BLOB or TEXT column with a maximum length of 4294967295 (2^32 - 1) characters
ENUM
An enumeration
A string object that can have only one value, chosen from the list of values value1, value2, ..., or NULL. An ENUM can have a maximum of 65535 distinct values.
SET
A set
A string object that can have zero or more values, each of which must be chosen from the list of values value1, value2, ... A SET can have a maximum of 64 members

TOP