本文介绍SQL语句的基本用法
阅读目录
Student表和Score表的定义
Student表的定义
字段名 |
字段描述 |
数据类型 |
主键 |
外键 |
非空 |
唯一 |
自增 |
id |
自增列 |
INT(10) |
是 |
否 |
是 |
是 |
是 |
stu_id |
学号 |
INT(10) |
|
|
|
|
|
name |
姓名 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
sex |
性别 |
VARCHAR(10) |
否 |
否 |
否 |
否 |
否 |
birth |
出生年份 |
Date |
否 |
否 |
否 |
否 |
否 |
department |
院系 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
address |
家庭住址 |
VARCHAR(50) |
否 |
否 |
否 |
否 |
否 |
Score表的定义
字段名 |
字段描述 |
数据类型 |
主键 |
外键 |
非空 |
唯一 |
自增 |
id |
编号 |
INT(10) |
是 |
否 |
是 |
是 |
是 |
stu_id |
学号 |
INT(10) |
否 |
否 |
是 |
否 |
否 |
name |
课程名 |
VARCHAR(20) |
否 |
否 |
否 |
否 |
否 |
grade |
分数 |
INT(10) |
否 |
否 |
否 |
否 |
否 |
创建表的语句
CREATE TABLE [dbo].[Student]( [id] [int] IDENTITY(1,1) NOT NULL, [stu_id] [int] NULL, [name] [varchar](50) NULL, [sex] [varchar](4) NULL, [birth] [date] NULL, [department] [varchar](50) NULL, [address] [varchar](50) NULL ) ON [PRIMARY]
CREATE TABLE [dbo].[Score]( [id] [int] IDENTITY(1,1) NOT NULL, [stu_id] [int] NULL, [c_name] [varchar](50) NULL, [grade] [int] NULL ) ON [PRIMARY]
插入数据
INSERT INTO Student VALUES( 901,'张老大', '男','1985-09-13','计算机系', '北京市海淀区'); INSERT INTO Student VALUES( 902,'张老二', '男','1986-01-02','中文系', '北京市昌平区'); INSERT INTO Student VALUES( 903,'张三', '女','1990-12-13','中文系', '湖南省永州市'); INSERT INTO Student VALUES( 904,'李四', '男','1990-12-13','英语系', '辽宁省阜新市'); INSERT INTO Student VALUES( 905,'王五', '女','1991-08-17','英语系', '福建省厦门市'); INSERT INTO Student VALUES( 906,'王六', '男','1988-09-10','计算机系', '湖南省衡阳市'); INSERT INTO Score VALUES(901, '计算机',98); INSERT INTO Score VALUES(901, '英语', 80); INSERT INTO Score VALUES(902, '计算机',65); INSERT INTO Score VALUES(902, '中文',88); INSERT INTO Score VALUES(903, '中文',95); INSERT INTO Score VALUES(904, '计算机',70); INSERT INTO Score VALUES(904, '英语',92); INSERT INTO Score VALUES(905, '英语',94); INSERT INTO Score VALUES(906, '计算机',90); INSERT INTO Score VALUES(906, '英语',85);
查询Student表中所有记录
SELECT * FROM Student
* 是通配符, 意思是所有的列
查询Student表中,所有学生的姓名和院系
SELECT name FROM Student
查询Student表的信息,按照学生的年龄从大到小排序
ascent 升序
SELECT * FROM Student ORDER BY birth ASC
ORDER BY 关键字是排序
查询Student表的信息,按照学生的年龄从小到大排序
descent 降序
SELECT * FROM Student ORDER BY birth DES
查询Student表中, 叫王五的学生的信息
SELECT * FROM Student WHERE name='王五'
查询Student表中,来自北京的学生
查询Student表中,来自厦门的学生
查询所有计算机系和英语系的学生的信息
SELECT * FROM Student WHERE department='英语系'or department='计算机系'
查询所有计算机系和英语系和化学系的学生的信息
SELECT * FROM Student WHERE department IN ('英语系','计算机系','化学系')
查询Student表中, 年龄排第二,第三,第四。 的三个人的信息
查询每个院系有多少人
查询李四的考试科目和考试成绩
用连接的方式查询所有学生的信息和考试信息
计算每个学生的总成绩
计算每个考试科目的平均成绩
查询计算机成绩低于95的学生信息
查询同事参加计算机和英语考试的学生信息
将计算机考试成绩按从高到低进行排序
查询姓张的同学的姓名院系和考试科目及成绩
查询湖南的学生的姓名,年龄,院系和考试科目及成绩