一、数据库介绍
创建stu数据库,在这个数据中创建三个表student,cource,sc三个表,三个表之间的关系如下图所示.
image.png
二、表结构操作
1.建表语法复习
- 创建学生表
CREATE TABLE student(
sno INT(10)NOT NULL,
sname VARCHAR(5) NOT NULL,
ssex CHAR(2) NOT NULL,
sdept VARCHAR(4) NOT NULL,
PRIMARY KEY(sno)
)
- 创建课程表
CREATE TABLE cource(
cno INT(10) NOT NULL,
cname VARCHAR(5) NOT NULL,
credit INT(2) NOT NULL,
PRIMARY KEY(cno)
)
- 创建成绩表(中间表)并且创建联合主键
CREATE TABLE sc(
sno INT(10) NOT NULL,
cno INT(10) NOT NULL,
grede INT(3) NOT NULL,
PRIMARY KEY (sno,cno),
FOREIGN KEY(sno) REFERENCES student(sno),
FOREIGN KEY(cno) REFERENCES cource(cno)
)
2.清空表,删除表
- 清空表中的所有数据
TRUNCATE TABLE sc
- 删除表
DROP TABLE IF EXISTS sc
3.修改表结构
- 添加列
ALTER TABLE student ADD sage INT(2) NOT NULL
ALTER TABLE student ADD email VARCHAR(20) NOT NULL
- 删除列
ALTER TABLE student DROP email
二、数据操作
1.插入数据
- 往学生库中插入数据
INSERT INTO student VALUES(100,'张三','男','CS')
INSERT INTO student(sno,sname,ssex,sage,sdept) VALUES
(95001,'李勇','男',20,'CS'),
(95002,'刘晨','女',19,'IS'),
(95003,'王名','女',18,'MA'),
(95004,'张立','男',18,'IS'),
(95005,'刘昊然',19,'CS')
- 往课程表插入数据
INSERT INTO cource VALUES
(1,'数据库系统原理',4),
(2,'操作系统',3),
(3,'java程序设计',4),
(4,'汇编语言',3),
(5,'多媒体技术',3),
(6,'PHP网络编程',4)
- 往成绩表中插入数据
INSERT INTO sc VALUES
(95001,1,84),(95001,2,62),(95001,3,83),(95001,4,84),(95001,5,69),(95001,6,48),
(95002,1,78),(95002,2,83),(95002,3,86),(95002,4,89),(95002,5,89),(95002,6,64),
(95003,1,89),(95003,2,96),(95003,3,96),(95003,4,88),(95003,5,46),(95003,6,87)
2.删除数据
DELETE FROM student WHERE sno=100
3.修改数据
UPDATE student SET sage=21 WHERE sno=95001
4.查询数据
- 普通查询
SELECT * FROM student
SELECT * FROM cource
SELECT * FROM sc
- 条件查询
查询李勇同学的信息
SELECT * FROM student WHERE sname='李勇'
查询年龄大于18的同学的信息
SELECT * FROM student WHERE sage>18
- 模糊查询
查询所有刘姓的学生的信息
SELECT * FROM student WHERE sname LIKE '刘%'
- 联合查询
查询PHP这门课的所有的学生的学号、姓名、课程名、成绩
SELECT s.sno,sname,cname,grede FROM student AS s,cource AS c,sc
WHERE s.sno=sc.sno AND c.cno=sc.cno AND c.cno=6