前言:

这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点。

我的教材是人大王珊老师的《数据库系统概论》。

因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试后我也没有继续整理)。

1. 模式 SCHEMA

CREATE SCEMA <模式名> AUTHORIZATION <用户名>;

eg:

CREATE SCEMA"S-T" AUTHORIZATION WANG;

Note:

用户可以在定义模式的同时创建基本表、视图,定义授权:

CREATE SCHEMA<模式名> AUTHORIZATION <用户名> [<表定义子句>|

<视图定义子句>|<授权定义子句>];

eg:

CREATE SCHEMA TEST AUTHORIZATION ZHANG

CREATE TABLE TAB1

( COL1 SMALLINT,

COL2 INT,

COL3 CHAR(20),

COL4 NUMERIC(10,3),

COL5 DECIMAL(5,2)

);

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

eg:

DROP SCHEMA ZHANG CASCADE;

Note:

CASCADE --> 级联 --> 连带将模式中的数据库对象都删除

RESTRICT -> 限制 --> 有下属数据库对象时,不删除

2. 表 TABLE

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

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

                          ...

                         [,<表级约束条件>]);

eg:

CREATE TABLE Course

( Cno CHAR(4) PRIMARY KEY,

Cname CHAR(20) UNIQUE,

Cpno CHAR(4),

Ccredit SMALLINT,

FOREIGN KEY (Cpn) REFERENCES Course(Cno)

);

Note:

1.PRIMARY KEY (Sno,Cno)

2.UNIQUE(Cname)

3.“主码”同时也可以是“外码”

4.“数据类型”见 P83

5.定义“表”所属“模式”:

显示给出模式名:

CREATE TABLE "S-T".Student(...);

显示当前搜索路径:

SHOW searched_path;

默认值:$user,PUBLIC

数据库管理员设置搜索路径:

SET searched_path TO "S-T",PUBLIC;

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

Note:
 1.CASCADE --> 级联 --> 连带将模式中的数据库对象都删除
    RESTRICT -> 限制 --> 有下属数据库对象时,不删除
 2.默认:RESTRICT

ALTER TABLE <表名>
[ ADD [COLUMN] <新列名> <数据类型> [完整性约束] ]
[ ADD <表级完整性约束> ]
[ DROP [COLUMN] <列明> <CASCADE|RESTRICT> ]
[ DROP CONSTRAINR <完整性约束名> [RESTRICT|CASCADE] ]
[ ALTER COLUMN <列名> <数据类型> ];

Note:
DROP [COLUMN] <列名> <CASCADE|RESTRICT> 中:
CASCADE --> 自动删除引用了该列的其它对象,如视图
RESTRICT -> 如果该列被其它对象引用,则不删除

3. 视图 VIEW

CREATE VIEW <视图名> [<列名>[,<列名>]...]
AS
<子查询>
[ WITH CHECK OPTION ];

eg:

CREATE VIEW IS_S1(Sno,Sname,Grade)

AS

SELECT Student.Sno,Sname,Grade

FROM Student.SC

WHERE Sdept='IS'

AND Student.Sno=SC.sno

AND SC.Cno='1';

Note:

1.WITH CHECK OPTION --> 对视图进行数据操纵(UPDATE、INSERT、DELETE)

操作时要保证更新、插入、删除的行满足视图定义中<子查询>表达式

2.属性列名要么全指定,要么全省略

省略时默认由<子查询>中各个列的诸字段组成

以下3种情况必须显示指出视图的所有列名:

1) <子查询>中对应的列名是聚集函数或列表达式

2) 多表连接时,选出的视图字段在多个表中是同名字段

3) 需要在视图中为该列启用新的名字

DROP VIEW <视图名> [CASCADE];

eg:

DROP VIEW IS_S1 CASCADE;

Note:

CASCADE --> 级联 --> 将由该视图导出的所有视图都删除

