连接数据库 cmd 进入mysql server的bin 文件夹下面
mysql -u用户名 -p密码 密码可以不填 然后直接输入
创建数据库 create database 数据库名;
切换数据库 use 数据库名; 切换回主目录 use mysql;
显示数据库 show databases; 显示数据库下的表 show tables;
删除数据库 drop database 数据库名;
desc 表名; 查看表定义
显示更详细的信息 show create table 表名 \G;
删除表 drop table 表名
修改表
修改字段 alter table 表名 modify [column] 字段 数据类型 [first/after col_name];
添加字段 add
删除字段 drop
first 表示添加在表的第一个字段之前
after col_name 表示指定添加在col_name字段之后
修改字段名 alter table 表名 change [column] old_column new_column_definition [first/after col_name];
modify change 都可以修改字段类型 change需要写两次 但是可以修改列名称
modify 修改字段类型
修改表名字
alter table 表名 rename [TO] 新表名
1.insert into 表名(field1,field2...fieldn) values (value1,value2...valuesn);
2.insert into emp values ('lisa','2-15-02-01','3000','2');
3.可为空字段 自增字段可以不insert
insert into emp (field2,field4) values (value2,value4);
一次性插入多条记录
insert into tablename (field1,field2... fieldn) values
(value1-1,value1-2...value1-n),
(value2-1,value2-2...value2-n),
(value3-1,value3-2...value3-n);
逗号分隔,最后用分号,可以插入大量的数据 网络开销
update tablename set field1=value1,field2=value2,...
where
MySQL 可以同时更新多个表中的数据
update t1,t2,...tn set t1.field1=value1,tn.fieldn=valuen
where ....
多表更新的语法用在根据一个表的字段 动态更新另外一个表的总段
delete from tablename where
一次删除多个表
delete t1,t2...tn from t1,t2...tn where
delete a,b from emp a,dept b
where a.deptno=b.deptno and a.deptno=3
where条件不加会删除所有记录 要小心
limit关键字
select ....[limit offset_start,row_count]
offset_start 记录的起始偏移量 默认起始偏移量为0
row_count 显示的行数
limit 经常和order by 一起配置使用来进行分页的显示
汇总操作
select [field1,field2,...fieldn] fun_name
from tablename
[where]
[group by] 进行分类聚合的字段
[with rollup] 分类聚合后的结果再汇总
[having] 过滤
fun_name 聚合函数 sum/count(*)/max/min
select deptno,count(1) from emp group by deptno;
统计各部门的人数 又要统计总人数
select deptno,count(1) from emp group by deotno with rollup;
条件过滤
having count(1)>?
in/not ni = != exists not exists等
select * from emp where deptno in (select deptno from dept);
union /union all
union all 是把结果直接合并在一起
union 是将union all 后的结果进行一次distinct 去重复记录
授予权限
grant select,insert on sakila.* to 'zl'@‘localhost’ identified by '123';
收回权限
revoke select,insert on sakila.* from 'zl' @'localhost';