TCL语句 : 事物控制语句

--什么是事物 : 多种操作能够达到统一的结果

--在网上购买了一部电话

--1、查询是否有该电话的库存 ,将库存 - 1

--2、从银行卡中扣钱,a)查询卡中的钱是否足够 , 2)在银行卡中扣钱 , 3)将钱交给供货方

--3、已给物流、快递

-- 提交 / 回滚

事物控制的特性

--1、一致性  2、原子性  3、持久性  4、统一操作(隔离性)

一致性:指在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。

原子性:事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据改操作要全部执行,要么全部不执行。这种特性称为原子性。

隔离性:隔离性指并发的事务是相互隔离的。

持久性:持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。

DML语句:数据操作语言

数据操作语言 -- DML语句都需要提交或回滚

--增加  insert : 向表中插入数据   insert into 表名(列名1,列名2...) values(值,值...)

--向部门表中插入一条数据,部门编号是50, 部门名称 caiwu,部门所在地 beijing

insert into dept(deptno,dname,loc) values(50,'caiwu','beijing')

insert into dept values(60,'caiwu','beijing')

--null如何插入空值

--1、直接赋值

insert into dept(deptno,dname,loc) values(50,'caiwu',null)

--2、两个单引号

insert into dept(deptno,dname,loc) values(60,'caiwu',' ')

--3、在指定列名时,忽略要插入空的列

insert into dept(deptno,dname) values(60,'caiwu')

--将自己的信息插入到员工表中

select * from emp

select * from dept

insert into emp values (9527,'HUAAN','READER','7839','24-3月-2016',1000,200,null)

--插入时间

--隐式转换

--显式转换

--利用通配符进行插入

insert into dept (deptno,dname,loc) values(&a,'&b','&c')

--同时插入多条数据(多行)

create table emp1 as select * from emp where 1 = 2

create table emp2 as select * from emp where 1 = 1

select * from emp1

select * from emp2

--将emp表中部门号是30的员工插入到emp1中

insert into emp1

select * from emp where deptno = 30

--update : 修改表中的数据  update 表名 set 列名1 = 值1,列名2 = 值2,... ...列名n = 值 n

--where 条件必须要加

update emp set ename = 'heheng'

update emp set ename = 'heheng' where empno = 9527

--给员工表中'SMITH'的工资上调200

update emp set sal = sal + 200 where ename = 'SMITH'

--将'SMITH'调转到'KING'的同部门下

update emp set deptno =(

select deptno from emp where ename = 'KING')

where ename = 'SMITH'

--将'HUAAN'调到'SCOTT'同部门下,并且将领导设置为'SCOTT'

update emp set deptno =(

select deptno from emp where ename = 'SCOTT')

,mgr =

(select empno from emp where ename = 'SCOTT')

where ename = 'HUAAN'

--将员工的工资整体上调 2%

update emp set sal = sal*1.02

--修改'SMITH'同部门下的工资,按照10部门的平均工资+500修改,但是不包含'SMITH'

--数字500要写在表达式前面,子查询写在后面

update emp set sal = (500+

(select avg(sal) from emp where deptno = 10))

where deptno =

(select deptno from emp where ename ='SMITH')  and

(ename <> 'SMITH')

--delete : 删除表中的数据   delete [from] 表名 [where] --限定删除的数据

--将'SMITH'同部门的,工资比他高的全部删除

delete from emp where empno in(

select e.empno from emp e,(

select deptno,sal from emp where ename = 'SMITH') hh

where e.deptno = hh.deptno and e.sal > hh.sal)

DDL语句 : 数据定义语言

--create 语句  :   create table 表名(列名1 数据类型[default 值],列名2 数据类型[default]... ...列名n 数据类型[default])

--创建学生表

create table student(

--创建字段 学号  学号类型 数字型 长度为4位

scode number(4),

--创建姓名 字符型 长度是30位

sname varchar(30),

--创建生日

sbirthday date,

--创建身高

sheight number(3),

--创建性别

ssex char,

--创建班级

cno number(2) default 1

)

--向学生表中插入一条数据

select * from student

insert into student values(9527,'华安','24-12月-1999',180,'B',default,75.21)

--create table 表名 as 查询

--创建表内容是emp表中,部门号是10的部门

create table emp3 as select * from emp where deptno = 20

select * from emp3

--创建表 只有 ename, sal , sal*12字段

create table emp4 as select ename 姓名,sal 工资,sal*12 年薪 from emp

select * from emp4

