net stop mysql --關閉
net start mysql --啟動
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsAjMfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CMwYjNzITOwYjN2QTNzYTMvwVOyATMxIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
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 表名;
條件-where
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 對分組後的結果進行過濾
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 表名;
去除左/右/左右兩端的空格
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(數值)則傳回固定随機數
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密碼加密(資料庫的密碼就是這種加密)
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版中文幫助文檔