1、操作数据库
create databases blk charset utf8; // 创建数据库并设置字符集
use blk ; //使用blk数据库
show databases ; // 查看有哪些数据库
drop database blk ; // 删除数据库
show create database blk ; // 查看创建数据库的语句
2、表的约束和创建
非空not null
自增长auto_increment
默认值default ‘value’
唯一约束unique
主键 primary key
外键:用来表示两个表之间的关系
use blk ;
create table emp(
id int not null auto_increment ,
name varchar(20) not null ,
sex varchar(6) default ‘男’,
phone int not null unique ,
addr varchar(30) ,
primary key (id)
) default charset utf8 ;
desc emp ;
3、操作表
insert into emp (id ,name , sex , phone ,addr ) value ( 1 , ‘张三’ ,’男’ ,’1350000000’ , ‘北京东城’) ;
insert into emp (name , sex , phone ,addr )
values
( ‘张三1’ ,’男’ ,’1350000001’ , ‘北京东城’) ,
( ‘张三2’ ,’男’ ,’1350000002’ , ‘北京东城’) ,
( ‘张三3’ ,’男’ ,’1350000003’ , ‘北京东城’) ,
( ‘张三4’ ,’男’ ,’1350000004’ , ‘北京东城’) ;
alter table emp rename emp2 ; 改表名
alter table emp modify name varchar(50) unique;
alter table emp change name name varchar(30); 修改字段的数据类型
alter table emp add money float not null after name ; 新增一个字段,放在哪个位置
alter table emp drop money; 删除某个字段
show create table emp ; #查看建表语句
desc emp;查看表结构
show tables;#查看所有的表
*delete from emp ; 删除整个表里的数据
*truncate emp ; #删除整个表里的数据
*delete清空的表自增长id还会继续增长
*truncate 清空的表自增长id从1开始,truncate速度比delete要快,因为truncate 是从磁盘上直接把数据删除,恢复不了。
4、 数据库权限:
flush privileges;#刷新权限
mysql数据的权限实质上都是在user表里控制的
grant #所有的权限 所有数据库下的所有表 用户 用户ip
grant all on *.* to 'lihy'@'localhost' IDENTIFIED BY '123456' with grant option;
密码 #有执行grant语句的权限
grant all on *.* to 'lihy'@'%' IDENTIFIED BY '123456' with grant option;
取消授权:
Revoke select on *.* from dba@localhost;
Revoke all on *.* from lihy@localhost;
5、 存储过程:
用于批量的造数据
delimiter $$; #为了改结束符
create procedure p_emp (num int)#代表要造多少条数据
BEGIN
DECLARE i int;
set i=0;
WHILE i<num do
insert into emp (name , sex , phone ,addr ) values ( CONCAT( '张三' , i ) ,'男' ,'1350000000' , '北京东城') ;
#CONCAT的作用是连接不同类型的数据 ,把字符串和数字拼接到一起
set i=i+1;
end WHILE;
End $$;
delimiter;
call p_emp (100) ; // 调用存储过程
6、union 与 union all
select id,name from emp union select id, t_name from teacher;
union 用来合并两条select语句的结果,两条select语句字段数量要一致,并且数据类型也要一致.
union 对查询结果去重
union all 对查询结果不去重,效率比较高。