1. 程式人生 > >MYSQL資料庫常用語句

MYSQL資料庫常用語句

資料庫複習

趁著放假時間,複習一下資料庫的使用。目標:
1. 提高自己的工作效率。
2. 拓寬自己的資料庫設計和優化思路。
3. 探索並補充新的知識。

資料庫命令列表

連線、檢視資料庫

命令 用途 示例 備註
mysql -uUSER -hHOST -pPORT -DDATABASE -p(PASSWORD) 終端下連線資料庫命令 mysql -u gamer -h localhost -p 3306 -D gamer2048 -p
1.賬戶密碼可以不寫,回車後採用非明文方式輸入密碼登入,避免被盜 2.連線本地資料庫HOST可以設為localhost 3.可以不選擇指定資料庫登入(登入後再選擇相應資料庫)
USE database 使用指定資料庫 USE gamer2048
1.相關命令:SHOW DATABASES 檢視有哪些資料庫
SHOW DATABSES 顯示可用的資料庫表 SHOW DATABASES
1.資料庫、表、列、使用者、許可權等的資訊資訊實際儲存在資料庫名為mysql&information_schema的資料庫中,使用這類命令時,實際是查詢這些資料庫的資訊
SHOW TABLES 顯示資料庫中可用的表 SHOW TABLES
SHOW COLUMNS FROM table 顯示指定表結構資訊 SHOW COLUMNS FROM user_info
1.MYSQL簡寫語句:DESCRIBE/DESC table
SHOW GRANTS 顯示使用者的安全許可權 SHOW GRANTS
1.檢視該使用者具備哪些操作許可權
SHOW STATUS 顯示伺服器狀態資訊 SHOW STATUS
SHOW CREATE DATABASE database 顯示建立特定資料庫的SQL語句 SHOW CREATE DATABASE gamer2048
SHOW CREATE TABLE table 顯示建立特定表的SQL語句 SHOW CREATE TABLE user_info
HELP SHOW 顯示允許的show語句 HELP SHOW 快速查詢show相關語句

補充:
1. SHOW命令有很多,要善於使用SHOW命令來檢視資料庫的整體資訊。
2. information_schema資料庫是MySQL自帶的,它提供了訪問資料庫元資料的方式。

檢索資料[SELECT]

命令 用途 示例 備註
SELECT column FROM table 檢索單個列 SELECT prod_name FROM products
1.資料的順序是無意義的,應使用ORDER BY子語句 2.可使用完全限定的表名和列名:SELECT products.prod_name FROM test.products
SELECT column1,column2 FROM table 檢索多列 SELECT vend_id,prod_name FROM products
1.返回資料列按先後語句中先後順序返回 2.逗號存在於列名之間,結尾不要有
SELECT * FROM table 檢索所有列 SELECT * FROM products
1.實際是使用了萬用字元(*) 2.列順序一般與列在表中定義的順序相同,但表模式變化可能會影響該順序 3.可以檢索出表中未知的列 4.避免使用該條語句從而降低效能

相同行過濾[DISTINCT]

命令 用途 示例 備註
SELECT DISTINCT column1 FROM table 檢索不同行(過濾作用) SELECT DISTINCT vend_id FROM products
1.DISCTINCT配合多個列時,作用於全部列,而不是區域性列(CAN NOT)

行數過濾[LIMIT]

命令 用途 示例 備註
SELECT column FROM table LIMIT num 返回不多於num行資料 SELECT prod_name FROM products LIMIT 5
1.num值設定超過資料的最大行數時,顯示所有資料
SELECT column FROM table LIMIT offsets, num 返回從offsets開始(含)的num行資料 SELECT prod_name FROM products LIMIT 0,1
1.offset引數指定行索引,而行索引從0開始,因此顯示第n行的資料時offset引數應設定為n-1
SELECT column FROM table LIMIT num OFFSET offsets 返回從offset開始(含)的num行資料 SELECT prod_name FROM products LIMIT 1 OFFSET 0
1.MYSQL5開始支援該語句=”SELECT column FROM table LIMIT offset, num”語句

