「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战」
在上篇文章中, 使用SQL语言创建数据库、表——MySQL数据库学习笔记(二)。
我们创建了数据库my_learn
。
然后紧接着创建了这三张表:学生表(Student)、课程表(Course)、学生选修课表(SC)。
今天我们就来向数据库中插入数据和查询数据。
插入数据
插入数据使用SQL的INSERT INTO
语法
INSERT INTO
语句有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
复制代码
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
复制代码
接着,我们先向Student
表中插入一些数据:
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9512101','李勇','男','19', '计算机系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9512102','刘晨','男','20', '计算机系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9512103','王敏','女','20', '计算机系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9521101','张立','男','22', '信息系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9521102','吴斌','女','21', '信息系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9521103','张海','男','20', '信息系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9531101','钱小平','女','18', '数学系');
INSERT INTO `Student` (Sno, Sname, Ssex, Sage, Sdept) VALUES ('9531102','王大力','男','19', '数学系');
复制代码
我们再向Course
表中插入一些数据:
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c01','计算机文化学','3','1');
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c02','VB','2','3');
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c03','计算机网络','4','7');
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c04','数据库基础','5','6');
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c05','高等数学','8','2');
INSERT INTO `Course` (Cno, Cname, Credit, Semester) VALUES ('c06','数据结构','5','4');
复制代码
我们再向SC
表中插入一些数据:
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9512101','c01','90');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9512101','c02','86');
INSERT INTO `SC` (Sno, Cno) VALUES ('9512101','c06');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9512102','c02','78');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9512101','c04','66');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9521102','c01','82');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9521102','c02','75');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9521102','c04','92');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9521102','c05','50');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9521103','c02','68');
INSERT INTO `SC` (Sno, Cno) VALUES ('9521103','c06');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9531101','c01','80');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9531101','c05','95');
INSERT INTO `SC` (Sno, Cno, Grade) VALUES ('9531102','c05','85');
复制代码
这里要注意的是要选择Run All Queries
这个按钮。选择Run Previous Query
只会执行最后一条SQL语句。
查询数据
查询语句是数据库操作中最重要的语句之一。
查询语句的基本结构:
SELECT <目标列名,逗号分割>
FROM <数据源,来自哪些表>
[WHERE <检索条件表达式>]
[GROUP BY <分组依据列>]
[HAVING <组提取条件>]
[ORDER BY <排序条件>]
;
复制代码
下面我们通过一些实战查询来使用SELECT语句。
单表查询
一、查询所有学生的学号和姓名。
SELECT Sno, Sname FROM Student;
复制代码
二、查询所有学生的学号、姓名、所在系。
SELECT Sno, Sname, Sdept FROM Student;
复制代码
三、查询所有学生的全部信息。
SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student;
复制代码
我们也可以使用*
号来代替。
SELECT * FROM Student;
复制代码
四、查询所有学生的姓名和出生年份。
在Student
表中只记录了学生的年龄,并没有记录学生的出生年份,但我们可以通过根据当前年份和学生的年龄计算出出生年份,用当前年份减去年龄,得出出生年份。语句如下:
SELECT Sname, 2022 - Sage FROM Student;
复制代码
复制代码
五、查询所有学生的姓名和出生年份,并在“出生年份”列前面增加一列,为“出生年份”。
SELECT Sname, '出生年份', 2022 - Sage FROM Student;
复制代码
指定列的别名
我们可以通过AS
来去指定列的别名,使数据更加的直观。
SELECT Sname AS 姓名, '出生年份', 2022 - Sage AS 年份 FROM Student;
复制代码
结尾
本篇文章我们学会了插入数据,并且可以简单的进行查询数据。
在下篇文章中,我们将继续学习SELECT语句的其他查询方式。