一. 数据库的操作:
1. 登录客户端:
mysql -u 用户名 -p 密码
mysql -uroot -pmysql
2.退出客户端:
exit / quit / ctrl +d
3.查看所有的数据库:
show databases;
4.使用数据库:
use database();
5.查看使用的当前的数据库:
select database();
6.创建数据库:
create database 数据库名 charset= utf8;
7.删除数据库:
delete database 数据库名
8.查看创建数据的语句:
show create database 数据库名 ;
9.备份和恢复:
mysqldump -u用户名 -p密码 数据库 > 目标文件
mysqldump -u用户名 -p密码 新数据库 < 目标文件
二. 数据表的操作:
1.查看当前数据库中所有的表:
show tables;
2.查看表的结构:
desc 表名;
3.创建表:
create table 表名 (字段 类型 约束);
其中:
4.修改表结构:
[1]添加字段: alter table 表名 add 字段 类型;
[2]修改字段:重命名 alter table 表名 change 旧字段 新字段 类型及约束;
不重命名 alter table 表名 modify 字段 类型及约束;
[3]删除字段:alter table 表名 drop 字段
5.删除表
drop table 表名;
6.查看表的创建语句:
show create table 表名;
三.数据库表数据的操作
1.增加--全列插入
insert into 表名 values(全部的字段对应的值);
其中主键字段 可以用 0, null, default 来占位;
--部分插入
insert into 表名 (列1,列2,...) values(值1, 值2,...);
--多行插入
insert into 表名
insert into 表名 (列1,列2,...) values(值1, 值2,...) , (值11,值22,...),....;
2.修改
update 表名 set 列1 = 值1 , 列2 = 值2 where 条件; 无where条件时 就是全部修改;
3.删除 -- 物理删除
delete from 表名 where 条件; 无where 条件时, 就是删除全部
-- 逻辑删除 : 用一个字段来表示这条信息是否已经不能再使用了, 增加一条is_delete 字段 bit shu类型
alter table 表名 add is_delete bit default 0 ;
update 表名 set is_delete=1 where 条件 ;
4. 查询
--查询所有列: select * from 表名;
--条件查询: select * from 表名 where 条件;
--制定列查询: select 列1, 列2 from 表名 ;
--可以使用as 作为字段的别名; select 列1 as 别名1 , 列2 as 别名2 from 表名;
--字段的顺序, 就是查询出来结果字段的顺序;
--消除重复列 , select distinct 列 form 表名;
--模糊查询 , select 字段 from 表名 where 字段 like "__%"; 其中 _ 表示一个字符, % 表示0个或者多个字符;
select 字段 from 表名 where 字段 rlike "正则表达式";
--范围查询 , select 列1 ,列2 from 表名 where 字段 in (在...非连续范围);
select 列1, 列2 from 表名 where 字段 between ..and ..; 在连续范围内
不在..非连续范围: not in (); 不在连续范围内 : not between ...and...
--排序查询, order by 字段 , asc 升序; desc 降序;
select 字段 from 表名 where 条件 order by 字段 asc/desc ;
order by 多个字段;
select 字段 from 表名 where 条件 order by 字段1 asc/desc ,字段2 asc/desc;
--聚合函数, 总数 count(); select count(字段) from 表名;
最大值/最小值:select max/min(字段) from 表名;
求和/ 平均数:select sum/avg(字段) from 表名;
四舍五入: select round(值,小数点后面数字个数) from 表名 ;
--分组, group by , 一般分组和 聚合函数一起结合使用;
select 字段1 , 函数(字段) from 表名 group by 字段;
函数group_concat(字段) 查询组内字段的值;
select 字段, group_concat(字段) from 表名 group by 字段;
having ,分组得到的结果进行条件判断;
select 字段 , group_concat(字段) from 表名 where 原表条件 group by 字段 having 分组后表条件;
--分页, limit start ,count
select 列 from 表名 limit count; 接一个参数的时候,限定查询个数
select 列 from 表名 limit start, count; 接两个参数的时候, 第一个是索引(从0开始),第二个查询个数
--链接查询 , inner join ...on
select 列 from 表名a inner join 表名b on 表a.列1 = 表B.列2;
--自关联 ,省级联动 url:http://demo.lanrenzhijia.com/2014/city0605/
-- 查询出青岛市有哪些县城
select * from areas as city inner join areas as province on city.pid=province.aid where
province.atitle="青岛市";
--子查询 , select * from 表a where 字段 = (select 函数(字段)from 表b);
------未完,待续--------