排序[ORDER BY]

命令 用途 示例 備註
SELECT column1,column2 FROM table ORDER BY column1 排序單列 SELECT prod_price,prod_name FROM products ORDER BY prod_price
1.預設升序2.多個子語句時順序:SELECT->FROM->WHERE->ORDER BY->LIMIT
SELECT column1,column2 FROM table ORDER BY column1,column2 排序多列 SELECT prod_price,prod_name FROM products ORDER BY prod_price,prod_name
1.按語句列名順序先排序前面的列,該列值相同時排序後面的列
SELECT column1,column2 FROM table ORDER BY column1 DESC 指定排列方向,降序排列 SELECT prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name DESC
1.關鍵字位於列名後面,降序關鍵字DESC(descending order),升序關鍵字ASC(acending order,預設)2.MYSQL預設字典序排序(a與A相同),可配置

普通過濾[WHERE]

命令 用途 示例 備註
SELECT column1 FROM table WHERE column1 < high 簡單語句 SELECT * FROM products WHERE prod_price <= 10 ORDER BY prod_price DESC LIMIT 5
SELECT column1 FROM table WHERE column1 < high OR column2 > low 複合語句 SELECT * FROM products WHERE prod_price <= 10 AND vend_id = 1001
1.AND和OR語句組合多個WHERE子句 2.AND優先順序比OR優先順序高,先和AND組合起來在和OR語句組合起來 3.使用括號來改變優先順序:SELECT * FROM products WHERE (prod_price < 8 OR prod_price > 10) AND vend_id = 1001

WHERE子句操作符

操作符 用途 示例 備註
= 等於 SELECT * FROM products WHERE prod_price = 10 ORDER BY prod_price DESC
1.比較字串時需要單引號,比較值時不需要。例:prod_name=’addidas’2. 字串比較時預設不區分大小寫。例:’addidas’=’Addidas’ 為真
!= 不等於 SELECT * FROM products WHERE prod_price != 10 ORDER BY prod_price DESC
<> 不等於 SELECT * FROM products WHERE prod_price <> 10 ORDER BY prod_price DESC 同!=
> 大於 SELECT * FROM products WHERE prod_price > 10 ORDER BY prod_price DESC
>= 大於等於 SELECT * FROM products WHERE prod_price >= 10 ORDER BY prod_price DESC
< 小於 SELECT * FROM products WHERE prod_price < 10 ORDER BY prod_price DESC
<= 小於等於 SELECT * FROM products WHERE prod_price <= 10 ORDER BY prod_price DESC
BETWEEN num1 AND num2 範圍 SELECT * FROM products WHERE prod_price BETWEEN 5 AND 10 ORDER BY prod_price DESC 和AND配合,邊界均包含([low,high])
IS NULL 空值判定 SELECT * FROM vendors WHERE vend_state IS NULL 反義:IS NOT NULL
IN 範圍 SELECT * FROM products WHERE vend_id IN (1001,1005)
1.反義:NOT IN 2.逗號分隔兩個值,集合放在括號內 3.優點:速度通常比OR快;可以包含其它SELECT語句,使得能夠動態的建立WHERE語句
NOT 否定 SELECT * FROM products WHERE prod_price NOT BETWEEN 5 AND 10 ORDER BY prod_price DESC
1.MYSQL支援使用NOT對IN,BETWEEN和EXISTS和LIKE子句取反

萬用字元過濾[LIKE]

  1. 萬用字元用單引號(”)包含
  2. MYSQL不支援:[abc]、[\^abc]、[!abc]?
操作符 用途 示例 備註
% 替代一個或多個字元 SELECT * FROM vendors WHERE vend_state LIKE ‘%M’
_ 僅替代一個字元 SELECT * FROM vendors WHERE vend_address LIKE ‘5__ %’

