数据库之SQL

来源:互联网 发布:matlab定义空矩阵 编辑:程序博客网 时间:2024/06/06 06:43

1. drop from r 和 delete from r

  前者是删除表r,后者是删除表中的所有元组,但是表依然存在。


2. alter table r addA D: 在表r中添加属性A,它的域(取值范围)为D。

    alter table r dropA: 在表r中去掉属性A。


3. 有时候我们想要强行删除重复,可在select后加入关键词distinct

    关键词all用来显式指明不去除重复。


4. 自然连接。(natural join)


5. 附加运算

  i. 更名运算:(old-name as new-name)

    ex:select name as instructor_name, course_id   

         from instructor, teachesfrom

 where instructor.ID = teacher.ID


select distinct T.name

instructor as T,instructor as S

where T.salary > S.salary and S.dept_name = 'Biology';


  ii. 字符串:(%, _)

 

  iii. 集合运算:(union, intersect,except)


6. 聚集函数

  i. 基本聚集(avg, min, max, sum, count)

  ii. 分组聚集(group by)

  iii. having子句


7. 嵌套子查询

  some(某一个),all(所有的),exist(存在),unique(是否一次)的含义。


8. 外连接

  i. 左外连接:只保留出现在左外连接运算之前(左边)的关系中的元组(left outer join)。

  ii. 右外连接:只保留出现在右外连接运算之前(右边)的关系中的元组(right outer join)。

  iii. 全外连接:保留出现在两个关系中的元组(full outer join)。


9. 视图

  create view vas <query expression>

  可更新的视图:

  i. from子句中只有一个数据库关系。

  ii.  select子句中只包含关系的属性名,不包含任何表达式,聚集或distinct声明。

  iii.  任何没有出现在select子句中的属性可以取空值;即这些属性上没有not null约束,也不构成主码的一部分。

  iX. 查询中不含有group by或having子句。


10. 完整性约束

  i.  not null:设定属性值不为空

  ii. unique:设定属性值唯一,可以是选取组合起来唯一。

  iii. check:保证属性值的满足指定条件。


11. 授权

  grant <权限列表>

  on <关系名或视图名>

  to  <用户/角色列表>

  然后收回权限就是把grant改成revoke,将to改成from。





  


0 0