本文介绍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的学生信息
查询同事参加计算机和英语考试的学生信息
将计算机考试成绩按从高到低进行排序
查询姓张的同学的姓名院系和考试科目及成绩
查询湖南的学生的姓名,年龄,院系和考试科目及成绩