DDL数据库对象管理
DDL数据库对象管理
约束的分类:
主键约束:primary key 要求主键列数据唯一,并且不允许为空。
外键约束:foreign key 用于在两表之间建立关系,需要指定引用主表的哪一列。
检查约束:check 某列取值范围限制、格式限制等。 例如性别列
唯一约束:unique 数据的唯一性,可以空,但只能有一个
非空约束:not null 该列数据不能为空
注意:1.not null 约束只能在列级上定义。
2. 外键需要关联主键表的主键列或唯一列,这里关联唯一列
3. 创建外键表时:先创建主键表,在创建外键 。删除表时:先删除外键表,在删除主键表
1.创建表格
-- Create table 表格名称(列名 数据类型 约束 ,列名 数据类型 ,约束);
create table cla
(
clano number,
claid nvarchar2(20),
claname nvarchar2(20)
);
--在创建完列后,同时创建约束(列级约束)
例如:
create table T1(
id number constraint PK_T1 primary key, -- 声明约束可以使用constraint PK_T1指定约束名
NAME VARCHAR(20) constraint UN_T1_NAME unique NOT NULL, -- 唯一和非空
SEX CHAR(2) constraint CK_T1_SEX CHECK( SEX IN ('男','女')),
tid number constraint FK_T1_T references T(id)
);
--在创建完表格列后,在列下面创建约束(表级约束)
例如:
create table T2(
id number ,
NAME VARCHAR(20) not null, -- not null 只能定义在列的后面,称为列级约束
SEX CHAR(2),
tid number ,
constraint PK_T2 primary key(id), ---先定义列后编写的约束称为表级约束;
constraint UN_T2_NAME unique(name) ,
constraint CK_T2_SEX CHECK( SEX IN ('男','女')),
constraint FK_T2_T foreign key (tid) references T(id) -- 在表格后指定外键列时需要使用 foreign key指定外键列
);
--联合主键,联合唯一
create table T3(
ID NUMBER ,
SID NUMBER ,
NAME NVARCHAR2(20),
NAME2 NVARCHAR2(20),
constraint PK_T3 PRIMARY KEY(ID,SID), -- 联合主键
CONSTRAINT UN_T3_NAME_NAME2 UNIQUE(NAME,NAME2) -- 联合唯一
);
2.修改表格
--修改表格之添加主键,唯一约束,外键约束,检查约束
例如:
1.alter table cla add constraint PK_CLA primary key (CLANO);
2.alter table cla add constraint UN_CLA_CLAID unique (CLAID);
3.alter table STU add constraint FK_STU_CLA foreign key (CLASSID) references cla (CLANO);
4.alter table STU add constraint CK_STU_SEX check (sex in ('男','女'));
3.删除表格
语法: drop table 表格名称
注意:删除主键表前,需要先删除外键表上的引用关系
drop table cla2;
4. 查询表格 (不属于DDL)-----
select table_name from user_tables;
补充:
1 . references 和 reference 的区别
references 可以在定义列的同时引用主键表;reference不可以
2. 声明约束可以使用constraint PK_T1指定约束名
3. 外键需要关联主键表的主键列或唯一列
4.如果没有声明约束或指定约束名称,则系统会默认生成一个名称
DDL数据库对象管理的更多相关文章
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- (二)sql入门 管理数据库对象
在数据库里,有各种各样的对象,除了最常见的表之外,还有诸如视图.索引等数据库对象. 这些对象,在数据库里需要有人来管理,那么谁来管理呢?当然是数据库的使用者了.每个使用者相对于数据库里有一片区域,称为 ...
- [转]使用VS2010的Database 项目模板统一管理数据库对象
本文转自:http://www.cnblogs.com/shanyou/archive/2010/05/08/1730810.html Visual Studio 2010 有一个数据库项目模板:Vi ...
- MySQL提供了以下三种方法用于获取数据库对象的元数据
MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...
- 19.Mysql优化数据库对象
19.优化数据库对象19.1 优化表的数据类型应用设计时需要考虑字段的类型和长度,并留有一定长度冗余.procedure analyse()函数可以对表中列的数据类型提出优化建议.procedure ...
- oracle(创建数据库对象)
1 --创建数据库 2 --1.SYSDBA系统权限 3 startup:--启动数据库. 4 shutdown:--关闭数据库. 5 alter database[mount]|[open]|[ba ...
- 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
- Flyway, 数据库Schema管理利器
整天跟数据库打交道的程序员都知道,当数据库的Schema发生改变时是多么痛苦的事情.尤其是一个在不断开发完善的项目,随着需求变化,数据库的schema也会跟着变化,而追踪记录这些变化一向都是费时费力. ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数010,obj,对象管理
<zw版·Halcon-delphi系列原创教程> Halcon分类函数010,obj,对象管理 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...
随机推荐
- mac 安装oh-my-zsh的问题
安装完,如果想切换回mac原来的bash终端,可以: chsh -s /bin/bash 反之,切换回zsh: chsh -s /bin/zsh
- Java Collection Framework 备忘点
最顶端是两个接口,集合和映射—— Collection<T> / Map<K, V> List 列表 保持插入顺序 ArrayList 擅长随机读 LinkedList ...
- 5分钟记住列表的使用功能-Python基础前传(7)
学习任何一门技术,最重要的是逻辑而不是内容,仅会内容,我们仅仅是技术的使用者,但如果我们懂得了技术背后的逻辑,我们就是技术的创造者,所以同样领域的工作,有人月入5千,有人月入5万,就是这个差别: 学技 ...
- Solr 7.X 安装和配置--Linux篇
1. 关闭防火墙和Selinux 2. 安装所需环境JDK 3. 下载Solr7.4版本 4. 下载并配置solr的中文分词器IK Analyzer 5. 启动Solr 6. 注意事项以及说明 1. ...
- postgre-插入数据时的单引号问题
场景: 将一个HTML页面存储到数据库中 问题: HTML页面中既包含单引号也包含双引号 解决办法: 双单引号 INSERT INTO table VALUES ('<html><s ...
- 为什么使用Spring Boot
原文:https://dzone.com/articles/why-springboot 作者:Siva Prasad Reddy Katamreddy 译者:Oopsguy 本文将介绍各种 Spri ...
- Java同步数据结构之Map概述及ConcurrentSkipListMap原理
引言 前面介绍了CopyOnWriteArraySet,本来接着是打算介绍ConcurrentSkipListSet,无耐ConcurrentSkipListSet的内部实现其实是依赖一个Concur ...
- windows下使用eclipse远程编写hadoop配置
1.按照一般方法配置好hadoop伪分布式,注意core-site.xml和mapred-site.xml用IP,不要用localhost 2.格式化hdfs文件系统hadoop namenode - ...
- 22 Flutter仿京东商城项目 inappbrowser 加载商品详情、保持页面状态、以及实现属性筛选业务逻辑
加群452892873 下载对应21可文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展. cupertino_icons: ^0.1.2 flutter_swi ...
- 深入理解Flink ---- End-to-End Exactly-Once语义
上一篇文章所述的Exactly-Once语义是针对Flink系统内部而言的. 那么Flink和外部系统(如Kafka)之间的消息传递如何做到exactly once呢? 问题所在: 如上图,当sink ...