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; ...
随机推荐
- 921. Minimum Add to Make Parentheses Valid
Given a string S of '(' and ')' parentheses, we add the minimum number of parentheses ( '(' or ')', ...
- OCP最新题库052考题解析及答案-第37题
37.USER1 grants SELECT, INSERT, and UPDATE privileges on USER1. EMP to USER2. SYS executes this comm ...
- P5283 [十二省联考2019]异或粽子 可持久化01Trie+线段树
$ \color{#0066ff}{ 题目描述 }$ 小粽是一个喜欢吃粽子的好孩子.今天她在家里自己做起了粽子. 小粽面前有 \(n\) 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 ...
- 海思hi35xx 开发学习(3):视频输入
视频输入(VI)模块实现的功能:通过 MIPI Rx(含 MIPI 接口.LVDS 接口和 HISPI 接口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据.V ...
- centos的 / ~ - 的意思
. 当前目录 .. 上一层目录 - 前一个工作目录,上一次操作的目录 cd - 会切换都上次你操作的目录 ~ 当前[用户]所在的家目录/ root的根目录
- Springboot第二篇:与前端fetch通信(附springboot解决跨域方法)
说到与前端通信,明白人都知道这章肯定会写两部分的东西啦. 关于后台 ①首先回顾前文,上一章环境搭建如图: ②我们在maven.example.controller下添加一个文件,并附上如图代码: ③: ...
- 128th LeetCode Weekly Contest Capacity To Ship Packages Within D Days
A conveyor belt has packages that must be shipped from one port to another within D days. The i-th p ...
- 矩阵&&高斯消元
矩阵运算: \(A\times B\)叫做\(A\)左乘\(B\),或者\(B\)右乘\(A\). 行列式性质: \(1.\)交换矩阵的两行(列),行列式取相反数. \(2.\)某一行元素都\(\ti ...
- VS中的DataPager分页
微软的DataPager分页功能很强大,不要设置数据库存储过程,只要添加个DataPager控件,关联下要分页的控件,简单设置就可以有不错的分页效果.当然要有更理想的效果还是要前台和后台处理下. wi ...
- java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
在重构项目的时候,遇到了mybatis的一个异常: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and ...