SQL常用語句

在很多地方都需要操作數(shù)據(jù)庫,了解一些 SQL 語句有時(shí)十分必要,對(duì)于不是專門搞數(shù)據(jù)庫的人(比如我)來說,會(huì)一些基本操作就行了,比如選取數(shù)據(jù)、插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)等。這是一篇記錄 SQL 常用操作的筆記。

目錄

  • 選取數(shù)據(jù)(SELECT)
  • 插入數(shù)據(jù)(INSERT INTO)
  • 修改數(shù)據(jù)(UPDATE)
  • 刪除數(shù)據(jù)(DELETE)
  • 創(chuàng)建數(shù)據(jù)庫(CREATE DATABASE)
  • 刪除數(shù)據(jù)庫(DROP DATABASE)
  • 創(chuàng)建表(CREATE TABLE)
  • 刪除表(DROP TABLE)
  • 列出表(SHOW TABLES)
  • 從本地文件導(dǎo)入數(shù)據(jù)(LOAD DATA LOCAL INFILE)
  • 創(chuàng)建用戶(CREATE USER)
  • 更改用戶權(quán)限(GRANT)
  • 刪除用戶(DROP USER)

1.選取數(shù)據(jù)(SELECT):

SELECT 語句用于從表中選取數(shù)據(jù),結(jié)果以另一個(gè)表的形式被打印出來。

語法:

SELECT 字段名 FROM 表名稱 (WHERE 條件);

其中 WHERE 條件是可選的,如我需要從 test 表中選取 value 字段值為 1 的條目的 name 字段值,就要如下的語句:

SELECT name FROM test WHERE value=1;

2.插入數(shù)據(jù)(INSERT INTO):

INSERT 語句用于向表中插入新的行。

語法:

INSERT INTO 表名稱 VALUES (值1, 值2, ...);

如我需要向 test 表中插入 value 字段值為 1,name 字段值為 Ben 的行,我應(yīng)該如下寫(假如 name 字段在 value 字段前面):

INSERT INTO test VALUES ("Ben", 1);

其中值的順序是有講究的,要和表中字段的順序一致,此語句會(huì)按照語句中值的順序依次向表中不同字段寫入數(shù)據(jù)。這里將“Ben”寫在 1 的前面是因?yàn)槲壹僭O(shè)了表中 name 字段在 value 字段的前面。

3.修改數(shù)據(jù)(UPDATE):

UPDATE 語句用于修改表中的數(shù)據(jù)。

語法:

UPDATE 表名稱 SET 字段名 = 新值 WHERE 條件;

假如表 test 中有一行數(shù)據(jù)為:name=”Ben”, value=1,我要把其中的 value 修改為 2,那么我要如下寫:

UPDATE test SET value = 2 WHERE name = "Ben";

4.刪除數(shù)據(jù)(DELETE):

DELETE 語句用于刪除表中的行。

語法:

DELETE FROM 表名稱 (WHERE 條件);

其中條件是可選的,如果不寫條件則會(huì)刪除表中的所有數(shù)據(jù)。假如我要?jiǎng)h除 test 表中字段 name 值為 “Ben” 的一行數(shù)據(jù),那么我要如下寫:

DELETE FROM test WHERE name = "Ben";

5.創(chuàng)建數(shù)據(jù)庫(CREATE DATABASE):

CREATE DATABASE 語句用于創(chuàng)建一個(gè)新的數(shù)據(jù)庫。

語法:

CREATE DATABASE 數(shù)據(jù)庫名;

登入數(shù)據(jù)庫以后,假如我要?jiǎng)?chuàng)建一個(gè)名為 test 的數(shù)據(jù)庫,那么我要如下寫:

CREATE DATABASE test;

創(chuàng)建數(shù)據(jù)庫以后使用 USE 語句選取數(shù)據(jù)庫進(jìn)行操作,語法如下:

USE 數(shù)據(jù)庫名;

選取成功后會(huì)有提示,如“DATABASE CHANGED”等,這時(shí)就可以對(duì)數(shù)據(jù)庫中的表進(jìn)行前面所說的 4 種操作了(寫的順序好像有點(diǎn)不對(duì)?)。

6.刪除數(shù)據(jù)庫(DROP DATABASE):

DROP DATABASE 語句用于刪除一個(gè)數(shù)據(jù)庫和它里面的所有表。

語法:

DROP DATABASE 數(shù)據(jù)庫名;

7.創(chuàng)建表(CREATE TABLE):

CREATE TABLE 語句用于創(chuàng)建一張新表。

語法:

CREATE TABLE 表名 ( 字段名 數(shù)據(jù)類型, 字段名 數(shù)據(jù)類型... );

如,我想創(chuàng)建一張名為 test 的,有字符類型名為 id,整數(shù)類型名為 num 的兩個(gè)字段的表,就如下寫:

CREATE TABLE test ( id VARCHAR(255), num INT );

更多的數(shù)據(jù)類型查看 MySQL 官網(wǎng)。