正則表示式過濾[REGEXP]

  1. MYSQL僅支援正則表示式實現的一個很小的子集(不全支援)
  2. LIKE與REGEXP區別:LIKE匹配整個列值,REGEXP在列值內進行匹配(除非採用^和$定位符)。
  3. REGEXP匹配特殊字元時採用\\為前導,如’\.’匹配’.’字元,MYSQL自己解釋一個,正則表示式庫解釋另一個。
正則表示式匹配 用途 示例 備註
. 1個字元匹配
ad|bc 多組OR匹配,匹配其中一組字元 SELECT * FROM products WHERE prod_name REGEXP ‘JetPACK (1000|2000)’
1.注意字串中文字預設不區分大小寫(可配置)
[ab] 多個OR匹配,匹配其中一個字元
[a-z] 範圍匹配,匹配範圍內其中一個字元
[^ab] 否定匹配,不匹配任意其中一個字元
正則表示式重複元字元 用途 示例 備註
* 匹配0個或多個
? 匹配0個或1個
+ 匹配1個或多個
{n} 匹配n個
{n,} 匹配大於等於n個
{n,m} 匹配n個到m個
正則表示式定位符 用途 示例 備註
^ 文字開頭
$ 文字結尾
[[:<:]] 詞開頭 匹配含有開頭為a的詞的列:SELECT * FROM products WHERE prod_name REGEXP ‘[[:<:]]a’
[[:>:]] 詞結尾 匹配含有結尾為l的詞的列:SELECT * FROM products WHERE prod_name REGEXP ‘l[[:>:]]’
正則表示式匹配字元類 用途 示例 備註
[:album:] 字母和數字[a-zA-Z0-9]
[:alpha:] 字母[a-zA-Z]
[:upper:] 大寫字母[A-Z]
[:lower:] 小寫字母[a-z]
[:digit:] 數字[0-9]
[:xdigit:] 十六進位制數字[a-fA-F0-9]
[:space:] 空格在內的任意空白字元
[:print:] 任意可列印字元

計算顯示

對從資料庫檢索出的資料進行轉換、計算或格式化後返回給客戶端。
1. 計算欄位不實際存在於資料庫表中,是執行時在SELECT語句內建立的。
2. MySQL的函式不具備移植性,不同DBMS之前有差異,使用時需考慮移植問題。

欄位別名

命令 用途 示例 備註
AS關鍵字 欄位或值的替換名 便於客戶端呼叫

資料算術運算

實現加減乘除四則運算。例:SELECT order_item*item_price AS total_price FROM orderitems

資料拼接

函式 用途 示例 備註
Concat()函式 拼接多個列和字元 SELECT Concat(vend_id,’(‘,Trim(prod_price),’)’) AS list FROM products

文字處理函式

函式 用途 示例 備註
Upper() 字元轉換為大寫
Lower() 字元轉換為小寫
LTrim() 去除字串左邊空格
RTrim() 去除字串右邊空格
Trim() 去除字串兩邊空格
Length() 返回字串長度

時間處理函式

函式 用途 示例 備註
Now() 返回當前日期和時間
Date_Format() 返回一個格式化的日期或時間串 SELECT Date_Format(Date(Now()),’%Y%m%d’) AS time
Date() 返回一個日期時間的日期部分
Time() 返回一個日期時間的時間部分

數值處理函式

函式 用途 示例 備註
Mod() 餘數
Rand() 隨機數
Abs() 絕對值

聚集函式

  1. 聚集函式:執行在組上,計算和返回單個值的函式
  2. 如果要聚集不同值,配合DISTINCT關鍵字使用
函式 用途 示例 備註
SUM()
1.忽略值為NULL的行
COUNT() 行數
1.使用COUNT(*)對錶行數進行計數,不管表中值是否為NULL 2. 使用COUNT(column1)對特定列行數進行計數,忽略值為NULL的行
AVG() 平均值
1.忽略值為NULL的行
MAX() 最大值
1.忽略值為NULL的行
MIN() 最小值
1.忽略值為NULL的行

