MYSQL常用語法/指令

記錄MYSQL常用但是要用的時候都要另外google的語法

查詢是否有重複的資料 

SELECT * FROM {table_name} HAVING COUNT(*) > 1;

新增欄位

ALTER TABLE {table_name} ADD [column_name] VARCHAR(255) NULL DEFAULT '' AFTER [another_column_name] COMMENT '';

子查詢

SELECT *
FROM {table_name1}
WHERE [column_name1] IN
(
SELECT [column_name] FROM {table_name2}
);

建立索引

CREATE [UNIQUE] INDEX [column_name] ON {table_name} ([column_name]);


用root帳號登入

mysql -u root -p <密碼>

新增User

CREATE USER '<帳號>'@'localhost' IDENTIFIED BY '<密碼>';

設定帳號最高權限

GRANT ALL PRIVILEGES ON *.* TO 'account'@'localhost';

設定帳號存取my_db權限

GRANT ALL PRIVILEGES ON my_db.* TO 'account'@'localhost';

my_db設定CRUD權限

GRANT SELECT, INSERT, UPDATE, DELETE ON my_db.* TO 'account'@'localhost';

移除使用者權限

REVOKE ALL PRIVILEGES ON my_db.* FROM 'account'@'localhost';

重新載入權限

FLUSH PRIVILEGES;

刪除使用者

drop user '<account>'@'host';

備份資料表

mysqldump -u[username] -p[password] [database] {[table]} > [filepath]/[filename]

在linux一行指令下SQL語法

#-s 是靜默模式的標誌,因此 shell 的輸出較少。
#-N 防止從結果中輸出列名。
#-e 表示應該執行 -e 標誌後面的語句,然後退出 shell。
mysql -u[username] -p[password] [database] -sNe "[SQL語法]"