博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL语法

Posted on 2019-03-25 23:24  淼哥学习园地  阅读(69)  评论(0)    收藏  举报

1.定义模式:

  CREATE sHEMA <模式名> AUTHORIZATION 《用户名》

 2.删除模式:

  DROP SCHEMA <模式名> <CASCADE|RESTRICT>;

 3.32,定义基本表:

  CREATE TABLE <表名> (<列名><数据类型> [列级完整性约束条件】

              。。。

              );

 

 建立一个课程表Course;

  CREATE TABLE Course

(Cno CHAR(4) PRIMARY KEY,

Cname CHAR(40) NOT NULL,

Cpno CHAR(4),

Ccredict SMALLINT,

FORIGN KEY(Cpo) REFFRENCES Course(Cno)

);

 

修改表名:

  ALTER TABLE  <表名>

 

删除表名:

  DROP TABLE <表名>  [RESTRICT | CASCADE];

 

索引的建立和删除:

  建立索引:CREATE [UNIQUE][CLUSTER] INDEX <索引名> ON <表名>(<列名> [<次序>] [,<列名> [<次序>]]...);

 

  修改索引:ALTER INDEX <旧索引名> RENAME  TO <新索引名>

 

  删除索引:DROP INDEX <索引名>;

 

数据查询:

  SELECT [ALL|DISTINCT]  <目标列表表达式>[,<目标列表表达式>]... FROM <表名或视图名>  [WHERE <条件表达式>]

 

  1.可以查询若干列

  2.可以查询全部列

  3.可以查询经过计算的值

查询满足条件的元组:

  SELECT Sname

  FROM Studetnt 

  WHERE Sdept ="CS";

 

  条件查询条件:

  1.比较

  2.确定范围

  3.确定集合

  4.字符匹配

  5.空值

  6.多重条件

 

聚集函数:

  COUNT(*):统计元组个数

  COUNT([DISTINCT|ALL]<列名>):统计一列中值的个数

  SUM(。。。《列名》):计算一列值的总和

  AVG

  MAX

  MIN

GROUP BY子句:

  分组后聚集函数将作用于每一个组,每一组都有一个函数值

  SELECT Cno ,COUNT(Sno)

  FROM SC

  GROUP BY Cno;

 

HAVING 语句:作用于组,从中选择满足条件的组

  SELECT Sno

  FROM SC

  GROUP BY Sno

  HAVING COUNT(*)>3

  

连接查询:

1.等值与非等值查询:

2.自然连接

3.自身连接

4.外连接

  左外连接

  右外连接

  全外连接

嵌套查询:

  SELECT Sname

  FROM Student

  WHERE Sno IN

      (SELECT Sno

      FROM SC 

      WHERE Cno='2');

上面为父查询,下面为子查询。