資料分組[GROUP BY]

  1. GROUP BY子句指示MySQL分組資料,然後對每個組而不是整個結果集進行聚集。
  2. GROUP BY子句可以包含任意數目的列(分組巢狀)。
  3. 如果GROUP BY子句巢狀分組,資料將在最後規定的分組上進行彙總。
  4. GROUP BY子句中列出的每個列都必須是檢索列或有效的表示式(但不能是聚集函式)。如果在SELECT中使用表示式,則必須在GROUP BY子句中指定相同的表示式。不能使用別名。
  5. 除聚集計算語句外,SELECT語句中的每個列都必須在GROUP BY子句中給出。
  6. 如果分組列中具有NULL值,則NULL將作為一個分組返回。如果列中有多行NULL值,它們將分為一組。
  7. WITH ROLLUP關鍵字,可以得到每個分組以及每個分組的彙總級別的值。
    例子:
    SELECT order_item,count(order_item*item_price) AS total_price FROM orderitems GROUP BY order_item;

分組過濾[HAVING]

  1. WHERE過濾行,HAVING過濾分組。
  2. WHERE在資料分組前進行過濾,HAVING的資料分組後進行過濾。
  3. HAVING支援所有WHERE操作符。

查詢巢狀(子查詢)

  1. 方法一:在WHERE子句中使用子查詢,一般與IN操作符一起使用。注意:SELECT語句具有與WHERE子句中相同數目的列(通常單列匹配)。
    例子: SELECT * FROM customers WHERE cust_id IN (SELECT DISTINCT cust_id FROM orders WHERE order_num in (SELECT DISTINCT order_num FROM orderitems WHERE prod_id = ‘TNT2’));
  2. 方法二:在SELECT語句中使用,建立計算欄位。
    例子:SELECT cust_name,(SELECT COUNT(*) AS cust_ordernum FROM orders WHERE orders.cust_id = customers.cust_id) FROM customers;

聯結

主鍵:表中標識每行。
外來鍵:其它表的主鍵,定義了兩個表之間的關係。
1. 使用WHERE子句聯結多個表,多個表每一行配對。[內部聯結]
例子:SELECT vend_name,prod_id,prod_price FROM products,vendors WHERE products.vend_id = vendors.vend_id ORDER BY vend_name,prod_id;

自聯結

與自身表進行聯結,使用表別名。
自聯結通常作為外部語句用來替代從相同表中檢索資料時使用的子查詢語句。雖然最終的結果是相同的,但有時候處理聯結遠比處理子查詢快得多。應該試一下兩種方法,以確定哪一種的效能更好。
1. 子查詢方法
SELECT prod_id FROM products WHERE vend_id IN (SELECT vend_id FROM products WHERE prod_id = ‘DTNTR’)
2. 自聯結方法
SELECT a.prod_id FROM products AS a, products AS s WHERE a.vend_id = s.vend_id AND s.prod_id = ‘DTNTR’

內部聯結/等值聯結[[INNER] JOIN]

平等的聯結關係。

SELECT vendors.vend_name,products.prod_name,products.prod_price FROM vendors INNER JOIN products ON vendors.vend_id = products.vend_id ORDER BY vendors.vend_name;

SELECT vendors.vend_name,products.prod_name,products.prod_price FROM products JOIN vendors ON vendors.vend_id = products.vend_id ORDER BY vendors.vend_name;

自然聯結

等值聯結中消除多次出現的列(被聯結的列)。
反義解釋:如果結果中出現了兩個相同的被聯結的列,則不是自然聯結。
方法:SELECT語句中不對多個表同時使用萬用字元*即可避免。

外部聯結[OUTER JOIN]

聯結包含了那些在相關表中沒有關聯行的行。
1.左外聯結和右外聯結可以通過顛倒左右兩邊表的順序達到互換而不改變結果。

