DML和事务,操作表语句,简单查询

auto_increment, -- 自增长主键

DQL,DML,DDL

  • DQL 数据查询语言 -- 查

  • DML 数据操作语言 -- 增删改

  • DDL 数据定义语言 -- creat alter/drop....

  • 插入 insert into 表名(列名列表)values(值列表)****

  • 修改 update 表名 set 哪些列 [where 修改哪些行]****

事务

  • 事务:一组增删改(经过提交或回滚)set autocommit =false,commit提交,rollback回滚
  • 事务的四大特性(ACID):
  • A:原子性-->组成事务的增删改要么全成功,要么全失败
  • C:一致性-->一旦事务结束(提交或回滚过),数据保持一致状态
  • I:隔离性-->事务之间是互不影响的
  • D:持久性-->事务一旦提交,不能回滚
  • navicat默认是将所有增删改一次一提交
  • DML 增删改
  • DDL 自动以commit的方式结束事务
  • truncate 截断表(清空表DDL,不能回滚)与delete的区别就是能否回滚

MEL和事务

-- DQL 数据查询语言 -- 查
-- DML 数据操作语言 -- 增删改
-- DDL 数据定义语言 -- creat alter/drop....


-- 插入 insert into 表名(列名列表)values(值列表)****
-- 修改 update 表名 set 哪些列 [where 修改哪些行]****
-- 将student1表中的所有人age修改为30
update student1 set age = 30;

-- 将student1表中的身高1.6以上的人age修改为20
update student1 set age = 20 where height>1.6

-- 将student1表中名字是华安的人age修改为25
update student1 set age = 19 where stuname='华安'

-- 将student1表中2000-1-1以后出生的人年龄涨一岁age修改为25
update student1 set age= age +1 where birthday>'2000-1-1'

-- 将student1表中id9526以上的学员,性别修改为男
update student1 set gender = '男',age = age+2 where id > 9526

-- 删除
-- delete from 表名 [where 哪些行]

delete from student1 where age>10

-- 删除student2表中gender列的数据
update studnet1 set gender = null


-- and or
-- 将student2表
update sutdent2 set age = age+1
where stuname='bob' and age<10

-- null的影响:null不能作为比较条件

-- 事务:一组增删改(经过提交或回滚)set autocommit =false,commit提交,rollback回滚
-- 事务的四大特性(ACID):
-- A:原子性-->组成事务的增删改要么全成功,要么全失败
-- C:一致性-->一旦事务结束(提交或回滚过),数据保持一致状态
-- I:隔离性-->事务之间是互不影响的
-- D:持久性-->事务一旦提交,不能回滚
-- navicat默认是将所有增删改一次一提交
-- DML 增删改
-- DDL 自动以commit的方式结束事务
-- truncate 截断表(清空表DDL,不能回滚)与delete的区别就是能否回滚

-- 取消自动提交
set autocommit =false
commit   -- 提交
rollback   -- 回滚
-- 提交(commit)

-- DML 增删改
-- DDL 自动以commit的方式结束事务

-- truncate 截断表(清空表DDL,不能回滚)
truncate table test1
delete from test1

-- 锁(没有提交的表,在其他表用时候无法进行操作)

-- 存档点和回档
insert into test1 values(1);
savepoint s1;
insert into test1 values(2);
rollback to s1;

-- 小结:
-- 建表(添加约束,默认值)
-- 增删改 
-- 事务的概念和4大特性

操作表语句

-- 创建表 create table
-- 删除表 drop table
drop table test1

-- 修改表alter table
-- ①修改列的长度
create table test2(
id int(5) auto_increment,
name varchar(200) ,
primary key(id)
)
alter table test1 modify id int(9);

-- ②修改列的数据类型(前提:修改列必须全为null和没有默认值)
alter table test1 modify id varchar(9);
-- ③添加删除约束
alter table test1 modify name int(9);
alter table test1 add primeary key(id);
alter table test1 add unique(name);
alter table test1 add foreign key(xxx) references class(xxx的列)

-- ④列和表的重命名
alter table test1 rename as test11

alter table test1 change id newid int(9);

-- ⑤添加或删除列
   -- 增加一列
alter table test1 add age int(3) default 0 not null
   -- 增加多列
alter table test1 add (age int(3) default 0 not null,age2 int(3) default 0 not null)

-- 删除一列
alter table test1 drop age;
alter table test1 drop column age1,drop column age2;


-- 小结
-- 添加或删除列
-- 修改列的数据类型及长度

简单查询

-- 简单查询
-- 1、查什么;2、从哪查
-- 可以查列,表达式...
-- 查询emp和dept表中所有数据
-- null参与运算结果一定为null
-- ifnull 若第一个参数为null,返回第1个参数,否则返回第二个参数
-- 表达式和函数一定要起别名
-- 列别名(在from前写)注意:①别名中有空格②特殊字符 用双引号
-- distinct 去重复,不显示重复数据
select deptno,loc,dname,dname  from dept
select * from emp

select empno,ename,sal,sal*1.2 from emp
-- ifnull 若第一个参数为null,返回第1个参数,否则返回第二个参数
select comm,ifnull(comm,0) from emp

-- 表达式和函数一定要起别名
-- 列别名,注意:①别名中有空格②特殊字符 用双引号
select comm,ifnull(comm,0) 年薪 from emp
select comm,ifnull(comm,0) "年 薪" from emp
select comm,ifnull(comm,0) "年 薪%" from emp

-- distinct 去重复,不显示重复数据
select distinct deptno from emp
select distinct job,deptno from emp

你可能感兴趣的:(DML和事务,操作表语句,简单查询)