欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL: 手写的SQL语句.可直接执行 ---学生表,老师表,课程表,班级表,成绩表

程序员文章站 2022-06-24 16:50:24
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 EX...

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,'1980-04-03','18888888888','zhanga@163.com','杭州',1);
insert into tbl_student values(default,'孙H','女',17,'1980-04-03','18888888888','zhanga@163.com','杭州',2);
insert into tbl_student values(default,'李I','男',26,'1980-04-03','18888888888','zhanga@qq.com','苏州',2);
insert into tbl_student values(default,'李J','女',34,'1980-04-03','18888888888','zhanga@163.com','苏州',2);
insert into tbl_student values(default,'周K','女',40,'1980-04-03','18888888888','zhanga@163.com','四川',2);
insert into tbl_student values(default,'周L','男',32,'1980-04-03','18888888888','zhanga@163.com','四川',2);
insert into tbl_student values(default,'吴M','女',16,'1980-04-03','18888888888','zhanga@163.com','广州',2);
insert into tbl_student values(default,'吴N','女',20,'1980-04-03','18888888888','zhanga@163.com','广州',3);
insert into tbl_student values(default,'郑O','男',22,'1980-04-03','18888888888','zhanga@163.com','重庆',4);
insert into tbl_student values(default,'郑P','男',23,'1980-04-03','18888888888','zhanga@163.com','重庆',4);
insert into tbl_student values(default,'王Q','女',24,'1980-04-03','18888888888','zhanga@163.com','北京',1);
insert into tbl_student values(default,'王R','男',28,'1980-04-03','18888888888','zhanga@163.com','天津',1);
insert into tbl_student values(default,'冯S','女',39,'1980-04-03','18888888888','zhanga@163.com','山东',1);
insert into tbl_student values(default,'冯T','男',20,'1980-04-03','18888888888','zhanga@163.com','山东',2);
insert into tbl_student values(default,'陈U','女',25,'1980-04-03','18888888888','zhanga@163.com','山西',2);
insert into tbl_student values(default,'陈V','男',28,'1980-04-03','18888888888','zhanga@163.com','山西',3);
insert into tbl_student values(default,'楚W','女',28,'1980-04-03','18888888888','zhanga@163.com','山西',4);
insert into tbl_student values(default,'楚X','男',29,'1980-04-03','18888888888','zhanga@qq.com','河北',1);
insert into tbl_student values(default,'魏Y','女',22,'1980-04-03','18888888888','zhanga@163.com','河北',2);
insert into tbl_student values(default,'魏Z','男',21,'1980-04-03','18888888888','zhanga@163.com','河南',3);

#select * from tbl_student;
  • 老师对象(teacher): 唯一标识id,姓名,性别,年龄,电话
create table tbl_teacher(
	id int primary key auto_increment ,
	tname varchar(50) not null,
  sex char(2),
  age int,
  phone varchar(11)
);
insert into tbl_teacher values(default,'成龙','男',58,'1766666601');
insert into tbl_teacher values(default,'黎明','男',58,'1766666601');
insert into tbl_teacher values(default,'孙俪','女',35,'1766666601');
insert into tbl_teacher values(default,'范冰冰','女',35,'1766666601');

select * from tbl_teacher

  • 课程对象(course): 唯一标识id,课程名,开课时间,课时数量
create table tbl_course(
	id int primary key auto_increment ,
	cname varchar(11) not null unique, #非空,唯一
	start_time datetime,
	count int 
);
insert into tbl_course values(default,'人工智能AI',now(),80); -- now()表示自带日期函数,
insert into tbl_course values(default,'数据分析',now(),70);
insert into tbl_course values(default,'爬虫',now(),60);
insert into tbl_course values(default,'大数据',now(),90);
  • 成绩对象(score) : id,分数,课程名, 学生名
create table tbl_score(
	id int primary key auto_increment,
  score float(4,1), -- 4位, 小数点保留1位
  s_id int not null,
	c_id int not null,
	foreign key(s_id) references tbl_student(id),  #建表时指定外键
  foreign key(c_id) references tbl_course(id)  #建表时指定外键
);

修改 表 表名 增加 关系 关系名 外键 (外键列) 参考 主表(主键)

#alter table tbl_score add constraint FK_scoreid_courseid foreign key(c_id) references tbl_course(id);

  • 第1个人,第4门课
insert into tbl_score values (default,58,1,1);
insert into tbl_score values (default,89,1,1);
insert into tbl_score values (default,78,1,2);
insert into tbl_score values (default,65,1,3);
insert into tbl_score values (default,90,1,4);
  • 第2个人4门课
insert into tbl_score values (default,90,2,1);
insert into tbl_score values (default,54,2,2);
insert into tbl_score values (default,89,2,2);
insert into tbl_score values (default,87,2,3);
insert into tbl_score values (default,92,2,4);
  • 第3个人3门课
insert into tbl_score values (default,90,3,1);
insert into tbl_score values (default,89,3,2);
insert into tbl_score values (default,87,3,3);
  • 第4个人3门课
insert into tbl_score values (default,87,4,1);
insert into tbl_score values (default,86,4,2);
insert into tbl_score values (default,90,4,3);
insert into tbl_score values (default,67,4,4);
  • 第5个人4门课
insert into tbl_score values (default,98,5,1);
insert into tbl_score values (default,90,5,2);
insert into tbl_score values (default,78,5,3);
insert into tbl_score values (default,98,5,4);

select * from tbl_score;

  • 删除主键和外键
alter table 表名 drop foreign key 外键(区分大小写); alter table 表名 drop

primary key; alter table tbl_score drop foreign key

FK_scoreid_courseid

本文地址:https://blog.csdn.net/Chris_R/article/details/111027896