型別 用途 示例 備註
LEFT OUTER JOIN 左外聯結 選擇左邊表中所有行,右邊表中沒內容的行使用NULL替代
RIGHT OUTER JOIN 右外聯結 選擇右邊表中所有行,左邊表中沒內容的行使用NULL替代
FULL OUTER JOIN 全外聯結 選擇兩邊表中所有行,表中沒內容的行使用NULL替代

交叉聯結[CROSS JOIN]

交叉連線不帶WHERE 子句,它返回被連線的兩個表所有資料行的笛卡爾積,返回到結果集合中的資料行數等於第一個表中符合查詢條件的資料行數乘以第二個表中符合查詢條件的資料行數。
.笛卡兒積:由沒有聯結條件的表關係返回的結果為笛卡兒積。檢索出的行的數目將是第一個表中的行數乘以第二個表中的行數。
例子:
SELECT c.cust_name,o.order_num FROM orders AS o CROSS JOIN customers AS c;
SELECT c.cust_name,o.order_num FROM orders AS o, customers AS c;

組合查詢[UNION]

組合多條SELECT語句查詢結果。

應用場景
1. 在單個查詢中從不同的表返回類似結構的資料。
2. 對單個表執行多個查詢,按單個查詢返回資料。(使用SELECT和多個WHERE子句可完成同樣工作,應用中從效能方面和維護性等方面考慮進行取捨)
規則
1. 由兩條SELECT語句或以上組合而成。
2. 每個查詢必須包含相同的列、表示式或聚集函式(順序不要求)。
3. 列的資料型別相容(DBMS可隱式轉換)。
4. 只能使用一條ORDER BY排序語句,並且位於最後一條語句之後。

型別 用途 示例 備註
UNION 去除重複行 SELECT * FROM products WHERE vend_id > 1003 UNION SELECT * FROM products WHERE prod_price > 10
UNION ALL 包含重複行 SELECT * FROM products WHERE vend_id > 1003 UNION ALL SELECT * FROM products WHERE prod_price > 10

SELECT子句順序

SELECT->FROM->WHERE->GROUP BY->HAVING->ORDER BY->LIMIT

改[UPDATE&SET]

  1. 謹慎使用,防止批量更新表中資料(多行),用WHERE語句限制。
  2. 如果用UPDATE語句更新多行,並且在更新這些行中的一行或多行時出一個現錯誤,則整個UPDATE操作被取消(錯誤發生前更新的所有行被恢復到它們原來的值)。使用IGNORE關鍵字可以遮蔽該規則(該關鍵字可以應用於DELETE等):UPDATE IGNORE table SET…
  3. 用於刪除某個列的值:SET c1=NULL。
  4. 設定多個列SET c1=v1,c2=v2。
    例子:UPDATE customers SET cust_email=’[email protected]’ WHERE cust_name = ‘XI’;

增[INSERT&VALUES]

  1. 總是使用列名。
  2. 使用LOW_PRIORITY關鍵字降低MYSQL處理該語句優先順序:INSERT LOW_PRIORITY INTO…
型別 用途 示例 備註
INSERT INTO table VALUES(…) 插入完整行 INSERT INTO customers VALUES(NULL, ‘Chen Xi Lin’, ‘Futian Distinct’, ‘Shenzhen’, ‘SZ’, 518034, ‘CHINA’, ‘BAIDU’, ‘[email protected]’)
1.避免使用,可維護性差,表結構更新時會失效
INSERT INTO table(c1,c2) VALUES(…) 插入行的一部分 INSERT INTO customers(cust_name) VALUES(‘Chen ADD’)
1.提倡使用
INSERT INTO table(c1,c2) VALUES(…),(…) 插入多行 INSERT INTO customers(cust_name) VALUES(‘Chen ADD’),(‘XI’)
1.之間用逗號分隔,一個圓括號內為一組資料2.相比使用多條INSERT語句,效能更優
INSERT INTO table1(c1,c2) SELECT c3,c4 FROM table2 插入來自其它表的資料。
1.不要求列名匹配,採用SELECT結果的列中的位置先後順序作為插入規則插入資料

