码迷,mamicode.com
首页 > 数据库 > 详细

mysql常用命令整理

时间:2018-09-10 00:53:27      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:root   having   char   union和   like   key   主键   等于   sel   

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常用命令整理

标签:root   having   char   union和   like   key   主键   等于   sel   

原文地址:https://www.cnblogs.com/cwl-bj/p/9616039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!