DDL(数据定义)
 DROP 子句 用于删除指定的列名,  
 
 ◼ 若选择RESTRICT ,则删除的基本表不能被其他表的约  
  束所引用(如 CHECK , FOREIGN KEY 等约束),不  
  能有视图,不能有触发器,不能有存储过程或函数等。  
  如果存在这些依赖该表的对象,则此表不能被删除。  
  ◼  若选择 CASCADE ,则该表的删除没有限制条件。在删  
  除基本表的同时,相关的依赖对象,例如视图等都将被  
  一起删除。  
  ◼  一般在缺省情况下默认为 RESTRICT , 与具体实现有关 
    DML(数据操作)
DQL(数据查询)
 一。注意  DISTINCT 短语的作用范围是所有目标列  
  错误的写法  
  SELECT DISTINCT Cno , DISTINCT Grade  
  FROM SC;  
  正确的写法  
  SELECT DISTINCT Cno , Grade  
  FROM SC; 
   二。空值查询:“ IS NULL ”  不能用 “ = NULL ”  代替 
    三。使用 GROUP BY 子句分组查询 
  ◼  细化聚集函数的作用对象  
  ◼  未对查询结果分组,聚集函数将作用于整个查询结果  
  ◼  对查询结果分组后,聚集函数将分别作用于每个组  
  ◼  分组方法  
  ◼  按指定的一列或多列值分组, 值相等的为一组  
  ◼  使用 GROUP BY 子句后, SELECT 子句的列名列  
  表中只能出现分组属性和聚集函数  
  ◼  GROUP BY 子句的作用对象是查询的中间结果表 
  【例】求各个课程号及相应的选课人数。  
  SELECT Cno , COUNT(*)  -- COUNT(Sno)  
  FROM SC  
  GROUP BY Cno ;  
  【例】查询选修了 3 门以上课程的学生学号  
  SELECT Sno  
  FROM SC  
  GROUP BY Sno  
  HAVING COUNT(*) >3 ; 
  查询有 3 门以上课程是 90 分以上的学生的学  
  号及( 90 分以上的)课程数  
  SELECT Sno, COUNT(*)  
  FROM SC  
  WHERE Grade>=90  
  GROUP BY Sno  
  HAVING COUNT(*)>=3; 
 四。 
 - WHERE子句允许你指定过滤条件,这些条件基于表中的单个行。你不能在- WHERE子句中使用聚合函数(如- SUM(),- AVG(),- COUNT(), 等)来过滤分组。
- GROUP BY子句通常与聚合函数一起使用,以计算每个组的汇总值。你不能在- GROUP BY子句中指定单个行的条件,但可以在- HAVING子句中这样做,- HAVING子句允许你基于聚合函数的结果来过滤分组。
五。连接查询
 连接条件中各 连接字段 的类型必须是 可比的 ,但不必是  
  相同的 
  六。嵌套查询
 子查询的限制  
  ◼  不能使用 ORDER BY 子句  
  嵌套查询的分类与求解方法  
  ◼  不相关子查询  
  ◼  子查询的查询条件不依赖于父查询  
  ◼  由里向外逐层处理。每个子查询在上一级查询处理之前  
  求解,子查询的结果用于建立其父查询的查找条件。  
  ◼  相关子查询  
  ◼  子查询的查询条件依赖于父查询  
  ◼  先取外层查询中表的第一个元组,根据它与内层查询相  
  关的属性值处理内层查询,若 WHERE 子句返回值为真,  
  则取此元组放入结果表;然后再取外层表的下一个元组;  
  重复这一过程,直至外层表全部检查完为止 
  【例】找出每个学生所选修课程成绩超过该门课  
  程平均成绩的课程号。  
  SELECT Sno, Cno  /* 外层查询 / 父查询 */  
  FROM SC x  
  WHERE Grade >=(SELECT AVG(Grade)  
  FROM SC y  
  WHERE y.Cno=x.Cno);  
  /* 内层查询 / 子查询 */ 
    子查询不能在比较符之前 
  ◼  错误 的例子  
  SELECT Sno, Sname, Sdept  
  FROM Student  
  WHERE ( SELECT Sdept  
  FROM Student  
  WHERE Sname= ‘  刘晨 ’  )  
  = Sdept ;  
 约束
索引
 ◼  在一个基本表上最多只能建立一个聚集索引  
  ◼  聚集索引可以包含多个列(组合索引)  
  ◼  聚集索引的适用范围  
  ◼  很少对基表进行增删操作  
  ◼  很少对其中的变长列进行修改操作