您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關MYSQL數據庫中的常用語句命令有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
MYSQL數據庫常用語句命令
1.啟動MySQL服務
net start mysql
2.登錄MySQL數據庫
mysql -u root -p #或者 mysql -h localhost -u root -p
3.數據庫查看刪除
# 查看所有的數據庫 SHOW DATABASES ; # 創建一個數據庫 CREATE DATABASE k; # 刪除一個數據庫 DROP DATABASE k; # 使用這個數據庫 USE k;
3.數據庫表查看與操作
# 查看數據庫所有的表 SHOW TABLES ; # 查看表的結構(以下五條語句效果相同) DESC n; # 因為簡單,所以建議使用 DESCRIBE n; SHOW COLUMNS IN n; SHOW COLUMNS FROM n; EXPLAIN n; # 創建一個表 CREATE TABLE n(id INT, name VARCHAR(10)); CREATE TABLE m(id INT, name VARCHAR(10), PRIMARY KEY (id), FOREIGN KEY (id) REFERENCES n(id), UNIQUE (name)); CREATE TABLE m(id INT, name VARCHAR(10)); # 直接將查詢結果導入或復制到新創建的表 CREATE TABLE n SELECT * FROM m; # 新創建的表與一個存在的表的數據結構類似 CREATE TABLE m LIKE n; # 創建一個臨時表 # 臨時表將在你連接MySQL期間存在。當斷開連接時,MySQL將自動刪除表并釋放所用的空間。也可手動刪除。 CREATE TEMPORARY TABLE l(id INT, name VARCHAR(10)); # 直接將查詢結果導入或復制到新創建的臨時表 CREATE TEMPORARY TABLE tt SELECT * FROM n; # 刪除一個存在表 DROP TABLE IF EXISTS m; # 更改存在表的名稱 ALTER TABLE n RENAME m; RENAME TABLE n TO m; # 查看表的創建語句 SHOW CREATE TABLE n;
4.數據庫表結構查看
# 添加字段 ALTER TABLE n ADD age VARCHAR(2) ; # 刪除字段 ALTER TABLE n DROP age; # 更改字段屬性和屬性 ALTER TABLE n CHANGE age a INT; # 只更改字段屬性 ALTER TABLE n MODIFY age VARCHAR(7) ;
5.數據庫表數據
# 增加數據 INSERT INTO n VALUES (1, 'tom', '23'), (2, 'john', '22'); INSERT INTO n SELECT * FROM n; # 把數據復制一遍重新插入 # 刪除數據 DELETE FROM n WHERE id = 2; # 更改數據 UPDATE n SET name = 'tom' WHERE id = 2; # 數據查找 SELECT * FROM n WHERE name LIKE '%h%'; # 數據排序(反序) SELECT * FROM n ORDER BY name, id DESC ;
6.數據庫表鍵
# 添加主鍵 ALTER TABLE n ADD PRIMARY KEY (id); ALTER TABLE n ADD CONSTRAINT pk_n PRIMARY KEY (id); # 主鍵只有一個,所以定義鍵名似乎也沒有什么用 # 刪除主鍵 ALTER TABLE n DROP PRIMARY KEY ; # 添加外鍵 ALTER TABLE m ADD FOREIGN KEY (id) REFERENCES n(id); # 自動生成鍵名m_ibfk_1 ALTER TABLE m ADD CONSTRAINT fk_id FOREIGN KEY (id) REFERENCES n(id); # 使用定義的鍵名fk_id # 刪除外鍵 ALTER TABLE m DROP FOREIGN KEY `fk_id`; # 修改外鍵 ALTER TABLE m DROP FOREIGN KEY `fk_id`, ADD CONSTRAINT fk_id2 FOREIGN KEY (id) REFERENCES n(id); # 刪除之后從新建 # 添加唯一鍵 ALTER TABLE n ADD UNIQUE (name); ALTER TABLE n ADD UNIQUE u_name (name); ALTER TABLE n ADD UNIQUE INDEX u_name (name); ALTER TABLE n ADD CONSTRAINT u_name UNIQUE (name); CREATE UNIQUE INDEX u_name ON n(name); # 添加索引 ALTER TABLE n ADD INDEX (age); ALTER TABLE n ADD INDEX i_age (age); CREATE INDEX i_age ON n(age); # 刪除索引或唯一鍵 DROP INDEX u_name ON n; DROP INDEX i_age ON n;
7.數據庫視圖
# 創建視圖 CREATE VIEW v AS SELECT id, name FROM n; CREATE VIEW v(id, name) AS SELECT id, name FROM n; # 查看視圖(與表操作類似) SELECT * FROM v; DESC v; # 查看創建視圖語句 SHOW CREATE VIEW v; # 更改視圖 CREATE OR REPLACE VIEW v AS SELECT name, age FROM n; ALTER VIEW v AS SELECT name FROM n ; # 刪除視圖 DROP VIEW IF EXISTS v;
8.數據庫聯接
# 內聯接 SELECT * FROM m INNER JOIN n ON m.id = n.id; # 左外聯接 SELECT * FROM m LEFT JOIN n ON m.id = n.id; # 右外聯接 SELECT * FROM m RIGHT JOIN n ON m.id = n.id; # 交叉聯接 SELECT * FROM m CROSS JOIN n; # 標準寫法 SELECT * FROM m, n; # 類似全連接full join的聯接用法 SELECT id,name FROM m UNION SELECT id,name FROM n;
9.數據庫函數
# 聚合函數 SELECT count(id) AS total FROM n; # 總數 SELECT sum(age) AS all_age FROM n; # 總和 SELECT avg(age) AS all_age FROM n; # 平均值 SELECT max(age) AS all_age FROM n; # 最大值 SELECT min(age) AS all_age FROM n; # 最小值 # 數學函數 SELECT abs(-5); # 絕對值 SELECT bin(15), oct(15), hex(15); # 二進制,八進制,十六進制 SELECT pi(); # 圓周率3.141593 SELECT ceil(5.5); # 大于x的最小整數值6 SELECT floor(5.5); # 小于x的最大整數值5 SELECT greatest(3,1,4,1,5,9,2,6); # 返回集合中最大的值9 SELECT least(3,1,4,1,5,9,2,6); # 返回集合中最小的值1 SELECT mod(5,3); # 余數2 SELECT rand(); # 返回0到1內的隨機值,每次不一樣 SELECT rand(5); # 提供一個參數(種子)使RAND()隨機數生成器生成一個指定的值。 SELECT round(1415.1415); # 四舍五入1415 SELECT round(1415.1415, 3); # 四舍五入三位數1415.142 SELECT round(1415.1415, -1); # 四舍五入整數位數1420 SELECT truncate(1415.1415, 3); # 截短為3位小數1415.141 SELECT truncate(1415.1415, -1); # 截短為-1位小數1410 SELECT sign(-5); # 符號的值負數-1 SELECT sign(5); # 符號的值正數1 SELECT sqrt(9); # 平方根3 SELECT sqrt(9); # 平方根3 # 字符串函數 SELECT concat('a', 'p', 'p', 'le'); # 連接字符串-apple SELECT concat_ws(',', 'a', 'p', 'p', 'le'); # 連接用','分割字符串-a,p,p,le SELECT insert('chinese', 3, 2, 'IN'); # 將字符串'chinese'從3位置開始的2個字符替換為'IN'-chINese SELECT left('chinese', 4); # 返回字符串'chinese'左邊的4個字符-chin SELECT right('chinese', 3); # 返回字符串'chinese'右邊的3個字符-ese SELECT substring('chinese', 3); # 返回字符串'chinese'第三個字符之后的子字符串-inese SELECT substring('chinese', -3); # 返回字符串'chinese'倒數第三個字符之后的子字符串-ese SELECT substring('chinese', 3, 2); # 返回字符串'chinese'第三個字符之后的兩個字符-in SELECT trim(' chinese '); # 切割字符串' chinese '兩邊的空字符-'chinese' SELECT ltrim(' chinese '); # 切割字符串' chinese '兩邊的空字符-'chinese ' SELECT rtrim(' chinese '); # 切割字符串' chinese '兩邊的空字符-' chinese' SELECT repeat('boy', 3); # 重復字符'boy'三次-'boyboyboy' SELECT reverse('chinese'); # 反向排序-'esenihc' SELECT length('chinese'); # 返回字符串的長度-7 SELECT upper('chINese'), lower('chINese'); # 大寫小寫 CHINESE chinese SELECT ucase('chINese'), lcase('chINese'); # 大寫小寫 CHINESE chinese SELECT position('i' IN 'chinese'); # 返回'i'在'chinese'的第一個位置-3 SELECT position('e' IN 'chinese'); # 返回'i'在'chinese'的第一個位置-5 SELECT strcmp('abc', 'abd'); # 比較字符串,第一個參數小于第二個返回負數- -1 SELECT strcmp('abc', 'abb'); # 比較字符串,第一個參數大于第二個返回正數- 1 # 時間函數 SELECT current_date, current_time, now(); # 2018-01-13 12:33:43 2018-01-13 12:33:43 SELECT hour(current_time), minute(current_time), second(current_time); # 12 31 34 SELECT year(current_date), month(current_date), week(current_date); # 2018 1 1 SELECT quarter(current_date); # 1 SELECT monthname(current_date), dayname(current_date); # January Saturday SELECT dayofweek(current_date), dayofmonth(current_date), dayofyear(current_date); # 7 13 13 # 控制流函數 SELECT if(3>2, 't', 'f'), if(3<2, 't', 'f'); # t f SELECT ifnull(NULL, 't'), ifnull(2, 't'); # t 2 SELECT isnull(1), isnull(1/0); # 0 1 是null返回1,不是null返回0 SELECT nullif('a', 'a'), nullif('a', 'b'); # null a 參數相同或成立返回null,不同或不成立則返回第一個參數 SELECT CASE 2 WHEN 1 THEN 'first' WHEN 2 THEN 'second' WHEN 3 THEN 'third' ELSE 'other' END ; # second # 系統信息函數 SELECT database(); # 當前數據庫名-test SELECT connection_id(); # 當前用戶id-306 SELECT user(); # 當前用戶-root@localhost SELECT version(); # 當前mysql版本 SELECT found_rows(); # 返回上次查詢的檢索行數
10.數據庫用戶管理
# 增加用戶 CREATE USER 'test'@'localhost' IDENTIFIED BY 'test'; INSERT INTO mysql.user(Host, User, Password) VALUES ('localhost', 'test', Password('test')); # 在用戶表中插入用戶信息,直接操作User表不推薦 # 刪除用戶 DROP USER 'test'@'localhost'; DELETE FROM mysql.user WHERE User='test' AND Host='localhost'; FLUSH PRIVILEGES ; # 更改用戶密碼 SET PASSWORD FOR 'test'@'localhost' = PASSWORD('test'); UPDATE mysql.user SET Password=Password('t') WHERE User='test' AND Host='localhost'; FLUSH PRIVILEGES ; # 用戶授權 GRANT ALL PRIVILEGES ON *.* TO test@localhost IDENTIFIED BY 'test'; # 授予用'test'密碼登陸成功的test@localhost用戶操作所有數據庫的所有表的所有的權限 FLUSH PRIVILEGES ; # 刷新系統權限表,使授予權限生效 # 撤銷用戶授權 REVOKE DELETE ON *.* FROM 'test'@'localhost'; # 取消該用戶的刪除權限
11數據庫備份與還原
# 數據庫備份 mysqldump -u root -p db_name > file.sql mysqldump -u root -p db_name table_name > file.sql # 數據庫還原 mysql -u root -p < file.sql
關于“MYSQL數據庫中的常用語句命令有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。