做爲前端雖然數據庫接觸的很少,但當使用時總記不住命令確實有點尷尬,遂作此筆記,以方便查閱。html
mysql -h localhost -u root -p //登陸 QUIT // 登出
ps: 又一次儲存emoji表情時,出現了一次報錯,由於UTF-8編碼有多是兩個、三個、四個字節,其中Emoji表情是4個字節,而Mysql的utf8編碼最多3個字節,因此致使了數據插不進去。
當時的解決方式是更改了某個表的字符集前端
ALTER TABLE tab-name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
註釋:utf8mb4的最低mysql版本支持版本爲5.5.3+mysql
數據庫查看sql
查看全部數據庫數據庫
SHOW DATABASES;
查看數據庫變量服務器
SHOW VARIABLES;
SHOW VARIABLES LIKE 'PORT';
查看可選字符: SHOW VARIABLES LIKE 'CHARACTER%';
ide
character_set_client 爲客戶端編碼方式; character_set_connection 爲創建鏈接使用的編碼; character_set_database 爲數據庫的編碼; character_set_results 爲結果集的編碼; character_set_server 爲數據庫服務器的編碼;
查看數據庫數據存放路徑編碼
SHOW VARIABLES LIKE '%DATADIR%';
數據庫操做code
建立數據庫server
CREATE DATABASE name [CHARACTER SET utf8 COLLATE utf8_general_ci];
修改數據庫
ALTER DATABASE name CHARACTER SET utf8;
查看建立數據庫語句
SHOW CREATE DATABASE name
刪除數據庫
DROP DATABASE name;
使用數據庫
USE database-name
顯示當前選擇
SELECT DATABASE();
數據表操做
建立數據表:
CREATE TABLE name ( column-name data_type, ... )
查看次數據表建立語句:
SHOW CREATE TABLE tab-name
查看次數據庫中的數據表:
SHOW TABLES;
查看次數據庫中的數據表:
DESC tab-name;
查看數據列:
SHOW COLUMS FROM tab-name;
插入數據:
INSERT tab-name [(column1,column2...)] VALUES (val1,val2...)
更新數據:
UPDATE tab-name SET column1 = val1 , column2 = val2 [WHERE expr = val]
外鍵添加:
FOREING KEY (column) REFERENCES tab-name (column)
查看數據:
SELECT * FROM tab-name;
SHOW INDEXES FROM tab-name
WHERE
,GROUP BY
(分組),HAVING
,ORDER BY
,LIMIT
]()修改數據表:
ALTER TABLE tab-name ADD column data-type [FIRST | AFTER column-name]
(添加多列-add後跟小括號,但無位置關係)ALTER TABLE tab-name DROP column-name
ALTER TABLE tab-name PRIMARY KEY (column-name)
ALTER TABLE tab-name DROP PRIMARY KEY
ALTER TABLE tab-name DROP {INDEX | KEY} index-name
ALTER TABLE tab-name ALTER column-name {SET DEFAULT default | DROP DEFAULT}
ALTER TABLE tab-name MODIFY column-name data-type [FIRST | AFTER column-name]
ALTER TABLE tab-name CHANGE old-name new-name data-type [FIRST | AFTER column-name]
清空數據表:
DELETE FROM tab-name;
TRUNCATE TABLE tab-name
刪除數據表:
DROP tab-name
數據表均用到了的爲sql語句查詢,語句參考
查看帳戶權限:
SHOW GRANTS; # 當前用戶權限 SHOW PRIVILEGES; # mysql 所支持的權限列表 SHOW GRANTS FOR user; # 查看某用戶
grant 權限名稱[字段列表] on [數據庫資源類型]數據庫資源 to MySQL帳戶1,[MySQL帳戶2] [with grant option]
*.* 表示全部數據庫,全部數據表'user'@'%' user 帳號能夠在任意的主機上進行登陸。
grant all privileges on *.* to 'supperuser'@'%' identified by 'password' with grant option;
將建立一個名字爲supperuser的帳號,擁有全部的數據庫權限,而且具備grant 權限,能夠建立其餘擁有服務實例權限的其餘用戶。
建立數據庫實例帳號
grant all privileges on database_name.* to 'user'@'%' identified by 'userpass' with grant option;
將建立一個名字爲user的帳號。擁有database_name 數據庫的全部權限,能夠隨該庫中的表進行全部操做。
grant all privileges on table tab_name.test to 'user'@'%' identified by 'userpass' with grant option;
將建立一個名字爲user 的用戶,對tab_name數據庫中test擁有全部的權限。
想要增長update, delete,alter 權限能夠以下操做:
grant update,delete,alter on database_name.* to 'user'@'%' identified by 'userpass' with grant option;
想要移除insert 權限:
revoke insert on database_name.* from 'user'@'%';
刪除用戶:
drop user user_name