天天看點

MySQL 指令大全

net stop mysql --關閉

net start mysql --啟動

MySQL 指令大全

mysql -h 主機IP -P 端口 -u 使用者名 -p密碼

(1)-p密碼不要有空格

(2)如果沒有寫 -h 主機,預設本機

(3)如果沒有寫 -P 端口,預設3306

character set 字元集

collate 校對規則

預設 utf8_general_ci (不區分大小寫)utf8_bin(區分大小寫)

create database 資料庫名

建立資料庫 使用utf8字元集,并帶有校對規則為區分大小寫

eg.CREATE DATABASE xy_db03 CHARACTER SET utf8 COLLATE utf8_bin;

drop database 資料庫名

show databases;

show create database 資料庫名;

mysqldump -u root -p -B 資料庫1 資料庫2 > 路徑名 \檔案名.sql

eg.mysqldump -u root -p -B xy_db01 xy_db02 xy_db03 > D:\桌面\QQClientTest\Mysql.sql

source 路徑名(不要中文)\檔案名.sql

mysqldump -u root -p密碼 資料庫 表1 表2 > 路徑名(不要中文) \檔案名.sql

create table 表名

(

​ field1 datatype,

​ field2 datatype,

​ field3 datatype,

)charater 字元集 collate 校對規則 engine 存儲引擎;

eg.

drop table 表名;

alter table 表名 add 列名 資料類型;

alter table 表名 change column 原名 新名 資料類型;

alter table 表名 modify 列名 資料類型;

alter table 表名 drop 列名;

alter table 表名 character set 字元集;

rename table 表名 to 新表名;

desc table_name;

select * from 表名;

insert into 表名(column1,column2....)

​ VALUES(值1,值2...),(值1,值2...);

update 表名 set [列名1 = 值1,列名2 = 值2...] [where 條件] 注:沒有where條件預設全部設定

delete from 表名 [where 條件];

注:沒有where條件預設全部設定

select [distinct] * | {column1,column2...} from 表名;

注: | 表示或則,distinct 去重複 ,* 表示所有列,也可以指定 column1,column2...

select 列 as 别名 from 表名;

select * | {column1,column2...},(運算式) from 表名;

MySQL 指令大全

條件-where

MySQL 指令大全

select * from 表名 [where 條件] order by 列名 asc|desc;

預設升序asc/desc降序

函數-count

select count(*)|count(列名) from 表名 [where 條件];

傳回行的總數

函數-sum

select sum(列名1),sum(列名2)... from 表名 [where 條件];

傳回滿足where條件的行的和

函數-avg

select avg(列名1),avg(列名2)... from 表名 [where 條件];

傳回滿足where條件的列平均值

函數-max/min

select max(列名1), max(列名2)... from 表名 [where 條件];

傳回滿足條件的最大/最小值

select 列名1,列名2... from 表名 group by 列名 having 條件 注:不可以使用where

group by 對列進行分組

having 對分組後的結果進行過濾

MySQL 指令大全

select charset(列名) from 表名;

傳回字元串集

select concat(列名1,字元串,列名2...) from 表名;

連接配接字元串,将多個列和字元拼接成一列

select instr(列名/string ,substring) from 表名;

傳回substring在列名/string中出現的位置,沒有則傳回0

select ucase(列名) from 表名;

轉成大寫

select lcase(列名) from 表名;

轉成小寫

select left(string , length) from 表名

從string的左/右中取length個長度的字元顯示

select length(列名) from 表名;

傳回字元串長度

select replace(列名,search_str,replace_str) from 表名;

在列名中用replace_str替換search_str

select strcmp(列名1/string1,列名2/string2) from 表名;

比較兩個字付串的大小,大于1,小于-1,等于0

select substring(str,position,length) from 表名

從str的position[1開始計算]開始,取length個字元

select ltrim/rtrim/trim(列名) from 表名;

去除左/右/左右兩端的空格

MySQL 指令大全

select abs(列名) from 表名;

傳回列數值的絕對值

select bin(列名) from 表名;

傳回列數值的十進制;

select seiling\floor(列名) from 表名;

傳回向上\向下取整;

select conv(列名,原進制,現進制) from 表名;

傳回列的現進制

select format(列名,number) from 表名;

傳回列數值四舍五入後的number位小數位數

select least(列名1,列名2...) from 表名;

傳回列中每行的最小值;

select mod(列名,number) from 表名;

傳回列名數值對number求餘後的值;

select rand([seed]) from dual;

傳回随機數/有seed(數值)則傳回固定随機數

MySQL 指令大全

select current_data() from dual;

傳回目前的日期

select current_time() from dual;

傳回目前的時間

select current_timestamp() from dual;

傳回目前的時間戳(年月日 時分秒)

select now() from dual;

傳回目前時間(年月日 時分秒)

select date(列名(時間類型)) from 表名;

