MySQL: 手写的SQL语句.可直接执行
学生表,老师表,课程表,班级表,成绩表
-
删除 表 如果 存在 表名
drop table if EXISTS tbl_score; – 删除成绩(先删除外键表再删主表)
drop table if EXISTS tbl_student; – 删除学生
drop table if EXISTS tbl_class; – 删除班级
drop table if EXISTS tbl_teacher; – 删除老师
drop table if EXISTS tbl_course; – 删除课程 -
create table 表名 (
列名1 类型 约束1 约束2 ,
列名2 类型 约束,
…
)
常见约束/列的限制条件
primary key :主键特点:唯一不能重复!
auto_incement: 自增,自增列必须为int类型
表中必须有主键,为了防止未设置主键,习惯添加整数自增的id列为虚拟主键
default: 默认
not null 非空
unique : 唯一约束!
常用的数据类型:
整数
varchar(长度) 可变长度 常用
char(N) 固定字符长度
浮点类型/小数: float/double
date.datetime, time
-
班级对象(tbl_class) : 唯一标识id,班级编号,人数
create table tbl_class(
id int primary key auto_increment COMMENT ‘注释主键’, – 主键自增
cname varchar(50),
size int # 班级人数
); -
插入 到 表名(列1名,列2名,列3名) 值(列1值,列2值,列3值…)
insert into 表名(…) values(…) -
insert into tbl_class values(default,‘人工智能一班’,30); # 不制定列名,必须为所有列都插入数据,主键自增用default代替!
insert into tbl_class values(default,'人工智能一班',30);
insert into tbl_class values(default,'数据分析一班',30);
insert into tbl_class values(default,'爬虫一班',30);
insert into tbl_class values(default,'大数据',30);
- 学生对象(student): 唯一标识id,姓名,性别,年龄,生日,电话,地址,邮箱,班级编号
create table tbl_student(
id int primary key auto_increment, #id自增
sname varchar(50) not null, – 非空
sex char(2), – 2个字符
age int ,
birthday date, – 日期年月日
phone VARCHAR(11), – 字符串(必须为字符串,因为项目中经常对手机号进行截取,拼接等操作)
email varchar(50),
addr varchar(100),
c_id int, – 外键类型必须和主键类型相同! 学生需要班级名,实际保存的是班级外键(班级id)
foreign key(c_id) references tbl_class(id) – 外键 (外键列名) 参考 主表(主键)
);
- 插入数据 (如果班级id不存, 直接报错!)
- 必须先删除从表,再删除主! 学生参考班级, 学生就是主表!
insert into tbl_student values(default,'张A','男',20,'1980-04-03','18888888888','zhanga@163.com','北京',1);
insert into tbl_student values(default,'张B','男',20,'1980-04-03','18888888888','zhanga@163.com','北京',1);
insert into tbl_student values(default,'赵C','女',21,'1980-04-03','18888888888','zhanga@163.com','天津',1);
insert into tbl_student values(default,'赵D','女',21,'1980-04-03','18888888888','zhanga@163.com','天津',1);
insert into tbl_student values(default,'钱E','女',21,'1980-04-03','18888888888','zhanga@163.com','上海',1);
insert into tbl_student values(default,'钱F','男',17,'1980-04-03','18888888888','zhanga@163.com','上海',1);
insert into tbl_student values(default,'孙G','男',16