SQL语句整理(二) 数据定义语言DDL
前言:
这是我学数据库时整理的学习资料,基本上包括了所以的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的更多相关文章
- MySQL之数据定义语言(DDL)
写在前面 本文中 [ 内容 ] 代表啊可选项,即可写可不写. SQL语言的基本功能介绍 SQL是一种结构化查询语言,主要有如下几个功能: 数据定义语言(DDL):全称Data Definition L ...
- ODPS SQL <for 数据定义语言 DDL>
数据定义语言:(DDL) 建表语句: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...
- <MySQL>入门三 数据定义语言 DDL
-- DDL 数据定义语言 /* 库和表的管理 一.库的管理:创建.修改.删除 二.表的管理:创建.修改.删除 创建:create 修改:alter 删除:drop */ 1.库的管理 -- 库的管理 ...
- 30441数据定义语言DDL
数据定义:指对数据库对象的定义.删除和修改操作. 数据库对象主要包括数据表.视图.索引等. 数据定义功能通过CREATE.ALTER.DROP语句来完成. 按照操作对象分类来介绍数据定义的SQL语法. ...
- SQLite基础-4.数据定义语言(DDL)
目录 一.创建数据库 1. 创建方式 2. 数据库命名规范 二. 创建表 1. 基本用法 2. 数据表命名规范 3. 字段命名规范 三. 删除表 一.创建数据库 1. 创建方式 在第二章中我们讲了如何 ...
- oracle 数据定义语言(DDL)语法
DDL语言包括数据库对象的创建(create).删除(drop)和修改(alter)的操作 1.创建表语法 create table table_name( column_name datatype ...
- 【MySQL笔记】数据定义语言DDL
1.创建基本表 create table <表名> (<列名><数据类型>[列级完整性约束条件] ...
- SQL语句汇总(二)——数据修改、数据查询
首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>) ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
随机推荐
- OCP题库变了,2018年052新题库-29题
29.In one of your databases: * The database default tablespace is EXAMPLE. * Deferred_segment_creati ...
- UIView之setNeedsDisplay与drawRect 和 setNeedsLayout与layoutSubViews
1.UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UI ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...
- NOI.AC省选模拟赛第一场 T1 (树上高斯消元)
link 很容易对于每个点列出式子 \(f_{x,y}=(f_{x,y-1}+f_{x,y}+f_{x,y+1}+f_{x+1,y})/4\)(边角转移类似,略) 这个转移是相互依赖的就gg了 不过你 ...
- MVC软件设计模式
Model(模型):负责数据维护 View(视图):负责向用户呈现数据 Control(控制):负责模型和视图之间的交互 应用:Struts就是基于MVC模式的架构
- 2018年10月19 手记 - 身为开发者的我de窘境
从10月1国庆过完节回来,那已经是7号了,之后便开始紧锣密鼓的筹划着接下来11月份的公司组织的对外活动,这边新来的产品对产品或者说对任务很是负责,并且策划了很多的方案,并且乐意站在我们开发的角度上去考 ...
- C#集合之集(set)
包含不重复元素的集合称为“集(set)”..NET Framework包含两个集HashSet<T>和SortedSet<T>,它们都实现ISet<T>接口.Has ...
- mongo嵌套查询
db.getCollection('TradeBookingRepresentation').find({uitid:'168282:20190214010009224', tradeVersion: ...
- Vue.js 项目开发学习路线图
1. 思维导图 源文件:Vue路线图.xmind 参考文献 [1]. VueJs2.0建议学习路线 - lavyun - 博客园 [2]. Vue学习路线图 - 个人文章 - SegmentFault ...
- NEXIQ 125032 USB Link Diesel Truck Diagnose Interface Introduction
What are the features of nexiq usb link? 1.Compatible with applications that diagnose engines, trans ...