2019-03-21 表格的删改、表格数据的增删改、事务、简单查

2019-03-21  本文已影响0人  北街九条狗

表格的删改

 创建表 create table
-- 删除表 drop table
-- 修改表 alter table 
--          ①修改列的长度(modify 修改)
create table test1(
id int(5) auto_increment,
name varchar(200) default'张三',
PRIMARY KEY(id)
)

ALTER TABLE test1 MODIFY id int(9);
--          ②修改列的数据类型(前提:修改列全为null和默认值)
ALTER TABLE test1 MODIFY id varchar (9);
--      ③添加删除约束()
ALTER TABLE test1 MODIFY name varchar(200) not null;
create table test2(
id int(5),
name varchar(200)
)

ALTER table test2 add primary key(id);
ALTER table test2 add unique (name);
ALTER table test2 add foreign key ()

--          ④列和表的重命名(改表名rename,改列名change)
--          ⑤添加或删除列(删除 drop)

ALTER table test2 add age int(3) default 0 not null;

ALTER table test2 add (
age1 int(3) default 0 not null,
age2 int(3) default 0 not null
)
ALTER table test2 drop age;
ALTER table test2 drop  column age1,drop  column age2;

表格数据的增删改

-- DQL 数据查询语言--->查
-- DML 数据操作语言--->增删改
-- DDL 数据定义语言--->create alter drop 

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

-- 将student1 表中的身高1.9以上的人age 改为30

update student1 set age =20
where height >1.9;

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

-- 将student1 表中的出生在2000年后人age +1
update student1 set age =age+1
where birthday>'2000-1-1';

-- 将student1 表中id>9527的性别改为女 年龄+2
update student1 set age =age+2,gender='女'
where id>9527;


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

delete from student2 where age>10;

-- and or 
--
update student1 
set age=age+10
where stuname ='华安' or age<37;

事务

-- 事务:一组增删改(经过提交或回滚)
-- 事务有四大特性
-- A:原子性:组成事物的增删改要么全成功,要么全失败
-- C:一致性:一旦事务结束(提交或回滚过),数据保持一致性
-- I:隔离性:事务之间互不影响
-- D:持久性:事物一旦提交,不能回滚


-- navicat 默认是将所有增删改一次一提交
set autocommit =false-- 取消自动提交
commit-- 提交
rollback -- 回滚相当于撤销

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



-- truncate 截断表(清空表)因为是DDL,不能回滚数据
 truncate table test2
delete from test2


-- 锁
-- 存档点(savepoint s1)和回档点(rollback to s1)

简单查询

-- 简单查询
-- 1.查什么;2.从哪查
-- 可以查列,表达式
select 
from 

-- 查询emp和dept表中的所有数据
select deptno,loc,dname
from dept 

select * -- 代表所有列
-- null值参与运算结果一定为null
-- IFNULL(expr1,expr2) 若第一个参数不为null,返回第一个,否则返回第二个
select ename, sal,sal*1.2
from emp

-- 表达式和函数一定要起列别名
-- 列别名 表达式后+空格+(名字)
--          或 表达式后+as+(名字)
-- 注意:特殊情况下要加双引号
--           ①别名中有空格
--           ②特殊字符


-- distinct 去重(复)
-- 不显示重复数据,不是删除
select distinct depton
from emp
上一篇下一篇

猜你喜欢

热点阅读