MySQL基本語句

一、DDL 語句(Data Definition Languages,數(shù)據(jù)定義語言)

這些語句定義了不同的數(shù)據(jù)段、數(shù)據(jù)庫、表、列、索引等數(shù)據(jù)庫對象。

1.創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE db_name;

2.刪除數(shù)據(jù)庫

DROP DATABASE db_name;

3.創(chuàng)建表

CREATE TABLE tb_name (
column_name_1   column_type_1   constraints,
column_name_2   column_type_2   constraints,
column_name_3   column_type_3   constraints,
...
column_name_n   column_type_n   constraints)

column_name 為列的名字, column_type 為列的數(shù)據(jù)類型, constraints 為列的約束條件。

4.查看表定義

DESC tb_name;

5.查看創(chuàng)建表的SQL語句

SHOW CREATE TABLE db_name;

6.刪除表

DROP TABLE tb_name

7.修改表

修改表的數(shù)據(jù)類型

ALTER TABLE tb_name MODIFY [COLUMN] column_name column_definition [FIRST | AFTER column_name];

增加表字段

ALTER TABLE tb_name ADD [COLUMN] column_name column_definition [FIRST | AFTER column_name];

刪除表字段

ALTER TABLE tb_name DROP [COLUMN] column_name;

修改字段名

ALTER TABLE tb_name CHANGE [COLUMN] old_column_name column_name column_definition [FIRST | AFTER column_name];

修改字段順序

[FIRST | AFTER column_name];

修改字段順序主要是通過 FIRST 和 AFTER,在其后指定字段名則是調(diào)整至該字段前一位或后一位,不指定字段名則是調(diào)整至最前或者最后。

更改表名

ALTER TABLE tb_name RENAME [TO] new_tb_name;

二、DML 語句(Data Manipulation Language,數(shù)據(jù)操縱語句)

1.插入記錄

INSERT INTO tb_name (field1, field2, ..., fieldn) VAULES(value1, value2, ...,valuen);

可空字段、非空但是含有默認值的字段、自增字段可以不列在字段列表中。

INSERT INTO tb_name VAULES(value1, value2, ...,valuen);

也可以不指定字段名稱,VALUES 順序和字段排列順序一致。

INSERT INTO tb_name (field1, field2, ..., fieldn) 
VAULES
(record1_value1, record1_value2, ...,record1_valuen),
(record2_value1, record2_value2, ...,record2_valuen),
...
(recordn_value1, recordn_value2, ...,recordn_valuen);

也可以同時插入多行的記錄。

2.更新記錄

UPDATE tb_name SET field1=value1, field2=value2, ..., fieldn=valuen [WHERE condition];

3.更新多個表中的數(shù)據(jù)

UPDATE tb_name1, tb_name2, ..., tb_namen SET tb_name1.field=value, ..., tb_namen.field=value [WHERE condition];

4.刪除記錄

DELETE FROM tb_name [WHERE condition];

5.刪除多個表中的數(shù)據(jù)

DELETE tb_name1, tb_name2, ..., tb_namen FROM tb_name1, tb_name2, ..., tb_namen [WHERE condition];

真正要刪除的記錄在 FROM 前的 tb_name 中,F(xiàn)ROM 后的 tb_name 是用于 WHERE 中的條件判斷。

6.查詢記錄

SELECT column_name FROM tb_name;

查詢不重復(fù)的記錄

在要查詢的 column_name 前添加字段 distinct

SELECT distinct column_name FROM tb_name;

條件查詢

SELECT column_name FROM tb_name WHERE condition;

排序

SELECT * FROM tb_name [WHERE condition] [ORDER BY field1 [DESC|ASC], field2 [DESC|ASC], ..., fieldn [DESC|ACS]];

DESC 表示按照字段進行降序排序, ASC 表示升序排序,不指定默認升序排序。

限制

SELECT * FROM tb_name [LIMIT offset_start, row_count];

offset_start 表示偏移量, row_conut 表示顯示的行數(shù)。

SELECT * FROM tb_name [LIMIT row_count];

只指定一個參數(shù)時,默認偏移量為0。

聚合

很多情況下,需要對一些數(shù)據(jù)進行匯總。

SELECT [field1, field2, ..., fieldn] function_name
FROM tb_name
[WHERE condition]
[GROUP BY field1, field2, ..., fieldn
[WITH ROLLUP]
[HAVING condition]];

function_name 表示要做的聚合操作,又稱聚合函數(shù)。常用的有 sum()、 count(*)、 max() 和 min()。

GROUP BY 關(guān)鍵字表示要進行分類聚合的字段。

WITH ROLLUP 表明是否對分類聚合后的結(jié)果進行再匯總。

HAVING 關(guān)鍵字表示對分類后的結(jié)果再進行條件的過濾。

注意:HAVING 和 WHERE 的區(qū)別在于,HAVING 是對聚合后的結(jié)果進行條件的過濾,而 WHERE 是對聚合前的記錄進行過濾。

表連接

需要同時顯示多個表中的字段的時候,通過表連接可以實現(xiàn),表連接分為內(nèi)連接外連接兩種。

內(nèi)連接選出兩張表中互相匹配的記錄。外連接會選出其它的記錄。

內(nèi)連接

SELECT field1, field2, ...,fieldn FROM tb_name1, tb_name2, ..., tb_namen [WHERE condition];

外連接

外連接分為左連接右連接

左連接:包含左邊表中的所有記錄,左邊表中某些字段的記錄在右邊表中有沒有匹配項會被顯示為空。

右連接:包含右邊表中的所有記錄,右邊表中某些字段的記錄在左邊表中有沒有匹配項會被顯示為空。

SELECT left_field, right_field FROM left_tb_name
LEFT JOIN right_tb_name ON condition;
SELECT left_field, right_field FROM right_tb_name
LEFT JOIN left_tb_name ON condition;

子查詢

查詢的時候,condition 需要的條件是另外一個 SELECT 語句的結(jié)果,稱為子查詢。

子查詢的關(guān)鍵字主要包括:IN、 NOT IN、 =、 !=、 EXISTS 和
NOT EXISTS 等。

記錄聯(lián)合

將兩個表的數(shù)據(jù)按照一定的查詢條件查詢出來后,將結(jié)果合并到一起顯示出來。關(guān)鍵字是 UNION 和 UNION ALL。

SELECT * FROM tb_name1 [WHERE condition]
UNION | UNION ALL
SELECT * FROM tb_name2 [WHERE condition]
...
UNION | UNION ALL
SELECT * FROM tb_namen [WHERE condition]

UNION ALL 是表示全部記錄,包括了多個查詢結(jié)果的重復(fù)記錄。如果希望去掉多個查詢結(jié)果的重復(fù)記錄,使用 UNION 關(guān)鍵字。

三、DCL 語句(Data Control Language,數(shù)據(jù)控制語句)

這些語句主要是 DBA 用于管理系統(tǒng)中的對象權(quán)限

1.權(quán)限控制

GRANT all ON db_name.tb_name TO 'user_name'@'host_name';
REVOKE all ON db_name.tb_name FROM 'user_name'@'host_name';
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容