--alter : 修改表属性  -- 修改对象属性

--alter table 表名 rename column 原名 to new 新名

--修改student表中 cno列名 为 sno

alter table student rename column cno to sno

--添加列

--向学生表中添加体重列

alter table student add (sweight number(3,1))

--修改列属性

alter table student modify(sweight number(4,1))

--添加默认值

--添加

alter table student modify sheight default (100)

--删除

alter table student drop(sweight)

思考 : 如果列中有数据 , 是否可以使用drop -- 没有确认提交 ,慎重慎重

alter table heihei drop(id)

select * from heihei

--删除(销毁)表

--drop 删除对象

--drop table 表名

drop table emp4

--截断

--truncate : 截断

--与delete的区别  1、delete属于DML语句 ,可以提交或回滚,truncate属于DDL语句,直接对源数据进行操作

--2、delete可以有条件,truncate没有条件

--3、是否释放空间

--4、从效率而言,truncate高于delete

--语法结构   truncate table 表名

truncate table student

select * from student

添加约束

在表的某一列上设定一个条件,防止无效的数据输入该列

--约束种类 :

--1、not null : 非空约束,不允许为空

--2、unique : 唯一键约束 ,该列中的值必须是唯一的,允许为空

--3、primary key : 主键约束,唯一的、不能重复的、且不能为空的,它的值可以确定表中的某一行记录

--4、foreign key : 外键约束,保证表与表之间的数据完整性,两个表A、B存在公共字段,

--如果这两个表的公共字段是A表的主键且是B表的外键,则A表和B表就可以关联

一般情况下,A表被称为父表,B表被称为子表

--1、子表的公共字段里的值的范围都是父表中的主键范围

--2、当父表里的某个值被子表里的外键所应用,此时不允许删除父表中的对应行

--3、check检查约束  :  在某一列上设定一个布尔表达式

delete from dept where deptno = 20

drop table student

--创建学生表,并为其中的字段添加约束

create table student(

--创建字段 学号  学号类型 数字型 长度为4位

scode number(4) primary key,

--创建姓名 字符型 长度是30位

sname varchar(30) not null,

--创建生日

sbirthday date ,

--创建身高

sheight number(3) check(sheight>0),

--创建性别

ssex char(4),

--创建班级

cno number(2) default 1 references calss (cno)

)

--创建外键表calss

create table calss(

cno number(2) primary key,

cname varchar(30) not null

)

--向学生表中插入一条数据

select * from student

select * from calss

insert into student values(9527,'华安','24-12月-1999',180,'男',1)

insert into calss values(1 ,'java')

insert into calss values(2 ,'web')

alter table student modify(ssex char(2))

insert into student (scode,sname,ssex)values(9529,'华梅','女')

--表级约束

--创建学生表

create table student(

--创建字段 学号  学号类型 数字型 长度为4位

scode number(4),

--创建姓名 字符型 长度是30位

sname varchar(30),

--创建生日

sbirthday date ,

--创建身高

sheight number(3),

--创建性别

ssex char(4),

--创建班级

cno number(2),

--添加约束关键字--constraint

constraint student_scode_pk primary key(scode),

constraint student_sname_uk unique (sname),

constraint student_sheight_ck check(sheight > 0),

constraint student_cno_fk foreign key(cno) references calss(cno)

)

--给表里的列添加约束

--创建学生表

create table student(

--创建字段 学号  学号类型 数字型 长度为4位

scode number(4),

--创建姓名 字符型 长度是30位

sname varchar(30),

--创建生日

sbirthday date,

--创建身高

sheight number(3),

--创建性别

ssex char(2),

--创建班级

cno number(2)

)

--给表里的列添加约束

select * from student

select * from calss

--给scode列添加主键约束

alter table student add constraint student_scode_pk primary key(scode)

--给sname列添加唯一约束

alter table student add constraint student_sname_uk unique (sname)

删除约束

--级联删除  cascade 关键字

alter table student drop constraint student_scode_pk cascade

--把班级表的主键删除,(有主外键关系的表)--测试级联删除的作用

alter table calss add constraint calss_cno_pk primary key(cno)

alter table student add constraint student_cno_fk foreign key(cno) references calss(cno)

insert into student values(9527,'coco','24-3月-2016','175','男',1)

alter table calss drop constraint calss_cno_pk  -- 此唯一/主键已被外键连接,删除失败

alter table calss drop constraint calss_cno_pk cascade  --删除成功,连带student外键一同删除

