SQL作用:

       独立完成数据库生命周期的全部活动,包括:

1.定义和修改、删除关系模式,定义和删除视图,插入数据,简历数据库;

2.对数据库中的数据进行查询和更新;

3.数据库重构和维护;

4.数据库安全性、完整性控制,以及事务的控制;

5.嵌入式SQL和动态SQL定义;

shema

模式:schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema。所以schema集合看上去像用户名。

      如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射的user有每个schema(房间)的钥匙。

      在MySQL中创建一个Schema和创建一个Database的效果好像是一样的,但是在sqlserver和orcal数据库中效果又是不同的。

      在Oracle数据库中不能新建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决,在创建一个用户的同时为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。

定义模式:create schema <模式名(没有指定默认问用户名)> authorization<用户名>

删除模式:drop schema <模式名> <cascade | restrict>

cascade与restrict区别:选择cascade,表示在删除schema时吧该schema中所有的数据库对象全部删除;

                                     选择restrict,表示如果该schema若已经定义了下属的数据库对象,则拒绝该删除语句执行;

Table

定义table:create table <表名>(<列名> <数据类型> [列级完整约束条件],

                                                 <列名> <数据类型> [列级完整约束条件],

                                                   .......,                  [表级完整约束条件]   );

修改表:alter table <表名>

          add 

          drop

          altert

删除:drop table <表名> [restrict | cascade]

索引

索引:使用索引的全部意义就是通过缩小一张表中需要查询的记录/行的数目来加快搜索的速度,即避免全表扫描;

           记住:索引是一个数据结构;

索引是怎么提升性能的?

       因为索引基本上是用来存储列值的数据结构,这使查找这些列值更加快速。如果索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的。有序的列值可以极大的提升性能。下面解释原因。

假设我们在 Employee_Name这一列上创建一个B-Tree索引。这意味着当我们用之前的SQL查找姓名是‘Jesus’的雇员时,不需要再扫描全表。而是用索引查找去查找名字为‘Jesus’的雇员,因为索引已经按照按字母顺序排序。索引已经排序意味着查询一个名字会快很多,因为名字少字母为‘J’的员工都是排列在一起的。另外重要的一点是,索引同时存储了表中相应行的指针以获取其他列的数据。

基本原则是只如果表中某列在查询过程中使用的非常频繁,那就在该列上创建索引。

建立索引:create unique index  <索引名>   on <表名>( <列名> <次序> , <列名> <次序> , .....);

                 alter index <旧名> rename to<新名>;

                 drop  index <索引名>;

查询分组group by

group by <列名1> having <条件表达式>

将查询结果按<列名1>的值进行分组,该属性值相等的元组为一组;若带having,则只有满足条件的才可输出;

视图:视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义;

单表查、模糊查、Oder by:自己看吧!

聚集函数:count统计

                 sum求和

                 avg就均值

                 max,min

                 记:where字句不能用聚集函数作为表达式;

 

集合查询:

                union:并集去重

                intersect:交集

                except:差集