oracle——DDL
一、一些概念
定义:
主键--唯一标识一条记录,不能有重复的,不允许为空
外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空值
索引--该字段没有重复值,但可以有一个空值
作用:
主键--用来保证数据完整性
外键--用来和其他表建立联系(在添加数据时会做检查,关联表中没有的值是添加不进来的)
索引--是提高查询排序的速度
个数:
主键--主键只能有一个
外键--一个表可以有多个外键(比如:学生表、课程表、学生课程表,其中学生课程表就是两个主键,分别是学生表和课程表的外键,也是该表的组合主键)
索引--一个表可以有多个唯一索引
外键设置的作用:
外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
二、创建语句
创建表:
create table emp_dept(
empno number(4) primary key not null,--第一种方式创建主键
ename varchar2(10),
deptno number(2),
deptname varchar2(14)
);
comment on column emp_dept.empno is '用户编号';
comment on column emp_dept.ename is '用户名';
创建主键:
方式一:如创建表时,在主键字段定义时声明即可。
方式二:在创建表的最下面声明主键
create table emp_dept(
empno number(4) not null, --第一种方式创建主键
ename varchar2(10),
deptno number(2),
deptname varchar2(14),
constraint pk_emp_dept primary key ("empno ")
);
方式三:使用alert语句
alter table 表名
add constraint PK_字段名--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,'PK_字段名'就为约束名
primary key (字段名) --字段名同上
创建外键:
方式一:
create table sc(
sno char(5) constraint fk_student references student(sno),--写在属性定义里
cno char(5),
foreign key(cno) references course(cno),
grade number
);
方式二:
create table sc(
sno char(5),
cno char(5),
foreign key(cno) references course(cno),
grade number,
constraint fk_student foreign key(sno) references student(sno)
);
方式三:
alter table sc
add constraint fk_student foreign key(sno) references student(sno);
删除外键:
alter table drop constraint fk_student;
三、举例
创建student、course、stu_cou表,一个是学生表,一个是课程表,一个是学生课程关联表:
student:
create table student(
sno number(6) primary key not null,
sname varchar2(20)
);
course:
create table course(
cno number(6) not null,
cname varchar2(30),
constraint pk_course primary key (cno)
);
stu_cou
create table stu_cou(
sno number(6) not null ,
cno number(6) not null constraint fk_course references course(cno) on delete cascade,--级联查询
create_time Date default sysdate,
foreign key(sno) references student(sno) on delete cascade--级联查询
);
每个表插入一条数据
insert into student(sno,sname)
values(1,'bright');
insert into course(cno,cname)
values(1,'java');
insert into stu_cou(sno,cno)
values(1,1);
这些数据都是合法的,首先主键满足唯一约束条件,外键满足约束条件,此时,插入一条不合法数据
insert into stu_cou(sno,cno) values(1,2);

删除一条数据
delete from course;
会看到stu_cou表中数据都被删除了
oracle——DDL的更多相关文章
- Oracle ddl 和 dml 操作
ddl 操作 窗口设置用户权限的方法 Oracle的数据类型 按住Ctrl点击表名 ,可以鼠标操作 插入的数据需要满足创建表的检查 主表clazz删除数据从表设置级联也会一同删除 有约束也 ...
- 复杂一点的SQL语句:Oracle DDL和DML
DDL:对表或者表的属性进行了改变 create:创建表创建用户创建视图 创建表 create table student(id int,score int) ; student后面与括号之间可以有空 ...
- oracle ddl 与 dml
DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...
- Oracle DDL+DML+DCL实例
SQL语言共分为四大类: 数据查询语言DQL: 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块. 数据操纵语言DML: DML是“数据操纵语言”( Data ...
- oracle DDL(create、alter、drop)
一.创建表1.创建表CREATE TABLE <table_name>( column1 DATATYPE [NOT NULL] [PRIMARY KEY], column2 DATATY ...
- php 5.6 版本配置 oracle ddl
1. Windows版PHP内置了Oracle驱动,在ext目录下:php_oci8.dllphp_oci8_11g.dllphp_pdo_oci.dllLinux上如果自己编译的话则添加下面的con ...
- oracle DDL(数据定义语言)基本语句
--创建表格 create table production( ProductIdvarchar2(10), ProductNamevarchar2(20), ProductPricenumber( ...
- Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步。
Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步. ogg要实现的功能: 同步可以细化到单个表,满足特定的where条件rows同步,称号column同步. ...
- ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1
博文结构图如下: 一.环境描述以及注意事项 1.1 环境简介 IP 系统 Oracle版本 OGG版本 源端 172.16.10.16/36 RHEL6.5 oracle11204 12.1 目标端 ...
随机推荐
- java写入文件的几种方法小结
一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函 ...
- (转)linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top
衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换 ...
- SVN常见问题处理
1.SVN 提交时报错:Path is not a working copy directory (1)报这个错通常是因为这个文件夹或其上层文件夹不是checkout或update出来的. 使用S ...
- 【转】使用Memcached提高.NET应用程序的性能
在应用程序运行的过程中总会有一些经常需要访问并且变化不频繁的数据,如果每次获取这些数据都需要从数据库或者外部文件系统中去读取,性能肯定会受到影响,所以通常的做法就是将这部分数据缓存起来,只要数据没有发 ...
- Cadence Allegro小技巧-从外部文本文件添加文本
菜单“Add->Text”,然后在右侧Options栏设置好合适的Class and Subclass,Text block,然后在布板界面上点击鼠标左键,设置起始点,接着点击鼠标右键,在弹出的 ...
- ISE 中使用system generate
本文讲解简单的ISE中使用system generate,system generate基本使用规则在此不详细说明可以见博客http://blog.csdn.net/xiabodan/article/ ...
- 创建本地Ubuntu镜像
参考文档 http://www.howtoforge.com/local_debian_ubuntu_mirror 安装服务 : sudo apt-get install apt-mirror apa ...
- CentOS学习笔记--程序管理
程序管理 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为程序(process).程序是操作系统上非常重要的概念, 所有系统上面跑的数据都会以程序的型态存在.那么系统的程序有哪些状态?不同 ...
- Freezable 对象(WPF)
# Freezable 对象(WPF) # > Freezable 继承自 DependencyObject,同时添加了 Freezable 方法,用于冻结对象. --- ## 冻结对象 ## ...
- 【Qt】Qt之自定义搜索框【转】
简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 简述 效果 细节分析 Coding 源码下载 效果 ...