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
//回收删除权限,需要重新登录