1. 程式人生 > >mysql常用命令整理

mysql常用命令整理

run 所有 p12 限定 數據 create 新的 自動備份 pda

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