标签:语句 01 数据库 bytes student DDL table 主键
DDL语句
1、常见组成
2、数据库操作
- 数据库创建
- create database 数据库名 charset utf8;
- 查看数据库
- show databases;
- show create database db;
- select database();
- 选择数据库
- 删除数据库
- 修改数据库
- alter database db1 charset utf8;
3、数据类型
3.1数值类型
类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
TINYINT |
1 Bytes |
(-128,127) |
(0,255) |
小整数值 |
SMALLINT |
2 Bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
MEDIUMINT |
3 Bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
INT或INTEGER |
4 Bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
BIGINT |
8 Bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
FLOAT |
4 Bytes |
(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) |
0,(1.175 494 351 E-38,3.402 823 466 E+38) |
单精度 浮点数值 |
DOUBLE |
8 Bytes |
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
双精度 浮点数值 |
DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 |
3.2日期和时间类型
类型 |
大小 ( bytes) |
范围 |
格式 |
用途 |
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' UTC 到 '2038-01-19 03:14:07' UTC结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYY-MM-DD hh:mm:ss |
混合日期和时间值,时间戳 |
3.3字符串类型
类型 |
大小 |
用途 |
CHAR |
0-255 bytes |
定长字符串 |
VARCHAR |
0-65535 bytes |
变长字符串 |
TINYBLOB |
0-255 bytes |
不超过 255 个字符的二进制字符串 |
TINYTEXT |
0-255 bytes |
短文本字符串 |
BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
TEXT |
0-65 535 bytes |
长文本数据 |
MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
4、数据表创建
create table t_student(
sno int,
sname varchar(40),
gender char(1),
birthday date,
schooltime date,
major varchar(255),
department varchar(255),
createtime timestamp
)
5、数据表修改
-- 根据查询语句创建表
create table student as select * from t_student;
-- 添加一列修改时间(默认今天日期)
alter table student add updatetime datetime default now();
-- 删除一列
alter table student drop column createtime;
-- 修改一列
alter table student modify sname varchar(20);
-- 修改列名
alter table student rename column birthday to birth;
-- 修改表名
rename table student to t_s;
-- 删除表
drop table t_s;
6、表的约束
6.1定义
约束,指对插入数据时插入的数据的约束
6.2主键约束
- 主键值必须唯一标识表中的每一行,且不能为NULL,即表中不可能存在相同主键值的两行数据
- 主键分为单字段主键和多字段联合主键
- 联合主键不能包含不必要的多余字段。当把联合主键的某一字段删除后。如果剩下的字段构成的主键仍然满足唯一性原则,那么这个联合主键是不正确的,这是最小化原则
- primary key
- auto_increment(自动递增)
6.3唯一性约束
6.4非空约束
6.5外键约束
- 定义外键时,需要遵守下列规则
- 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
- 必须为主表定义主键
- 主键不能包含空值null,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
- 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键(唯一性)。
- 外键中列的数目必须和主表的主键中列的数目相同
- 外键中列的数据类型必须和主表中对应列的数据类型相同。
- 外键的删除
- 级联删除
- 设置为null
- 阻止删除
- 删除主表数据的时候,要保证这个id没有被字表所使用
- foreign key
标签:语句,
01,
数据库,
bytes,
student,
DDL,
table,
主键
From: https://www.cnblogs.com/dimension0116/p/17464015.html