8.刪除表(DROP TABLE):

DROP TABLE 語句用于刪除表。

語法:

DROP TABLE 表名;

刪除一個(gè)表會(huì)刪除里面的所有數(shù)據(jù)。

9.列出表(SHOW TABLES):

SHOW TABLES 語句用于列出當(dāng)前數(shù)據(jù)庫中的所有表。

語法:

SHOW TABLES;

10.從本地文件導(dǎo)入數(shù)據(jù)(LOAD DATA LOCAL INFILE)

由于安全考慮,從本地文件導(dǎo)入數(shù)據(jù)是默認(rèn)被禁用的,要啟用這個(gè)功能,需要在啟動(dòng) MySQL 客戶端的時(shí)候加上啟動(dòng)參數(shù) –local-infile ,如:

mysql -uroot -p --local-infile

LOAD DATA LOCAL INFILE 語句用于本地文件中導(dǎo)入數(shù)據(jù)。

語法:

LOAD DATA LOCAL INFILE '本地文件路徑' INTO TABLE 表名;

如,我想從 /data/data.txt 文件導(dǎo)入數(shù)據(jù)到 test 表中,文件中的數(shù)據(jù)之間可以用空格分隔,文件內(nèi)容如:

Line1:  "String"    1(\r\n)
Line2:  ...

其中 \r\n 是 win 格式的換行符,用換行符表名一個(gè)條目的結(jié)束,數(shù)據(jù)的順序要和表中字段的順序相同。導(dǎo)入命令為:

LOAD LOCAL DATA INFILE '/data/data.txt' INTO TABLE test;

11.創(chuàng)建用戶(CREATE USER)

CREATE USER 語句用于創(chuàng)建一個(gè)新用戶。

語法:

CREATE USER '用戶名'@'用戶所在的IP地址' IDENTIFIED BY '密碼';

上面“用戶所在的 IP 地址”是指允許此 IP 地址登錄此用戶。如:’test’@’localhost’ 是指只允許來自本地的連接登錄 test 用戶。另外,‘%’ 百分號(hào)表示任意 IP 地址,即此用戶接受來自任何 IP 的登錄。

密碼在設(shè)置的時(shí)候可能會(huì)受到“當(dāng)前數(shù)據(jù)庫所允許的密碼安全等級(jí)”的限制,如果不使用符合當(dāng)前密碼要求的密碼進(jìn)行設(shè)置,就會(huì)報(bào)錯(cuò)無法創(chuàng)建用戶。

12.更改用戶權(quán)限(GRANT)

GRANT 語句用于更改用戶對(duì)數(shù)據(jù)庫的操作權(quán)限。

語法:

GRANT 操作名稱 ON 操作對(duì)象 TO '用戶名'@'用戶所在的IP地址';

此命令可以將對(duì)“操作對(duì)象”的“操作名稱”權(quán)限授權(quán)給此用戶,如:

GRANT INSERT ON test.* TO 'test'@'localhost';

就將對(duì) test 數(shù)據(jù)庫中所有對(duì)象的插入操作權(quán)限授權(quán)給了 ‘test’@’localhost’ 用戶。注意,操作對(duì)象的格式為“數(shù)據(jù)庫.數(shù)據(jù)庫中的對(duì)象”,其中“”星號(hào)表示所有對(duì)象,“.*”代表所有數(shù)據(jù)庫的所有對(duì)象。還有,用戶是指用戶名加上 IP 地址,若用戶名相同但 IP 地址不同,會(huì)被看作為兩個(gè)不同的用戶。

13.刪除用戶(DROP USER)

DROP USER 語句用于刪除用戶。

語法:

DROP USER '用戶名'@'用戶所在的IP地址';

這樣就能刪除現(xiàn)有的用戶了。

以上。

個(gè)人博客原文地址:https://maphical.cn/link/?t=1IQQIE

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

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

  • mysql和oracle語法都差不多,但還是有差別,查閱資料后我總結(jié)了一套完整的sql語句大全,供初學(xué)者學(xué)習(xí) 1....
    譚魚魚閱讀 2,003評(píng)論 0 4
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,967評(píng)論 0 9
  • SQL語句先前寫的時(shí)候,很容易把一些特殊的用法忘記,我特此整理了一下SQL語句操作,方便自己寫SQL時(shí)方便一點(diǎn),想...
    xiao小馬哥閱讀 4,167評(píng)論 0 8
  • 創(chuàng)建示例數(shù)據(jù)庫 USE master; GO IF DB_ID (N'mytest') IS NOT NULL D...
    小明yz閱讀 1,899評(píng)論 0 3
  • 總是對(duì)陌生人的善意多過親人 仿佛他們做了錯(cuò)事就是不可饒恕 卻不曾發(fā)覺 其實(shí)真正應(yīng)該被寬容對(duì)待的 是身邊的親人 因?yàn)?..
    一點(diǎn)兒五閱讀 198評(píng)論 0 0

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