在很多地方都需要操作數(shù)據(jù)庫(kù)砌些,了解一些 SQL 語(yǔ)句有時(shí)十分必要,對(duì)于不是專門搞數(shù)據(jù)庫(kù)的人(比如我)來說加匈,會(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ù)庫(kù)(CREATE DATABASE)
- 刪除數(shù)據(jù)庫(kù)(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 語(yǔ)句用于從表中選取數(shù)據(jù)偎球,結(jié)果以另一個(gè)表的形式被打印出來。
語(yǔ)法:
SELECT 字段名 FROM 表名稱 (WHERE 條件);
其中 WHERE 條件是可選的示姿,如我需要從 test 表中選取 value 字段值為 1 的條目的 name 字段值甜橱,就要如下的語(yǔ)句:
SELECT name FROM test WHERE value=1;
2.插入數(shù)據(jù)(INSERT INTO):
INSERT 語(yǔ)句用于向表中插入新的行逊笆。
語(yǔ)法:
INSERT INTO 表名稱 VALUES (值1, 值2, ...);
如我需要向 test 表中插入 value 字段值為 1栈戳,name 字段值為 Ben 的行,我應(yīng)該如下寫(假如 name 字段在 value 字段前面):
INSERT INTO test VALUES ("Ben", 1);
其中值的順序是有講究的难裆,要和表中字段的順序一致子檀,此語(yǔ)句會(huì)按照語(yǔ)句中值的順序依次向表中不同字段寫入數(shù)據(jù)。這里將“Ben”寫在 1 的前面是因?yàn)槲壹僭O(shè)了表中 name 字段在 value 字段的前面乃戈。
3.修改數(shù)據(jù)(UPDATE):
UPDATE 語(yǔ)句用于修改表中的數(shù)據(jù)褂痰。
語(yǔ)法:
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 語(yǔ)句用于刪除表中的行缩歪。
語(yǔ)法:
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ù)庫(kù)(CREATE DATABASE):
CREATE DATABASE 語(yǔ)句用于創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)主籍。
語(yǔ)法:
CREATE DATABASE 數(shù)據(jù)庫(kù)名;
登入數(shù)據(jù)庫(kù)以后,假如我要?jiǎng)?chuàng)建一個(gè)名為 test 的數(shù)據(jù)庫(kù)逛球,那么我要如下寫:
CREATE DATABASE test;
創(chuàng)建數(shù)據(jù)庫(kù)以后使用 USE 語(yǔ)句選取數(shù)據(jù)庫(kù)進(jìn)行操作千元,語(yǔ)法如下:
USE 數(shù)據(jù)庫(kù)名;
選取成功后會(huì)有提示,如“DATABASE CHANGED”等颤绕,這時(shí)就可以對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行前面所說的 4 種操作了(寫的順序好像有點(diǎn)不對(duì)幸海?)。
6.刪除數(shù)據(jù)庫(kù)(DROP DATABASE):
DROP DATABASE 語(yǔ)句用于刪除一個(gè)數(shù)據(jù)庫(kù)和它里面的所有表奥务。
語(yǔ)法:
DROP DATABASE 數(shù)據(jù)庫(kù)名;
7.創(chuàng)建表(CREATE TABLE):
CREATE TABLE 語(yǔ)句用于創(chuàng)建一張新表物独。
語(yǔ)法:
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 語(yǔ)句用于刪除表瞻凤。
語(yǔ)法:
DROP TABLE 表名;
刪除一個(gè)表會(huì)刪除里面的所有數(shù)據(jù)。
9.列出表(SHOW TABLES):
SHOW TABLES 語(yǔ)句用于列出當(dāng)前數(shù)據(jù)庫(kù)中的所有表世杀。
語(yǔ)法:
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 語(yǔ)句用于本地文件中導(dǎo)入數(shù)據(jù)。
語(yǔ)法:
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 語(yǔ)句用于創(chuàng)建一個(gè)新用戶斩披。
語(yǔ)法:
CREATE USER '用戶名'@'用戶所在的IP地址' IDENTIFIED BY '密碼';
上面“用戶所在的 IP 地址”是指允許此 IP 地址登錄此用戶溜族。如:’test’@’localhost’ 是指只允許來自本地的連接登錄 test 用戶。另外垦沉,‘%’ 百分號(hào)表示任意 IP 地址煌抒,即此用戶接受來自任何 IP 的登錄。
密碼在設(shè)置的時(shí)候可能會(huì)受到“當(dāng)前數(shù)據(jù)庫(kù)所允許的密碼安全等級(jí)”的限制厕倍,如果不使用符合當(dāng)前密碼要求的密碼進(jìn)行設(shè)置寡壮,就會(huì)報(bào)錯(cuò)無法創(chuàng)建用戶。
12.更改用戶權(quán)限(GRANT)
GRANT 語(yǔ)句用于更改用戶對(duì)數(shù)據(jù)庫(kù)的操作權(quán)限。
語(yǔ)法:
GRANT 操作名稱 ON 操作對(duì)象 TO '用戶名'@'用戶所在的IP地址';
此命令可以將對(duì)“操作對(duì)象”的“操作名稱”權(quán)限授權(quán)給此用戶况既,如:
GRANT INSERT ON test.* TO 'test'@'localhost';
就將對(duì) test 數(shù)據(jù)庫(kù)中所有對(duì)象的插入操作權(quán)限授權(quán)給了 ‘test’@’localhost’ 用戶屋群。注意,操作對(duì)象的格式為“數(shù)據(jù)庫(kù).數(shù)據(jù)庫(kù)中的對(duì)象”坏挠,其中“”星號(hào)表示所有對(duì)象芍躏,“.*”代表所有數(shù)據(jù)庫(kù)的所有對(duì)象。還有降狠,用戶是指用戶名加上 IP 地址对竣,若用戶名相同但 IP 地址不同,會(huì)被看作為兩個(gè)不同的用戶榜配。
13.刪除用戶(DROP USER)
DROP USER 語(yǔ)句用于刪除用戶否纬。
語(yǔ)法:
DROP USER '用戶名'@'用戶所在的IP地址';
這樣就能刪除現(xiàn)有的用戶了。
以上蛋褥。
個(gè)人博客原文地址:https://maphical.cn/link/?t=1IQQIE