SQL语言,又称结构化查询语言,其下分为DDL数据定义语言,DML数据操作语言,DQL数据查询语言,DCL数据控制语言.。
数据类型
整数型:
数据类型 | 存储范围 | 字节 |
TINYINT | 有符号值:-128 到127(-到-1) 无符号值:0到255(0到-1) | 1 |
SMALLINT | 有符号值:-32768到32767(-到-1) 无符号值:0到65535(0到-1) | 2 |
MEDIUMINT | 有符号值:-8388608到8388607(-到-1) 无符号值:0到16777215(0到-1) | 3 |
INT | 有符号值:-2147683648到2147683647(-到-1) 无符号值:0到4294967295(0到-1) | 4 |
BIGINT | 有符号值:-9223372036854775808到9223372036854775807(-到-1) 无符号值:0到18446766073709551615(0到-1) | 8 |
BOOL,BOOLEAM | 等价于TINYINT(1),0为false,其余为true | 1 |
浮点数,定点数:
数据类型 | 说明 | 存储范围 | 字节 |
FLOAT[(M,D)] | 单精度 | 负数取值范围为-3.40E+38到-1.17E-38 、0 和 1.175E-38到3.40E+38 M是数字总2位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度,精确到小数点后大约7位。 | 4 |
DOUBLE[(M,D)] | 双精度 | -1.79E+308到-2.22E-308、0和 2.22E-308到1.79E+308 | 8 |
DECIMAL[(M,D)] | 定点数 | 和DOUBLE一样,内部以字符串形式存储值 | M+2 |
字符串类型:
列类型 | 存储需求 |
CHAR(M) | M个字节,0<=M<=255 |
VARCHAR(M) | L+1个字节,其中L<=M且0<=M<=65535 |
TINYTEXT | L+1个字节,其中L< |
TEXT | L+2个字节,其中L< |
MEDIUMTEXT | L+3个字节,其中L< |
LONGTEXT | L+4个字节,其中L< |
ENUM{'value1','value2',......} (枚举) | 1或2个字节,取决于枚举值的个数(最多65535个值) |
SET{'value1','value2',......} (列表) | 1、2、3、4或者8个字节,取决于set成员的数目(对多64个成员) |
日期时间类型:
列类型 | 说明 | 字节 |
TIME | 15:26:59 (hh:mm:ss) | 3 |
DATE | 2021-01-01(YYYY-MM-DD) | 3 |
DATETIME | 2021-01-01 15:26:59 (YYYY-MM-DD hh:mm:ss) | 8 |
TIMESTAMP | 时间戳 1970-01-01 00:00:01 UTC | 4 |
YEAR | 2100(YYYY) | 1 |
关键字:
代码 | 说明 |
AUTO_INCREMENT | 自动编号 自动增长 |
PRIMARY KEY | 设为主键 |
UNIQUE KEY | 内容为唯一,不可重复 |
UNSIGNED | 无符号 |
ZEROFILL | 零填充,当数据显示长度不够的时候可以使用前补0的效果填充至指定长度 |
NOT NULL | 非空 必须给值 |
DEFAULT | 默认值 |
FOREIGN KEY | 外键 |
COMMENT | 注释 |
功能函数:
以下中[]是可以省略的内容。
函数 | 功能说明 | 例子 |
CREATE{DATABASE|SCHEMA} db_name; | 创建数据库 | CREATE DATABASE test1; |
CREATE DATABASE [IF NOT EXISTS] db_name | 检测数据库名称是否存在,不存在则创建 | CREATE DATABASE IF NOT EXISTS test; |
CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=]charset; | 创建数据库的同时指定编码方式 | CREATE DATABASE IF NOT EXISTS test3 DEFAULT CHARACTER SET 'UTF8' |
CREATE TABLE [IF NOT EXISTS] tbl_name( 字段名称 字段类型 [完整性约束条件], 字段名称 字段类型 [完整性约束条件, ........... )ENGINE=存储引擎 CHARSET=编码方式 | 创建表,及其相关属性 | |
SHOW DATABASE|SCHEMA; | 查询当前全部数据库 | SHOW DATABASE; |
SHOW WARNINGS; | 查询上一轮产生的警告信息 | SHOW WARNINGS; |
SHOW CREATE DATABASE db_name | 查看数据库的编码方式 | SHOW CREATE DATABASE test1; |
SHOW TABLES; | 查看当前数据库下已有的数据表 | SHOW TABLES |
SHOW CREATE TABLE tbl_name; | 查看指定数据表的详细信息 | SHOW CREATE TABLE user; |
DESC tbl_name; DESCRIBE tbl_name; SHOW COLLUMNS FOM tbl_name; | 查看表结构 | DESC user; |
SHOW [FULL] TABLES [{FROM | IN }db_name] [LIKE 'pattern' | WHERE expe] | 查看数据库下已有的数据表 | SHOW FULL TABLES FROM test; |
ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=]charset; | 修改指定数据库的编码方式 | ALTER DATABASE test DEFAULT CHARACTER SET 'UTF-8'; |
USE db_name | 打开数据库 | USER test; |
SELECT DATABASE() | SCHEMA() | 得到当前开打的数据库 | SELECT DATABASE(); |
DROP DATABASE db_name; | 删除指定数据库 | DROP DATABASE test; |
DROP DATABASE [IF EXISTS] db_name; | 如果数据库存在则删除 | DROP DATABASE IF EXISTS test; |
DOOP TABLE [IF EXISTS] tbl_name; | 删除指定的数据表 | DOOP TABLE IF EXISTS user; |
INSERT tbl_name(key,...) VALUES (values,...) | 插入数据 | INSERT tbl_name(a,b) VALUES (1,2) |
SELECT * FROM tbl_name | 查询表内所有数据 | SELECT * FROM user; |