第五章:数据表基本操作
创建学生表:
创建一个学生表,但是没有放数据进去。
CREATE table student01( -- 建立一个学生表
id int (11), -- 序号
name VARCHAR(4), -- 名字
birth date, -- 生日
sex enum('男','女'), -- 性别
address varchar(5), -- 家庭住址
age TINYINT (4), -- 年龄
hobby SET ('篮球','羽毛球','足球','排球','桌球'), -- set多个存储链接
photo LONGBLOB, -- 照片存储
spend DECIMAL(8,2), -- 生活费
info VARCHAR (1000) -- 个人简介
);
创建商品表:
创建一个商品表
主键约束:主键约束不能为空,int,(设置了主键,该条数据就必须要有内容);(简单理解主键特点:非空性,唯一性)
当记录一个主键约束后,id int (11) primary key ,用了后面的主键约束,就不会出现相同的id名。
就像身份证一样永远只有一个id,是唯一的。
id int (11) PRIMARY KEY,-- P K 设置id为主键排序
非空约束填写:notnull,type(数据不能为空)
type VARCHAR(30) NOT NULL,--N N 该组type数据不能为空,非空
唯一性约束:唯一性约束可以为空 unique (数据可以为空,但是是唯一的)
-- 也是后面加上unique
自增约束:auto increment
CREATE TABLE goods(
id int (11) primary key auto increment,
type VARCHAR(30),
name VARCHAR (30));
无符号约束:unsigned
CREATE TABLE dd(id TINYINT(4) UNSIGNED);-- unsigned 无符号约束
-- 只有设置了无符号约束,这里才能取值0-255
INSERT into dd VALUES (254);
外键约束:CONSTRAINT waijianname FOREIGN KEY(goods_id) REFERENCES goods(id)
-- 主表中没有的从表中不允许插入,从表中有的主表中不能删除,不能更改主表中的值而导致从表中记录孤立存在,先删除从表 再删除主表
-- 条件01:两个表中必须有公共字段,字段名称可以不同,但是数据类型必须是一样的
-- 条件02:主表 中的这个字段必须是主键字段,从表 中的字段可以是主键也可以不是主键字段,主从关系
-- 主表的id数量一定 大于等于 从表中的id数量,包含关系,主表中的id包含从表中的id(重要)
-- 外键约束加在从表里面
CONSTRAINT 外键约束名字 FOREIGN KEY(goods_id 从表中的字段) REFERENCES goods(id 主表名称)
constraint
-- 示例演示:
CREATE TABLE goods ( -- 主表
id INT(11) PRIMARY KEY AUTO_INCREMENT, -- 主键约束加上自增约束
type VARCHAR(30) NOT NULL, -- 非空
name VARCHAR(30) UNIQUE, -- 唯一性定义
price DECIMAL(7,2) UNSIGNED, -- 无符号定义 decimal十进制
num INT(11) DEFAULT 0,
add_time DATETIME
);
CREATE TABLE orders(--从表
o_id INT(11) PRIMARY KEY,--主键约束
add_time DATETIME,
goods_id INT(11),
-- 添加外键约束,让主表goods与从表orders联系起来
CONSTRAIN