410 likes | 550 Views
SQL (Structured Query Language). Hyman Zhang 2009-03-01. SQL Query (前提). 假设存在以下三张表. Student. Course. SC. SQL Query. 单表查询 多表查询 案例. 单表查询 — 查询指定列. 查询全体学生的学号,姓名 查询全体学生的姓名和出生年份. 单表查询 列别名. 查询全体学生的姓名( Name )和出生年份( Birthday ). 单表查询 所有列. 查询 student 表的所有内容 这两个语句哪一个更好?. 查询选修了课程的学生编号.
E N D
SQL (Structured Query Language) Hyman Zhang 2009-03-01
SQL Query (前提) 假设存在以下三张表
SQL Query • 单表查询 • 多表查询 • 案例
单表查询—查询指定列 • 查询全体学生的学号,姓名 • 查询全体学生的姓名和出生年份
单表查询 列别名 • 查询全体学生的姓名(Name)和出生年份(Birthday)
单表查询所有列 • 查询student表的所有内容 • 这两个语句哪一个更好?
查询选修了课程的学生编号 如何去掉重复结果?
查询所有姓名,性别和年龄姓名和性别不可以重复查询所有姓名,性别和年龄姓名和性别不可以重复
Where 查询计算机系(CS)所有学生的学号,姓名
Where • 查询年龄20岁以下的学生 • 什么时候用“’” • Date,Datetime类型??
Where Date Datetime • 假设在学生表中有个字段:Scome Datetime类型。记录入学时间。 • 如果需要查询2009-03-01入学学生的学号和姓名。
Where • 查询存在成绩不及格的学生(假设60分为及格分数线) • 查询符合所有成绩不及格条件的学生???
Where • 查询年龄在20~23之间的学生编号,学生姓名 • 哪个好?
Where • 查询信息系(IS),数学系(MA),计算机科学系(CS)学生的学生编号和姓名 • 哪个好?
Where 模糊查询 like • 如果查询条件中没有包含通配符,like可以用= 代替
Where Like Escape • 如果Sno存在这样的值“99_001”,“99-002” 查询Sno以“99_”开头的学生的编号
多表查询 内连接 • 查询所有学生编号,姓名,所选课程及分数。 • xx
多表查询 – 外连接 • 查询学生姓名,所选课程及分数,结果集中需要包含所有学生。
多表查询 – 笛卡尔 • 查询所有学生和所有课程的集合
查询所有学生和课程的集合,如果有成绩的列出成绩查询所有学生和课程的集合,如果有成绩的列出成绩
查询所有课程的前置课程(课程名称,前置课程名称)查询所有课程的前置课程(课程名称,前置课程名称)
排序 • 按学生年龄升序列出所有学生姓名和年龄
排序 • 按院系降序,年龄升序列出所有学生院系,姓名和年龄。
Example-1 • 求所有订单的未收货数量(订货单号,未收数量) • aaa
Example • 交易币,本位币的问题
Example • Head 取Detail状态的问题(不一致状态)