数据库实习总结1-5

一. 建表及插入数据
1.创建students数据库
数据库实习总结1-5_第1张图片
2. 创建表
数据库实习总结1-5_第2张图片
设置sno为主键
在这里插入图片描述
3.创建course表
数据库实习总结1-5_第3张图片
4.创建SC表
数据库实习总结1-5_第4张图片
5.Student表数据
数据库实习总结1-5_第5张图片
6.Course表数据
数据库实习总结1-5_第6张图片
7.Sc表数据
数据库实习总结1-5_第7张图片

二. 查询
1.单表查询
A. 选择表中若干列
a. 查询指定的列
数据库实习总结1-5_第8张图片
b. 查询全部列(列出全部列名,或是“”)
数据库实习总结1-5_第9张图片
c. 查询经过计算的列(可以是表达式,常量或是函数)
如:查询出生年份
数据库实习总结1-5_第10张图片
B. 选择表中的若干元组
a. 消除取值相同的行
数据库实习总结1-5_第11张图片
b. 查询满足条件的元组
1.比大小
数据库实习总结1-5_第12张图片
2. 确定范围
数据库实习总结1-5_第13张图片
3. 确定集合
数据库实习总结1-5_第14张图片
4. 字符串匹配
数据库实习总结1-5_第15张图片
数据库实习总结1-5_第16张图片
数据库实习总结1-5_第17张图片
数据库实习总结1-5_第18张图片
去掉尾随的空格
数据库实习总结1-5_第19张图片
5. 多重条件查询
数据库实习总结1-5_第20张图片
C. 对查询结果进行排序
Order by <列名> asc|desc
Asc:升序;desc:降序
数据库实习总结1-5_第21张图片
D. 使用聚合函数汇总数据
Count(
):统计表中元组的个数
Count ([distinct]<列名>):统计本列非空列值个数(distinct表示不包括重复值)
Sum(<列明>):计算列值总和(必须是数值型)
AVG(<列名>):计算列值平均值(必须是数值型)
Max(<列名>):求列值最大值
Min(<列名>):求列值最小值
上述除count(*)外,其他函数在计算过程中均忽略NULL值
数据库实习总结1-5_第22张图片
数据库实习总结1-5_第23张图片
聚合函数不能出现在where子句中
E. 对查询结果进行分组统计
1.使用group by
数据库实习总结1-5_第24张图片
2.使用having:对于分组后的结果再进行筛选,通常与group by一起使用
数据库实习总结1-5_第25张图片
2. 多表连接查询
A. 内连接
数据库实习总结1-5_第26张图片

B. 自连接
是特殊的内连接,它是指相互连接的表在物理上为同一张表,但在逻辑上将其看为两张表(使用自连接时一定要取别名)
Eg:查询与liu在同一个系学习的学生的姓名和所在系
数据库实习总结1-5_第27张图片
C. 外连接(只限制一张表中的数据需满足连接条件,另一张表中的数据可以不满足连接条件)
左外连接:表2满足连接条件
右外连接:表1满足连接条件

  1. ANSI的外连接的语法格式为:
    From 表1 left|right [outer] join 表2 on <连接条件>
  2. Theta方式的外连接的语法格式为:
    左外连接:from 表1,表2 where [表1].列名(+)=[表2].列名
    右外连接:from 表1,表2 where [表1].列名=[表2].列名(+)
    注:sql server支持ANSI的外连接,Oracle支持theta方式的外连接
    Eg:统计计算机系每个学生的选课门数,包括没有选课的同学,结果按选课门数递减排序

你可能感兴趣的:(实习记录)