coderABC

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DDL(Data Definition Language):数据定义语言

create、drop、alter、rename、truncate

-- 创建表
create table if not exists student(
id int not null auto_increment,         -- 自增
s_id varchar(20) not null unique,       -- 非空约束、唯一约束
s_name varchar(20) not null,
age int default 12,                     -- 默认值
sex enum('男','女') default '男',       -- 枚举
create_time datetime default current_timestamp,  -- 时间戳
update_time datetime default current_timestamp,
primary key(id)           -- 主键
)Engine = InnoDB;         -- 表引擎

-- 删除表
drop table student;  
-- 显示表结构
desc student;
-- 显示创建表的语句
show create table student;

-- 修改表  分为以下三种类型:
   -- 1、增、删、改字段
alter table student add address varchar(20);
alter table student drop address;
alter table student change column s_age age int default 12; -- 注意,修改字段会导致默认值的设定失效,若要保留默认值,需要明确设定
   -- 2、改字段类型
alter table student modify column s_id int not null; -- 修改字段会导致not null约束失效
   -- 3、增、删五大约束(primary key、foreign key、unique、not null、check)
	    -- 增、删加主键约束
alter table student add constraint primary key(id);
alter table student drop primary key id; -- 自增字段必须有唯一或者主键约束
			-- 增、删外键约束
alter table student add constraint fk_s_id foreign key(s_id) references stu_tea(s_id);
alter table student drop foreign key fk_s_id;
			-- 增、删唯一约束
alter table student add unique(s_id);
alter table student drop index s_id;
			-- 增、删非空约束
alter table student modify column s_id int not null; -- 同修改字段类型的语句一样
alter table student modify column s_id int; -- 修改字段类型会导致not null约束失效
			-- 增、删检查约束 (mysql允许使用check,但是并不产生效果)
alter table student add constraint check_age check(age>10 and age<25);
alter table student drop check_age;
-- 更改表名
alter table student rename student_1;
rename table student to student_1;
-- 完全清空一个表
truncate table student;

-- delete删除数据,保留表结构,可以回滚,如果数据量大,很慢
-- truncate 删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快
-- drop 删除数据和表结构以及约束,删除速度最快

 

DML(Data Manipulation Language):数据操作语言

insert、delete、update、select

 

-- 增、删、改、查
insert into student(s_id,s_name,age,sex) values('13477125','zcj',23,'男'); 
insert into student(s_id,s_name,age,sex) values('13477120','xcm',23,'男');
delete from student where s_id='13477120';  
update student set update_time = current_timestamp where s_name='zcj';
select * from student;

  

DCL(Data Control Language):数据控制语言

grant、revoke

Transaction Control:事务控制

commit、rollback、savepoint

 

触发器:

create trigger trigger_update before update on student for each row
begin
	set new.update_time = current_timestamp;
end
drop trigger trigger_update

  

 

posted on 2017-02-15 15:39  as798982083  阅读(205)  评论(0编辑  收藏  举报