刪[DELETE]

  1. 謹慎使用,防止批量刪除表中資料(多行),用WHERE語句限制。
    例子:DELETE FROM customers WHERE cust_name = ‘Chen add’;
  2. DELETE刪除整行資料,刪除某列的資料使用UPDATE語句。
  3. DELETE不需要列名或萬用字元。
  4. 刪除所有資料:DELETE FROM table,使用TRUNCATE table 效能更優(原因:刪除原來表並重新建一個一樣的表,而不是逐行刪除)

表操作

  1. IF NOT EXISTS語句修飾DROP/CREATE TABLE等。
  2. 主鍵可以由多個列組成,PRIMARY KEY(c1,c2)
  3. 3.
DROP TABLE IF EXISTS news_list;
CREATE TABLE IF NOT EXISTS news_list(
    news_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '新聞id',
    ts timestamp NOT NULL DEFAULT current_timestamp ON UPDATE current_timestamp COMMENT '最後一次操作時間戳',
    url VARCHAR(1024) NOT NULL COMMENT '新聞地址',
    redirect_url VARCHAR(1024) NOT NULL DEFAULT '' COMMENT '新聞重定向後地址',
    source_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '來自新聞源id',
    spider_time timestamp NOT NULL DEFAULT current_timestamp COMMENT '新聞抓取時間',
    title VARCHAR(1024) NOT NULL DEFAULT '' COMMENT '新聞標題',
    time VARCHAR(256) NOT NULL DEFAULT '' COMMENT '新聞釋出時間',
    editor VARCHAR(256) NOT NULL DEFAULT '' COMMENT '新聞作者',
    description TEXT NOT NULL COMMENT '新聞描述',
    page LONGTEXT NOT NULL COMMENT '新聞url內容',
    property TEXT NOT NULL COMMENT '新聞自定義屬性',
    PRIMARY KEY(news_id),
    FOREIGN KEY fk_source_id(source_id) REFERENCES news_source(source_id),
    UNIQUE KEY idx_url(url) using btree
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=UTF8 COMMENT '新聞資料表';
型別 用途 示例 備註
SHOW COLUMNS FROM table 查看錶描述 DESC table
CREATE TABLE table 建立表
ALTER TABLE table1 ADD c1 INT… 更新表結構,增加列
ALTER TABLE table1 DROP COLUMN c1 更新表結構,刪除列
ALTER TABLE table1 ADD CONSTRAINT fk FOREIGN KEY c1 REFERENCES table2(c2) 更新表結構,增加外來鍵
DROP TABLE table 刪除表
RENAME table1 TO table2 重命名錶
引擎型別 用途 示例 備註
InnoDB 支援事務處理引擎,不支援全文字搜尋
MyISAM 不支援事務處理引擎,支援全文字搜尋,效能高
MEMORY 功能等同於MyISAM,資料放於記憶體中,速度快

檢視

檢視指虛擬表,用於檢索。與包含資料的表不一樣,檢視只包含使用時動態檢索資料的查詢。

優點
1. 重用SQL語句。
2. 簡化複雜的SQL操作。
3. 使用表的組成部分而不是整個表。
4. 保護資料,限制表許可權。
5. 更改資料格式和表示。

型別 用途 示例 備註
SHOW CREATE VIEW view 檢視檢視建立描述 檢視所有:SELECT * from information_schema.VIEWS
CREATE VIEW view 建立檢視
CREATE OR REPLACE VIEW view 更新檢視 另一種方法:先DROP再CREATE
DROP VIEW view 刪除檢視

儲存過程

儲存過程是一條或多條MySQL語句的集合。

優點
1. 簡化複雜的SQL操作。
2. 批處理步驟不需編寫執行,防止出錯,安全。
3. 可維護性。
4. 提高效能。

型別 用途 示例 備註
SHOW CREATE PROCEDURE procedure 檢視儲存過程 檢視所有:SHOW PROCEDURE STATUS
CALL procedure(@v1,@v2) 呼叫儲存過程
CREATE PROCEDURE procedure(IN/OUT/INOUT v1) BEGIN … END 建立儲存過程
DROP PROCEDURE procedure 刪除儲存過程

遊標

在檢索出來的行中前進或後退一行或多行。
應用場景:特殊行處理。
1.MYSQL只能用於儲存過程和函式。

型別 用途 示例 備註
DECLARE curser1 CURSER FOR … 為某查詢結果建立遊標
OPEN curser1 開啟遊標
FETCH curser1 移動遊標
OPEN curser1 關閉遊標

觸發器[TRIGGER]

某條語句(或某些語句)在事件發生時自動執行。

應用場景:
1. 資料有效性判定。
2. 資料備份。
3. 自動執行某些操作。

  1. 響應的活動:DELETE/INSERT/UPDATE語句。
  2. 執行時間:BEFORE or AFTER關鍵字。

事務處理

可以用來維護資料庫的完整性,它保證成批的MySQL操作要麼完全執行,要麼完全不執行。

應用場景:語句執行過程中發生故障。
1. 事務(transaction)指一組SQL語句;
2. 回退(rollback)指撤銷指定SQL語句的過程;
3. 提交(commit)指將未儲存的SQL語句結果寫入資料庫表;
4. 保留點(savepoint)指事務處理中設定的臨時佔位符(placeholder),你可以對它釋出回退(與回退整個事務處理不同)。

使用者管理[USER&GRANT]

  1. 使用者USER建立、密碼更新、刪除;
  2. 使用者GRANT許可權檢視、更新、刪除;

TIPS

  1. DELIMITER 命令修改MYSQL命令列結束符,用於輸入內部含有;符號的語句集合。
  2. 所有MySQL變數都必須以@開始。

約定

  1. SQL語句分號(;)結尾;
  2. 所有SQL關鍵字使用大寫,所有列和表名使用小寫;(雖然MYSQL對關鍵字不區分大小寫)
  3. SQL語句分成多行排行,便於閱讀;(雖然MYSQL處理語句時忽略會所有空格)

相關推薦

MYSQL資料庫常用語句

資料庫複習 趁著放假時間,複習一下資料庫的使用。目標: 1. 提高自己的工作效率。 2. 拓寬自己的資料庫設計和優化思路。 3. 探索並補充新的知識。 資料庫命令列表 連線、檢視資料庫 命令 用途

常用Mysql資料庫操作語句大全

學習連結:https://www.cnblogs.com/picaso/archive/2012/05/17/2505895.html 零、使用者管理: 1、新建使用者: >CREATE USER name IDENTIFIED BY ‘ssapdrow’; 2、更改

mysql資料庫常用sql語句

資料庫可以用圖形化工具來實現一系列操作,這裡涉及一些cmd命令列 首先要配置好環境變數可以全域性操作命令,不然只能在mysql的安裝目錄下進行操作,這裡不再敘述 1. 進入資料庫:  mysql -u root -p (預設使用者名稱為root,這個與mysql安裝時的設

mysql資料庫sql語句的一些常用優化方法

轉載請標明出處: http://http://write.blog.csdn.net/postedit/71422526本文出自縌時針_ 1.應儘量避免在 where 子句中使用!=或<&g

MySql資料庫常用DDL語句 | 黃喬國PHP

在MySQL中我們有DDL、DML、DCL三種語句,我們看看MySQL的資料定義語言:DDL 一、資料庫相關 ①建立資料庫 create database [IF NOT EXISTS] db_name [character set utf8];②刪除資料庫 drop da

mysql資料庫常用sql語句

=================================資料庫===========================1、資料庫建立     CREATE DATABASE   test2、檢視所有資料庫      SHOW databases   3、檢視當前MyS

Mysql資料庫常用引擎的介紹

在Mysql資料庫中,常用的引擎主要就是2個:Innodb和MyIASM。這篇文章將主要介紹這兩個引擎,以及該如何去選擇引擎,最後在提一下這2種引擎所使用的資料結構是什麼。 首先介紹一下Innodb引擎。 Innodb引擎提供了對資料庫ACID事務的支援。並且還提供了行級鎖和外來鍵的約束。它

MySQL資料庫常用操作命令二

接上一篇的操作: 1.查詢相反條件:select   查詢欄位    from   表名    where   not   (查詢條件); 2.範圍查詢: 

MySQL資料庫常用命令大全

                                常用命令大全(持續更新) show databases;顯示所有資料庫

5.3 MySql資料庫_SQL語句

1. 【強制】不要使用 count( 列名 ) 或 count( 常量 ) 來替代 count( * ) , count( * ) 是 SQL 92 定義的標準統計行數的語法,跟資料庫無關,跟 NULL 和非 NULL 無關。 說明: count( * ) 會統計值為 NULL 的行,而 count( 列名

PHP操作MySQL資料庫常用函式

PHP操作MySQL資料庫常用函式 php操作mysql資料庫,俗稱天龍八步: 第一步:連線資料庫 第二步:判斷連線錯誤 第三步:選擇資料庫 第四步:設定字符集 第五步:準備SQL語句 第六步:執行併發送SQL語句 第七步:處理結果集 第八步:關閉連線

資料庫常用語句(日常填充)

從今天起要開始總結了,以前也記過筆記,但是記是記住了,但是沒有經常去用,只是停留在瞭解,那可不行,事實證明要經常練習,才不 會忘。 概念,這個東西確實很重要,這裡就不展示了,忘了或不會百度去! 1.in和not in 子句(具體用法如下) not in :說白了就是將age不是3

mySQL資料庫Sql語句執行效率檢查--Explain命令

原文連結:https://www.jianshu.com/p/ea3fc71fdc45 EXPLAIN Output Columns 列名 說明 id 執行編號,標識select所屬的行。如果在語句中沒子查詢或

MySQL常用語句合集(一)

MySQL的常用語句合集(一) 1.首先登入MySQL mysql 作用:登入mysql 格式:mysql 選項 選項: -u userName -p passWd -P port -h hostName -S file **工作模式** 互動模式:mysql -uroot

mysql資料庫常用知識點歸納

---------------------------資料庫常用儲存型別------------------------------ 字串型別:    CHAR(M)             &

mysql資料庫常用命令(一)

– 資料庫的操作 -- 連結資料庫 mysql -uroot -p mysql -uroot -pmysql -- 退出資料庫 exit/quit/ctrl+d -- sql語句最後需要有分號;結尾 -- 顯示資料庫版本 select version()

mysql資料庫sql語句備忘錄

Linux下載mysql安裝包:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz 1.mysql資料庫sql語句複製一個表的資料到另外一個表中 INSERT user_account ( mobil

Linux下操作MySQL資料庫常用命令

目錄 5.查詢表 9.退出 1.連線資料庫 mysql -u -root -p 輸入密碼 2.檢視資料庫 show databases;  3.開啟資料庫

mysql資料庫常用的一些基本命令

安裝 yum - y install mysql-servse 啟動mysql服務 service mysqld start 執行埠為3306 登陸 mysql -uroot 語法 :mysql -u賬號 -p密碼 預設是空密碼 庫和表 層次關係 庫--&

MySQL資料庫 sql語句及其含義

本文主要記錄常用sql語句及對應意義,有一定基礎可直接檢視使用,需要學習者,可轉向另一篇博文  1、查詢語句  SELECT id,stuName,age,sex,gradeName FROM t_student ; 查詢表中全部資料(返回全部欄