1、索引
对数据库中标的一列或多了进行排序的一种结构,使用索引可以快速访问数据库中的特定信息(空间换时间),索引也是一种约束。
语法:Create index 索引名 on 表名 (字段名);
举例:caeate index idx student name on t_student(student_name);
优点 | 缺点 |
---|---|
1.确保每一行数据的唯一性 | 1.创建和维护索引要耗用时间 |
2.加快检索速度 | 2.索引占用数据以外的物理空间,随数据量的增加而增加 |
3.加快多表关联查询的速度 | 3.当对标中数据进行增删改,索引也需要更新 |
4.加快分组和排序的查询速度 |
2、视图
视图是一个或几个基本表中导出的虚拟表。
视图可以吧多表关联查询的结果作为一张虚拟表来查询。
语法:Create view 视图名称 as 关联查询的SQL语句
优点 | 缺点 |
---|---|
1.简化SQL语句 | 1.增减维护成本 |
2.提高重要数据的安全性 | |
3.逻辑数据独立性 |
3、行转列、列转行
行转列
decode()–>Oracle特有
实现类似if else 的功能
语法:decode(字段,条件的值,当条件成立返回的值,当条件不成立返回的值)
Case when 语法
列转行
1、Decode函数
思路:分组利用聚合函数扩展字段
2、union的使用
思路:使用union扩展记录数
3、自定义函数
什么是数据库函数
封装了完成某些特定功能的SQL语句,经过编译后保存在数据库中的一个特殊对象
语法: create [or replace] function 函数名称(参数1,参数2)
存储过程
类似函数,封装了某些特定功能的SQL语句集,经过编译保存在数据库中的一个特殊对象,存储过程不能出现在SQL中。