放回列的日期

select * from 表名 where date_add(列名,interval 數值minute) >= now();

傳回列時間加上數值後大于目前時間的行

select * from 表名 where date_sub(now(),interval 數值 year/month/day) <= 列名;

select datediff(列名1,列名2) from 表名;

傳回兩列差(天數差)/(時間差)

select year/month/day(列名) from 表名;

傳回列名時間的(年/月/日)

select unix_timestamp() from dual;

傳回從1970-01-01 00:00:00 到現在的秒數

select from_unixtime(時間戳,格式) from dual;

傳回格式的時間戳

select user() from dual;

傳回使用者@IP位址

select datebase();

傳回目前使用的資料庫名稱

select md5(str) from dual;

為字元串算出一個MD5 32位的字元串,(使用者密碼)加密

select password(str) from dual;

為str密碼加密(資料庫的密碼就是這種加密)

MySQL 指令大全

select if( 判斷,結果1,結果2) from 表名;

判斷為真傳回結果1,為假傳回結果2

select ifnull(列名,結果) from 表名

如果列值為空傳回結果,不為空傳回列的值

alter table 表名 add index [索引名] (列名);

alter table 表名 add unique [索引名] (列名);

alter table 表名 add primary key (列名);

create [unique] index 索引名 on 表名(列名);

alter table 表名 drop primary key;

alter table 表名 drop index 索引名;

drop index 索引名 on 表名;

SHOW INDEX FROM 表名

SHOW INDEXES FROM 表名

SHOW KEYS FROM 表名

DESC 表名

select * from 表1 left join 表2 on 條件

select * from 表1 right join 表2 on 條件

左連接配接表1全部顯示

右連接配接表2全部顯示

start transaction;

set autocommit = off;

savepoint 名

rollback 儲存點

沒有儲存點傳回開啟事務處

commit

隔離級别

髒讀

不可重複讀

幻讀

READ UNCOMMITTED

可能

READ COMMITTED

×

REPEATABLE READ

SERIALIZABLE×

select @@tx_isolation

select @@global_isolation

SET SESSION TRANSACTION ISOLATION LEVEL 級别

SET GLOBAL TRANSACTION ISOLATION LEVEL 級别

transaction-isolation = 級别

create view 視圖名 as select語句

alter view 視圖名 as select語句

show create view 視圖名

drop view 視圖名1,視圖名2

foreign key (本表列名) references 主表名(列名)

本表列名作為列名的外鍵

create user '使用者名'@'允許登入位' identified by '密碼'

未指定@'允許登入位' 表示所有IP都可以登入 即遠端登入

指定@'xxx.xxx.xxx.%' 表示該IP字段可以登入

select * from mysql.user

drop user '使用者名'[@'允許登入位']

非% 需要指定登入位

set password = password('新密碼');

set password for '使用者名'@'登入位' = password('新密碼')

權限

意義

ALL [PRIVILEGES]

設定除GRANT OPTION之外的所有簡單權限

ALTER

允許使用ALTER TABLE

ALTER ROUTINE

更改或取消已存儲的子程式

CREATE

允許使用CREATE TABLE

CREATE ROUTINE

建立已存儲的子程式

CREATE TEMPORARY TABLES

允許使用CREATE TEMPORARY TABLE

CREATE USER

允許使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。

CREATE VIEW

允許使用CREATE VIEW

DELETE

允許使用DELETE

DROP

允許使用DROP TABLE

EXECUTE

允許使用者運作已存儲的子程式

FILE

允許使用SELECT...INTO OUTFILE和LOAD DATA INFILE

INDEX

允許使用CREATE INDEX和DROP INDEX

INSERT

允許使用INSERT

LOCK TABLES

允許對您擁有SELECT權限的表使用LOCK TABLES

PROCESS

允許使用SHOW FULL PROCESSLIST

REFERENCES

未被實施

RELOAD

允許使用FLUSH

REPLICATION CLIENT

允許使用者詢問從屬伺服器或主伺服器的位址

REPLICATION SLAVE

用于複制型從屬伺服器(從主伺服器中讀取二進制日志事件)

SELECT

允許使用SELECT

SHOW DATABASES

SHOW DATABASES顯示所有資料庫

SHOW VIEW

允許使用SHOW CREATE VIEW

SHUTDOWN

允許使用mysqladmin shutdown

SUPER

允許使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL語句,mysqladmin debug指令;允許您連接配接(一次),即使已達到max_connections。

UPDATE

允許使用UPDATE

USAGE

“無權限”的同義詞

GRANT OPTION

允許授予權限

grant 權限清單 on 庫.對象名 to ' 使用者名'@'登入位置' [identified by '密碼']

revoke 權限清單 on 庫.對象名 from ' 使用者名'@'登入位置'

韓順平講MySQL

MYSQL5.1 CHM版中文幫助文檔