mysql常用命令整理
Posted cwl-bj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql常用命令整理相关的知识,希望对你有一定的参考价值。
mysql常用命令格式(quit退出)
Int——floct —— varchar —— datetime(YYYY-MM-DD)(HH:ii:ss)
数据库操作
show databases;查看所有数据库
use tomcat;选择数据库
表操作
增
create table tgx(id int,name varchar(20),sex varchar(4),addr varchar(50),phone int);
create table tgx3(id int auto_increment primary key,name varchar(20),sex varchar(4) default ‘男‘,addr varchar(50),phone int unique);
表的创建格式,下面是带主键、默认值、唯一性约束
alter table tgx2 add sex varchar(20); 添加一个新的字段
删
drop database blk;删除表
alter table tgx2 drop addr;删除字段
改
alter table tgx2 modify sex varchar(20); 改字段数据类型modify
alter table tgx2 change sex xingbie varchar(20); 修改字段名称、数据类型change
查
Show tables;查看所有表
Desc tax; 查看表结构
字段操作
增
insert into tgx(id,name,sex,addr,phone)指定字段
values(1,‘陈卫亮‘,‘男‘,‘北京‘,17777777777);添加内容
标准格式添加字段
insert into test2 values(1,‘陈卫亮‘,‘男‘,‘北京‘,17777777777),( 1,‘陈卫亮‘,‘男‘,‘北京‘,17777777777),
多字段输入
删
delete from test2 where 字段=值;删除指定字段,不加where条件删除所有字段
truncate tablaname 表名称; 删除速度快,直接从磁盘删除,不可恢复
改
update 表名称 set 字段=值 where 字段=值
update test2 set money=90 where name=‘xixi‘;
查
= < > %通配符 _通配符(任意单个字符) !=(不等于<>) and(并且) or(或者) in(或者) like(模糊查询) limit(限定查询条数或者范围)
union(合并select结果,数据类型要一致,字段要相同)
查询tgx表中name=‘值
select*from tgx where name=‘陈卫亮‘;——指定条件查询
SELECT*from test2 where sex=‘男‘ and money<=200;
In用法
select*from test2 where name in (‘陈卫亮‘,‘陈红光‘);
SELECT*from test2 WHERE `name` in (‘陈卫亮‘,‘陈红光‘)AND money>1000;
like用法
select*from test2 WHERE name like ‘陈%‘;
select*from test2 WHERE name like ‘陈_‘;
between用法(在两个条件什么之间,数值类型的)
select*from test2 a where a.money between 100 and 1000;
order by(排序)
select*from test2 order BY id desc;(降序)
select*from test2 order BY id asc;(升序)
select*from test2 WHERE name=‘陈红‘ order BY id desc;
查询数据为空的一种是空 还有一种是is null
select*from test2 WHERE addr=‘‘; 查询为空的
select*from test2 WHERE addr IS NULL; 查询为null的
distinct(去重)
select distinct money from test2;
limit(限定查询条数或者范围,不顾头顾尾)
select*from test2 limit 3;
select*from test2 limit 0,5;
起别名
select phone 手机号from test2 where name=‘陈卫亮‘;
select phone 手机号,addr 地址 from test2 where name=‘陈卫亮‘;
phone 手机号 字段后面紧跟别名
聚合函数
count(统计行数)
SELECT COUNT(*) 学生人数 from test2 where sex=‘男‘;
Max(最大值)
SELECT MAX(money) 钱最多 from test2 ;
MIN(最小值)
SELECT MIN(money) 钱最少 from test2 ;
AVG(平均值)
SELECT AVG(money) 平均值 from test2 ;
SUM(总和)
SELECT SUM(money) 总和 from test2 ;
Group by(分组)
SELECT sex 性别,COUNT(*) 人数 from test2 GROUP BY sex;
SELECT sex 性别,`name` 姓名,COUNT(*) 人数 from test2 WHERE money>1000 GROUP BY id HAVING `name` LIKE ‘陈%‘;
如果group by 后面有条件的话,必须要用having子句,having子句里面用到的字段必须出现在select后面,如果group by和or
select *,count(*)from test2 group by sex,class; 多个字段分组
联表查询
union和union all区别后者会去重
select id,pwd from test3 union select id,dingdan from test4;
考勤表上午,下午打卡异常
多表查询(关联 两个共有的id)
select*from test2 a, test3 b where a.id=b.uid and a.name=‘陈卫亮‘;
select a.username 用户名,b.pwd 密码,c.dingdan 订单 from test2 a,test3 b,test4 c where a.id=b.uid and a.id=c.uid and a.username=‘陈卫亮‘;
查询三张表的三个字段
select*from test2 a,test4 b where a.id=b.uid;
标准多表关联(两边共有字段查出来)
select*from test2 a left join test4 b on a.id=b.uid;
左连接(会把左边表所有数据都查出来)
select*from test2 a right left join test4 b on a.id=b.uid;
右连接(会把右边表所有数据都查出来)
select*from test2 a inner join test4 b on a.id=b.uid;
内连接(两边公友的字段查出来和)
子查询
把一条sql的结果,作为另一条sql的条件
select*from test4 a where a.uid=(select id from test2 where username=‘陈卫亮‘)
plush privileges更改数据库配置后用来刷新权限
存储过程
造数据例子:
delimiter $$;
CREATE PROCEDURE big_data1(num INT)
begin
DECLARE i int;
set i=0;
WHILE i<num DO
insert into tgx(sex,addr) values (‘男‘,‘天津‘);
set i=i+1;
end WHILE;
End
$$;
Delimiter;
call big_data1(50);
备份数据库
在opt/lamp/bin目录下运行下面命令
Liunx命令 ./mysqldump –uroot –p123456 tgx > tgx.sql
-A(代表所有的数据库)
自动备份
新建文件自定义 vi bak_db.sh
Shell脚本
Time=date+%Y%m%d
mysqldump –uroot –p123456 -A > tmp/bak_sql/${time}_all.sql
echo “bakup sql ok”保存退出后添加权限chmod +x bak_db.sh然后执行./ bak_db.sh
以上是关于mysql常用命令整理的主要内容,如果未能解决你的问题,请参考以下文章