mysql的tcl语句_初识数据库(TCL语句)相关推荐

  1. 智慧树mysql章节答案免费_智慧树_初识数据库—Mysql_完整免费答案

    智慧树_初识数据库-Mysql_完整免费答案 更多相关问题 [单选题]以下各类人群中,蛋白质营养状况处于负氮平衡的是 [单选题]- Tom, why were you _____ from schoo ...

  2. mysql select 所有表_怎样用SQL语句查询一个数据库中的所有表

    展开全部 查询32313133353236313431303231363533e59b9ee7ad9431333431356639一个数据库中的所有表sql语句是show tables: 显示所有数据 ...

  3. mysql建立数据库需要注意什么_创建数据库的语句是什么 MySQL数据库使用教程

    创建数据库的语句是:[CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ];]. 本文操作环境 ...

  4. MySQL创建数据库得语句是什么_创建数据库的语句是什么

    创建数据库的语句是:[CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ];]. 本文操作环境 ...

  5. MySQL:环境搭建,初识数据库----Datawhale第一次打卡笔记

    SQL基础教程 声明:此博客内容整理自Datawhale打卡学习,且据打卡内容整理为笔记,转载请联系Datawhale及我本人授权,必须注明转载来源. 文章目录 Chapter 0 .环境搭建 0.1 ...

  6. 【MySQL 第17章_其他数据库日志】

    第17章_其他数据库日志 1.MySQL支持的日志 1.1日志类型 1.2日志的弊端 2.慢查询日志(slow query log) 3.1问题场景 3.2 查看当前状态 3.3 启动日志 3.4 查 ...

  7. 数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程

    数据库逻辑删除的sql语句 Structured Query Language (SQL) is famously known as the romance language of data. Eve ...

  8. 分布式mysql 不支持存储过程_分布式数据库VoltDB对存储过程的支持

    设计数据库架构 VoltDB是关系数据库产品.关系数据库由具有约束,索引和视图的表和列组成.VoltDB使用标准SQL数据库定义语言(DDL)语句来指定数据库架构.因此,为VoltDB数据库设计架构使 ...

  9. mysql附录建表_用CREATE TABLE 语句创建数据表

    用CREATE TABLE 语句创建数据表 用 CREATE TABLE 语句创建表.此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单.如我们在第 1 章中使用的 ...

最新文章

  1. f, (ax1, ax2) = plt.subplots(1, 2, figsize=(20,10)) //该句搭框架,确定输出1行x2列的图象,图片尺寸为20x10英寸
  2. Java 折半查询_java之折半查询
  3. Java中合成与继承的选择
  4. vs点击方法跳不到对于的地方_NBA总决赛G4直播:湖人vs热火,热火继续针对浓眉,能否扳平比分?...
  5. 【PAT甲级 - 1028】List Sorting (25分)(模拟,排序)
  6. c语言学习-输出9*9乘法口诀表
  7. Ubuntu 14.04 + nginx + php + mysql + phpmyadmin环境搭建,详细操作
  8. Linux进程管理内核API函数pid_task( )---根据pid获取task_struct
  9. php html转ubb,php实现转换ubb代码的方法
  10. 用大白菜制作linux启动盘制作工具,使用大白菜+FbinstTool制作多系统的启动盘
  11. 刀片服务器接显示器,刀片服务器的vga切换方法
  12. 领航机器人广告段子_医院机器人物流科技宣传广告语_段子网收录最新段子
  13. Excel/pandas遍历各表拼接并对具体列进行文本筛选
  14. hackinglab.cn脚本关之三
  15. 教学|3DSMAX制作爆炸粒子的技巧,游戏特效这么做
  16. ERP、OA、BPM是什么?这样搭配对企业管理有奇效!
  17. django框架全解
  18. 微服务架构下的软件测试实践
  19. Vert.x整合springboot
  20. (翻译)色彩饱和度影响用户效率的方式

热门文章

  1. C#中AES加解密和zip压缩
  2. leetcode系列-121. 买卖股票的最佳时机
  3. 严加安院士:我心目中的科学与艺术
  4. Vijos 1696-数与连分数【模拟】
  5. Real-time human pose recognition in parts from single depth images 中文翻译【译】【中译】微软kinect中用的算法
  6. 记录-关于微吼直播的对接
  7. 深入浅出之必须全面掌握的独立环境容器部署技术docker详解
  8. 格式转换解决手机内存小
  9. 国家开放大学 软件工程 行测4 满分的
  10. Dijkstra 求单源最短路径