数据库 基本操作

# 数据定义语句
 - 模式 
   · 创建: CREATE SCHEMA
   · 删除: DROP SCHEMA
 - 表
   · 创建: CREATE TABLE
   · 删除: DROP TABLE
   · 修改: ALTER TABLE
 - 视图
   · 创建: CREATE VIEW
   · 删除: DROP VIEW
 - 索引
   · 索引: CREATE INDEX
   · 删除: DROP INDEX
   · 修改: ALTER INDEX


# 模式的定义与删除
 - 模式定义: CREATE SCHEMA <模式名> AUTHORIZATION <用户名>; //为用户定义一个XX模式
 
 - 在创建模式时,创建基本表、视图,定义授权
     CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>]
 
 - 删除模式: DROP SCHEMA <模式名> <CASECADE|RESTRICT>;
   · <CASECADE|RESTRICT> 二者必选其一
     CASECADE:级联 删除模式时,把该模式中的所有数据库对象全部删除
     RESTRICT:限制 如果该模式已定义下属的数据库对象则拒绝删除


# 基本表的定义、删除、修改
 - 定义:CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件] 
                             [,<列名> <数据类型> [列级完整性约束条件] ] 
                             ... [,<表级完整性约束条件>]);

 - 修改基本表 ALTER TABLE <表名> [ADD [COLUMN] <新列名> <数据类型> [完整性约束]]
                                 [ADD <表级完整性约束>]
                                 [DROP [COLUMN] <列名> [CASECADE|RESTRICT] ]
                                 [DROP CONSTRAINT <完整性约束名> [CASECADE|RESTRICT] ]
                                 [ALTER COLUMN <列名> <数据类型> ] ;
  · 删除时使用 STRICT 如果该列被其他对象引用 则拒绝删除该列
  · DROP CONSTRAINT 子句用于删除指定的完整性约束条件 
  · ALTER COLUMN 修改原有的列定义

 - 删除基本表 DROP TABLE <表名> [CASECADE|RESTRICT];


# 索引的建立、修改
 - 建立索引 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名> [次序] [,<列名> [次序]]...);
 - 修改索引 ALTER INDEX <就索引名> RENAME TO <新索引名>
 - 删除索引名 DROP INDEX <索引名>;


# 数据查询
 - 一般格式 SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] ...
            FROM <表名或视图名> [,<表名或者视图名>...] | (<SELECT语句>) [AS] <别名>
            [WHERE <条件表达式>]
            [GROUP BY <列名 1> [HAVING <条件表达式>]]
            [ORDER BY <列名 2> [ASC|DESC]]
  · DISTINCT 去掉重复元素
  · ORDER BY 排序:ASC 升序、 DESC 降序 
  · GROUP BY 将查询结果按一列或者多列的值分组,值相等的为一组


# 常用查询条件
 - 确定范围: BETWEEN AND, NOT BETWEEN AND
 - 确定集合: IN, NOT IN
 - 字符匹配: LIKE, NOT LIKE
   · 通配符 % _ 
     % : 任意长度的字符串 例如:a%b 以a开头b结尾
     _ : 任意字符串 
 - 空值: IS NULL, IS NOT NULL
 - 逻辑运算: AND, OR, NOT

# 聚集函数
 - 统计元组个数 COUNT(*)
 - 统计列中值个数 COUNT([DISTINCT|ALL] <列名>)
 - 统计列值总和 SUM([DISTINCT|ALL] <列名>)
 - 平均值 AVG([DISTINCT|ALL] <列名>)
 - 最大值 MAX([DISTINCT|ALL] <列名>)
 - 最小值 MIN([DISTINCT|ALL] <列名>)


# 查询例子
- 查询名字中第二个字为阳的学生的名字和学号
  SELECT Sname,Sno FROM Student WHERE Sname LIKE '_阳%'
- 查询计算机科学系年龄在20岁以下的学生姓名
  SELECT Sname FROM Student WHERE Sdept='CS' AND Sage<20;
- 查询一号课程学生平均成绩
  SELECT AVG(Grade) FROM CS WHERE Cno='1';
- 查询平均成绩大于等于90分的学生学号和平均成绩
  SELECT Sno,AVE(Grade) FROM CS GROUP BY Sno HAVING AVG(Grade)>=90;


面试题:https://segmentfault.com/a/1190000013517914

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值