01 -- 概述
? 关系数据库概念 ? SQL
语句概述
? 例子数据库概述
02 -- 基本查询 7
? 最简单的? 错误的
select语句
sql语句
? 选择特定列 ? 选择算术表达式 ? 连接运算符 ? 重复行 ? 基本
select语句总结 子句 条件
03 -- 限制和排序 8
? where
? between? in
条件 条件
? like
? null条件 ? 逻辑条件 ? 优先顺序
? order by结果排序
04 -- 关联查询 7
? 等值关联 ? 更多关联条件 ? 自联结 ? join on
联结
? 三向联结 ? join on 附加条件 ? 左右连接和全连接
05 -- 单行函数 12
? 函数的概念 ? 字符函数 ? 数字函数 ? 日期格式
? 时间函数-当前时间 ? 时间函数-分解
? 时间函数-计算 ? 时间函数-转换 ? to_char
函数
? 常规函数 ? case
函数 函数
? decode
06 -- 分组函数 9
? 分组函数概念 ? 分组函数语法 ? 分组函数-COUNT ? 分组函数与空值 ? 创建数据分组 ? 分组函数常见错误 ? 排除分组结果? 嵌套分组函数 ? 分组函数进阶练习
HAVING
07 -- 子查询 3
? 子查询 ? 单行子查询 ? 多行子查询
08 -- 集合 4
? 集合概念 ? UNION(并集) ? INTERSECT(交集) ? MINUS(补集)
09 -- 数据操纵 8
? 数据操纵
DML概念
单行 多行
? DML-INSERT
? DML- INSERT
? DML-UPDATE ? DML-DELETE ? DML-MERGE(合并) ? 数据库事务处理 ? 控制事务处理
10 -- 创建表 4
? 创建表
? 子查询创建表 ? ALTER TABLE ? 删除表
11 -- 约束 3
? 表约束 ? 创建约束 ? 添加约束
12 -- 视图 4
? 视图-概念 ? 视图-创建 ? 删除视图 ? 执行排序
Top-N分析
13 -- 索引 4
? 索引概念 ? 索引创建
? 什么情况下要创建索引 ? 删除索引
14 -- 序列 5
? 序列概念 ? 创建序列 ? 使用序列 ? 修改序列 ? 删除序列 ? ?
1-1关系数据库概念
1、E.F.Codd博士在1970年提出了数据库系统的关系模型,这是所有关系数据库管理系统(RDBMS)的基础。 2、关系模型由以下要素构成:
--对象或关系集合 --处理关系的运算符集
--确保精确和一致的数据完整性
?
3、关系数据库使用二维表存储信息,列表示实体模型的所有属性,比如员工编码、姓名、性别、工资、所在部门编码等,行表示一个实体的所有属性的信息,比如01、张三、男、1500等。
4、多个表之间通过外键来表达关联,比如部门表存储部门的详细信息,而员工表只
需要存储部门表的主键(部门编码),通过这个外键字段就建立了员工表和部门表之间的关联。
?
?
1-2SQL语句概述
1、SQL(结构查询语言)是美国国家标准协会制订的一种标准语言,用于操作关系数据库,使用者不需要知道数据是如何存储的,通过SQL语句就可以操作数据库。
2、所有关系数据库都支持标准SQL语言进行管理。有些数据库厂商针对各自数据库的特点还做了扩展,比如Sql Server、Oracle等都有各自的扩展,学习掌握标准Sql以后,在使用某一个厂商的数据库时,可以继续学习扩展语法。 3、SQL语句分类:
SELECT 数据检索
INSERT 数据操纵语言(DML) UPDATE
? ? ? ? ? ? ? ? ? ? ? ?
DELETE MERGE
CREATE 数据定义语言(DDL) ALTER DROP RENAME TRUNCATE
COMMIT 事务处理控制语言(DTL) ROLLBACK SAVEPOINT
GRANT 数据控制语言(DCL) REVOKE
?
1-3例子数据库概述
?
1、在本课程中使用的例子数据库是一个人力资源数据库,简称hr库,每个学员都会自动拥有一个例子数据库,假如数据库被破坏导致不能使用,在命令行输入\initdb;\即可以重新初始化自己的例子数据库。
2、例子数据库拥有员工表(employees)、部门表(departments)、岗位表(jobs)、工作历史表(job_history)、国家表(countories)、地区表(regions)、办公场所表(locations)。
3、查询hr中有几个表:
show tables from hr;注意:每个语句都要以\作为结束 4、查询某个表的结构(如employees):
show columns from hr.employees;
? ? ? ? ?
初始化例子数据库
如果例子数据库不正常,可以用以下命令重新初始化:initdb;
注意:这条命令不是标准sql语言,是我们系统用于支持教学的专用脚本。 hr里的表 查询hr里的表:show tables from hr;
练习-了解表结构 (10分钟)分别执行以下语句,查看hr中各表的结构:
show columns from hr.countries;
? ? ? ? ? ?
show columns from hr.regions; show columns from hr.locations; show columns from hr.jobs; show columns from hr.job_history; show columns from hr.departments; show columns from hr.employees;
? ? ? ?
2-1最简单的select语句
查询所有部门表的数据:
select * from hr.departments;
1、理解:以上语句包含一个select字句 和一个from字句,select子句确定查询哪些列的数据,from子句确定从哪个表查询。最简单的select语句也必须包含select子句和一个from子句。
2、select 和 from 都是关键字。