DML,TCL,DDL,添加约束(032)

---------------------------------DML---------------------------------------------------------

一.操纵数据DML

1.数据库操纵语言:执行数据库的添加,更新,删除。DML依据一个集合构成一个被称为事务的逻辑单元

2.添加数据

语法结构:

insert into table[(col...)]

values (value1,value2,...)

3.指定列添加

实列:

insert into departments (department_id , department_name,manager_id,location_id) values(280,'Teaching',180,2000);

4.完全列的添加

insert into departments values

(280,'Teaching',180,2000);

5.插入带空值的行

隐式方法:省去列名

insert into departments

(department_id,department_name)

values(300,'A');

显示方法:在values中指定NUll

insert into departments

(department_id,department_name,

manager_id,location_id)

values(300,'A',null,null);

6.插入日期值

系统时间:sysdate

默认日期格式:21/8月/2019

指定如期格式:to_date('2019-8-21' ,

'yyyy-MM-dd')

7.复制表数据

字段的数据类型必须与复制表中的数据

类型一直

创建一个表:

create table emp(

id number not null,

name varchar2(50),

salary number(8,2),

commission number(2,2)

)

实列:

将employees表中的job_id中含有REP的

工作岗位的数据插入到emp表中

insert into emp(id,name,salary, commission ) select employee_id, last_name,salary,commission_pct from employees where job_id like '%REP%';

或者:

insert into emp select employee_id, last_name,salary,commission_pct from employees where job_id like '%REP%';

8.使用默认值

隐式使用默认值:

insert into emp (id,name) values(302,'kk')

显示使用默认值:

insert into emp values(302,'kk' default,null)

二.更新数据

1.语法结构

update table

set column=value1 ,column=value2

where condition

更新数据时要指明对哪一行数据更新,

否则会对每一行数据都更新

2.实列:

更新emp表中的id为170,将名字改为sb,薪水改为2000

update emp set id=170,name='sb',salary=2000 where id=170;

三.删除表中的数据

1.语法结构

delete [from] table

[where condition]

2.删除行数据

删除表中id为302的员工

delete from emp where id=302

3.删除的条件值可以是另一个表查询的结

果:

实列:

删除表中薪水与IT_PROG岗位相同的薪水

delete from emp where salary in (select distinct salary from employees where job_id='IT_PROG')

4.删除表中的全部数据

如果删除表不加条件,就会删除表中的所

有数据

delete emp;


----------------------------------------------TCL-----------------------------------------------------------------

一.事务

1.指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行

2.事务的特性

原子性:

事务中的操作要么不做,要么全做。

一致性:

一个事务应该保护所有定义在数据上的

不变的属性(例如完整性约束)。在完成

了一个成功的事务时,数据应处于一致

的状态。

隔离性:

一个事务的执行不被其他事务干扰。

持久性:

一个事务提交后,就存入日志文件中。

二.使用事务

commit  事务的提交

rallback 事务回滚

savapoint 设置回滚点

1.事务的类型

(1)显示事务

需要手动的提交事务和回滚,DML中

是所有事务的操作都是显示事务操

作。

(2)隐式事务

数据自动提交,不需要我们做任何处

理,同时也不具备回滚性。DDL,DCL

都是隐式事务操作。

2.事务提交

commit:执行一个DML语句时,此时数据

不会持久的存储在数据文件中,需要使

用commit 提交。

3.事务回滚

rollback:实行DML语句后,可以使用

rollback来撤销当前对表的操作

4.设置回滚点

savepoint 设置回滚点

rollback to  回滚到某个点


---------------------------------------DDL----------------------------------------------------------------------

一.DDL包括:

create,drop,alter,rename

二.创建表

1.语法结构:

create table 表名(

列名1,类型,

列名2,类型,

列名3,类型  )

2.数据库中的表

(1)用户表

由用户创建和维护的表的集合

包含用户的信息

(2)常见的数据字典表


3.用查询创建表

实列:

create table dept80 as select

employee_id,last_name,name,

salary,hire_date from  employees e

where e.department_id = 80;

三.修改表

1.添加一个新列

alter table 表名

add(列名 数据类型)

实列:

alter table dept add(salary number

(8,2));

2.修改一个表

(1)修改数据类型

alter table 表名

modify(列名 数据类型)

实列:

alter table dept modify (dname

varchar2(40));

(2)修改默认值

alter table dept modify(salary

number(8,2) default 1000);

alter table dept modify(salary

number(8,2) default null);

(3)修改列名

alter table dept rename column

dname to name;

3.修改表名

rename dept80 to dept90;

四.截断表

删除表中的所有的数据,但是保留表结

构。

在截断表时不能给定条件

截断表时隐式事务。

实列:

truncate table 表名;

五.删除表

drop table 表名


-----------------------------------------创建约束--------------------------------------------------------------------

一.约束类型

非空约束(NOT NULL)

    唯一性约束(UNIQUE)

主键约束(PRIMARY KEY)

外键约束(FOREIGN KEY)

用户自定义约束(CHECK)


二.第一约束原则

在创建表时创建和创建表后创建一个约

束,约束名唯一,没有起名字系统自定创

建SYS_Cn,n是个整数

三.not null

1.创建表时创建

直接在数据类型后加农田null

2.创建表后加约束

alter table 表名 modify 列名 not

null;

四.unique

1.建表时直接加unique,也可以起别名

create table dept90(id number

constraint dept90_uk unique,name

varchar2(20));

2.修改约束

alter table 表名 modify(列名

unique);

五.primary key

1.建表是加primary key

create table dept70(id number

constraint dept70_pk primary key);

2.修改主键约束

alter table 表名 modify(列名

constraint 主键名 primary key);

联合主键:

create table 表名(id number,name

varchar2(20),constraint 主键名

primary key(id,name));

六.foreign key

1.创建表是创建

create table 表名(id number,d_id

number,constraint 外键名 foreign

key(关联列) references 关联表(关联列));

2.创建后创建外键

alter table 表名 add constraint

外键名 foreign key(关联列) 

references 关联表名(关联列);

七.check

1.创建表时定义 CHECK 约束

示例

create table dept30(id number,salary

number(8,2) constraint dept30_ck

check(salary > 1000));

2.修改表定义 CHECK 约束

示例

alter table dept50 add constraint

dept50_ck check(salary > 1000);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,167评论 0 9
  • 1. 了解SQL 1.1 数据库基础 ​ 学习到目前这个阶段,我们就需要以某种方式与数据库打交道。在深入学习MyS...
    锋享前端阅读 1,038评论 0 1
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,066评论 0 0
  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 1,544评论 0 0
  • 在今天,莫谈明天 那时你又在谁的身边 诺言输了路边的石子 让你想起东街的咖啡馆 默契来的莫名其妙 在离开后不吵不闹...
    盛夏之颂阅读 97评论 0 1