MySQL总结(DDL、DML、TPL、DCL)

本文详细介绍了数据库操作的四大语言:DDL、DML、DQL和DCL,包括如何创建、修改和删除表,以及数据的增删查改。重点讲解了事务处理语言TPL,强调了事务的提交与回滚,以及其对数据可见性和锁机制的影响。此外,还涉及了权限管理,如用户的创建、权限的授予和回收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DDL(结构)->DML(数据)->DQL(查询 重点!!!)->DCL(权限)
->TPL(事务)

数据定义语言DDL

(Data Definition Language)负责数据库对象的定义
create:创建数据库对象(创建表结构)
alter:修改表结构
drop:删除表(彻底删除)
truncate:清空表数据保留表结构

create table 表名(
字段 数据类型及范围,
字段 数据类型
);

create table dept_xu(
deptno int,
dname varchar(10),
location varchar(12)
);

alter table 表名 add 字段名 类型;
//部门表中增加des varchar(20)

alter table dept_xu add des varchar(20);

alter table 表名 modify 字段名 新数据类型;

alter table dept_xu modify des char(10);
alter table dept_xu change des abc varchar(20);

alter table 表名 drop 字段;
//部门表中删除"描述"字段

alter table dept_xu drop abc;
drop table dept_xu;//删除表(彻底删除,删除表对象)

数据操纵语言:DML(Data Manipulation Language)
实现对表中数据进行增加、更新、删除操作
常用语句:[针对数据而言!!]
insert:增加数据
update:更新数据
delete:删除数据

insert into 表名 values(值1,值2);

insert into dept_xu values(10,"研发部","南京");

insert into 表名(字段1,字段2) values(值1,值2);

insert into dept_xu(deptno,dname,location) values(30,'销售部','无锡');

update 表名 set 字段=新值,字段=新值 where 条件;

update dept_xu set location='杭州' where deptno=40;

delete from 表名 where 条件;

事务处理语言:TPL

(Transaction Processing Language)
结合DML使用,用于进行确认和取消操作
常用语句:
commit:确认提交
rollback:回滚取消
savepoint:保存点,用于回滚到指定的保存点

事务的开始和终止
开始:事务开始于上一个事务的结束或第一条DML操作
终止:事务终止于显示操作(commit\rollback)

演示:
//会话默认是自动提交的,修改提交方式(不自动提交)
set autocommit=0;

步骤1:开启会话A,创建表并插入数据不提交
create table temp(
id int
);
set autocommit=0;
insert into temp values(1);

步骤2:开启会话B,查看表结构和数据
desc temp;
select * from temp;//Empty 数据未提交其他会话看不到

步骤3:会话A进行提交,会话B可以查询到数据
commit;//A
select * from temp;//1 B

步骤4:会话A更新数据不提交,会话B看不到数据修改
update temp set id=2;//A
select * from temp;//1 B

步骤5:会话A进行提交,会话B可以看到数据修改
commit;//A
select * from temp;//2 B

步骤6:会话A更新不提交,会话B删除数据不提交
update temp set id=3;//A

set autocommit=0;//B
delete from temp;//B 发生阻塞状态

步骤7:会话A提交,会话B结束阻塞状态
commit;//A

步骤8:会话B关闭,会话A更新不提交进行回滚
update temp set id=4;
rollback;
select * from temp;

总结:
1)事务内部数据的改变如果没有提交,只能在当前会话
中看到数据改变,其他会话中是看不到数据的改变的。
2)事务会对操作的数据进行加锁,不允许其他事务操作
3)如果进行commit提交,数据的改变得到了确认,其他
会话可以看到数据改变;数据上的锁被释放;保留数据的
临时空间被释放。
4)如果进行rollback回滚,数据的改变得到了取消;
数据上的锁被释放;保留数据的临时空间被释放。

数据控制语言:DCL

(Data Control Language)实现权限的授予和回收
常用语句:[权限有关!!]
create user:创建用户
grant:授予权限
revoke:回收权限

//切换数据库
use mysql;
//创建用户admin01 1234
create user admin01@‘localhost’
identified by ‘1234’;
//给用户分配权限:操作哪个库的哪个表的哪些权限
grant all on jsd.* to admin01@‘localhost’;
//回收权限
revoke delete on jsd.* from admin01@‘localhost’;

DOS命令行方式登录
//找mysql下面bin
C:\MySQL\MySQL Server 5.5\bin
//地址栏输入cmd->回车
//登录
mysql -h localhost -u admin01 -p1234
//回收删除权限,需要重新登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值