使用SQL插入数据、查询数据——MySQL数据库学习笔记(三)

「这是我参与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语句。

image.png

查询数据

查询语句是数据库操作中最重要的语句之一。

查询语句的基本结构:

SELECT <目标列名,逗号分割>
  FROM <数据源,来自哪些表>
  [WHERE <检索条件表达式>]
  [GROUP BY <分组依据列>]
  [HAVING <组提取条件>]
  [ORDER BY <排序条件>]
;
复制代码

下面我们通过一些实战查询来使用SELECT语句。

单表查询

一、查询所有学生的学号和姓名。

SELECT Sno, Sname FROM Student;
复制代码

image.png

二、查询所有学生的学号、姓名、所在系。

SELECT Sno, Sname, Sdept FROM Student;
复制代码

image.png

三、查询所有学生的全部信息。

SELECT Sno, Sname, Ssex, Sage, Sdept FROM Student;
复制代码

我们也可以使用*号来代替。

SELECT * FROM Student;
复制代码

image.png

四、查询所有学生的姓名和出生年份。

Student表中只记录了学生的年龄,并没有记录学生的出生年份,但我们可以通过根据当前年份和学生的年龄计算出出生年份,用当前年份减去年龄,得出出生年份。语句如下:

SELECT Sname, 2022 - Sage FROM Student;
复制代码
复制代码

image.png

五、查询所有学生的姓名和出生年份,并在“出生年份”列前面增加一列,为“出生年份”。

SELECT Sname, '出生年份', 2022 - Sage FROM Student;
复制代码

image.png

指定列的别名

我们可以通过AS来去指定列的别名,使数据更加的直观。

SELECT Sname AS 姓名, '出生年份', 2022 - Sage AS 年份 FROM Student;
复制代码

image.png

结尾

本篇文章我们学会了插入数据,并且可以简单的进行查询数据。

在下篇文章中,我们将继续学习SELECT语句的其他查询方式。

Guess you like

Origin juejin.im/post/7068637743038857247