建库
查询数据库
show databases;
查询当前数据库:
select database();
创建数据库
create database [ if not exists ] 数据库名;
使用数据库
use 数据库名 ;
删除数据库
drop database [ if exists ] 数据库名 ;
单表设计
create table 表名(
字段1 字段1类型 [约束] [comment 字段1注释 ],
字段2 字段2类型 [约束] [comment 字段2注释 ],
......
字段n 字段n类型 [约束] [comment 字段n注释 ]
) [ comment 表注释 ] ;
注意: [ ] 中的内容为可选参数; 最后一个字段后面没有逗号
数据类型
数值类型
约束 |
描述 |
关键字 |
非空约束 |
限制该字段值不能为null |
not null |
唯一约束 |
保证字段的所有数据都是唯一、不重复的 |
unique |
主键约束 |
主键是一行数据的唯一标识,要求非空且唯一 |
primary key |
默认约束 |
保存数据时,如果未指定该字段值,则采用默认值 |
default |
外键约束 |
让两张表的数据建立连接,保证数据的一致性和完整性 |
foreign key |
字符串类型
类型 |
大小 |
有符号(SIGNED)范围 |
无符号(UNSIGNED)范围 |
描述 |
TINYINT |
1byte |
(-128,127) |
(0,255) |
小整数值 |
SMALLINT |
2bytes |
(-32768,32767) |
(0,65535) |
大整数值 |
MEDIUMINT |
3bytes |
(-8388608,8388607) |
(0,16777215) |
大整数值 |
INT/INTEGER |
4bytes |
(-2147483648,2147483647) |
(0,4294967295) |
大整数值 |
BIGINT |
8bytes |
(-263,263-1) |
(0,2^64-1) |
极大整数值 |
FLOAT |
4bytes |
(-3.402823466 E+38,3.402823466351 E+38) |
0 和 (1.175494351 E-38,3.402823466 E+38) |
单精度浮点数值 |
DOUBLE |
8bytes |
(-1.7976931348623157 E+308,1.7976931348623157 E+308) |
0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) |
双精度浮点数值 |
DECIMAL |
|
依赖于M(精度)和D(标度)的值 |
依赖于M(精度)和D(标度)的值 |
小数值(精确定点数) |
日期时间类型
类型 |
大小 |
范围 |
格式 |
描述 |
DATE |
3 |
1000-01-01 至 9999-12-31 |
YYYY-MM-DD |
日期值 |
TIME |
3 |
-838:59:59 至 838:59:59 |
HH:MM:SS |
时间值或持续时间 |
YEAR |
1 |
1901 至 2155 |
YYYY |
年份值 |
DATETIME |
8 |
1000-01-01 00:00:00 至 9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
混合日期和时间值 |
TIMESTAMP |
4 |
1970-01-01 00:00:01 至 2038-01-19 03:14:07 |
YYYY-MM-DD HH:MM:SS |
混合日期和时间值,时间戳 |
使用SQL创建表:
create table emp (
id int unsigned primary key auto_increment comment 'ID',
username varchar(20) not null unique comment '用户名',
pas