SQL语句整理(二) 数据定义语言DDL的更多相关文章

  1. MySQL之数据定义语言(DDL)

    写在前面 本文中 [ 内容 ] 代表啊可选项,即可写可不写. SQL语言的基本功能介绍 SQL是一种结构化查询语言,主要有如下几个功能: 数据定义语言(DDL):全称Data Definition L ...

  2. ODPS SQL <for 数据定义语言 DDL>

    数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  3. <MySQL>入门三 数据定义语言 DDL

    -- DDL 数据定义语言 /* 库和表的管理 一.库的管理:创建.修改.删除 二.表的管理:创建.修改.删除 创建:create 修改:alter 删除:drop */ 1.库的管理 -- 库的管理 ...

  4. 30441数据定义语言DDL

    数据定义:指对数据库对象的定义.删除和修改操作. 数据库对象主要包括数据表.视图.索引等. 数据定义功能通过CREATE.ALTER.DROP语句来完成. 按照操作对象分类来介绍数据定义的SQL语法. ...

  5. SQLite基础-4.数据定义语言(DDL)

    目录 一.创建数据库 1. 创建方式 2. 数据库命名规范 二. 创建表 1. 基本用法 2. 数据表命名规范 3. 字段命名规范 三. 删除表 一.创建数据库 1. 创建方式 在第二章中我们讲了如何 ...

  6. oracle 数据定义语言(DDL)语法

    DDL语言包括数据库对象的创建(create).删除(drop)和修改(alter)的操作 1.创建表语法 create table table_name( column_name datatype  ...

  7. 【MySQL笔记】数据定义语言DDL

    1.创建基本表   create table <表名> (<列名><数据类型>[列级完整性约束条件]                                 ...

  8. SQL语句汇总(二)——数据修改、数据查询

    首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)  ...

  9. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

随机推荐

  1. redis 3.0 集群__监控警报工具(sentinel)

    参考文档 http://redis.readthedocs.org/en/latest/topic/sentinel.html 因为目前还处于开发阶段,就先不研究了,待续

  2. shell的算术运算

    变量的数值计算方法大致有双括号 (()), expr,  bc, $[ ] 例子1 注意:2**3表示2的3次方,a++表示先输出a自身的值,然后进行++的运算: --a表示先进行--的运算,然后再输 ...

  3. svn 冲突Skipped ‘inm/inm/templates‘ -- Node remains in conflict

    svn在删除后,提交,更新操作后可能会报, svn update inm/inm -r 1586 Updating ‘inm/inm‘: Password: Skipped ‘inm/inm/temp ...

  4. Git的一些用法(下)

    (4) 提交分支 提交分支命令 : 将本地的分支提交到 GitHub中; git push origin experiment (5) 分支合并移除 合并分支命令 : 合并分支之后, 分支中有的文件在 ...

  5. sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

    使用root 登录,然后执行: chown root:root /usr/bin/sudo chmod 4755 /usr/bin/sudo reboot

  6. day0203 (whil else)

    count = 0while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: pr ...

  7. 使用百度地图API查地理坐标

    在网络编程中,我们会和API打交道.那么,什么是API?如何使用API呢?本文分享了一下我对API的理解以及百度地图API的使用. API是"Application Programming ...

  8. linux中校验文件完整性(md5,sha1)

    经常在Linux下下载软件的人,一定会有一个良好的习惯:校验文件的hash,以确定文件的完整性甚至是安全性.我配置环境的时候也恰好用到了,笔者的是一个lubuntu的机子.这里我大致做个记录.(不了解 ...

  9. HashSet存储过程中如何排除不同的自定义对象?

    HashSet HashSet存储过程中如何排除不同的自定义对象? 先看一个小demo public class Demo1 { public static void main(String[] ar ...

  10. 第八次 Scrum Meeting

    第八次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/4/12 22:00 20min 大运村1号楼6F 附Github仓库:WEDO 例会照片 工作情况总结(4.12 ...