前言:

这是我学数据库时整理的学习资料,基本上包括了所以的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. [BZOJ1935][SHOI2007]Tree 园丁的烦恼(树状数组)

    题目描述 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草. 有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思 ...

  2. 四大算法解决最短路径问题(Dijkstra+Bellman-ford+SPFA+Floyd)

    什么是最短路径问题? 简单来讲,就是用于计算一个节点到其他所有节点的最短路径. 单源最短路算法:已知起点,求到达其他点的最短路径. 常用算法:Dijkstra算法.Bellman-ford算法.SPF ...

  3. HTML-基础及一般标签

    HTML        内容 Hyper Text Markup Language  超文本标记语言(包含文本.表格.图片.声音.视频等,同时也是文档) HTML 元素指的是从开始标签(start t ...

  4. BZOJ2748 音量调节

    音量调节   Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开 ...

  5. Maven web项目(简单的表单提交) 搭建(eclipse)

    我们将会搭建一个,基于Maven管理的,具有简单的表单提交功能的web项目,使用DAO--service--WEB三层结构,服务器使用Tomcat 1 项目基本结构的搭建 左上角File---> ...

  6. Serical Port

    QextSerialPort 虽然这次不用写串口,但今后可能要用到的三方类库. 这个帖子下面普及了串口的概念.VC++模块的部分

  7. Dev中gridControl修改列为按钮

    (1)点击Run Designer (2)点击要修改的列,把列的ColumnEdit属性设置为RepositoryItemButtonEdit (3)把TextEditStyle属性设置为HideTe ...

  8. jQuery练习 | 复选框及编辑模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  9. 浅谈Cordova优缺点与环境部署(转载)

    浅谈Cordova优缺点与环境部署 作者:苏华杰 简介 Cordova是一个用基于HTML.CSS和JavaScript的,用于创建跨平台移动应用程序的快速开发平台.它使开发者能够利用iPhone.A ...

  10. (转)基于CentOS 7安装Zabbix 3.4和Zabbix4.0

    原文:https://blog.csdn.net/leshami/article/details/78708049 CentOS 7环境下Zabbix4.0的安装和配置实例-----------htt ...