SQL常用语句

在很多地方都需要操作数据库,了解一些 SQL 语句有时十分必要,对于不是专门搞数据库的人(比如我)来说,会一些基本操作就行了,比如选取数据、插入数据、更新数据、删除数据等。这是一篇记录 SQL 常用操作的笔记。

1.选取数据(SELECT):

SELECT 语句用于从表中选取数据,结果以另一个表的形式被打印出来。

语法:

1
SELECT 字段名 FROM 表名称 (WHERE 条件);

其中 WHERE 条件是可选的,如我需要从 test 表中选取 value 字段值为 1 的条目的 name 字段值,就要如下的语句:

1
SELECT name FROM test WHERE value=1;

2.插入数据(INSERT INTO):

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

语法:

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

如我需要向 test 表中插入 value 字段值为 1,name 字段值为 Ben 的行,我应该如下写(假如 name 字段在 value 字段前面):

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

其中值的顺序是有讲究的,要和表中字段的顺序一致,此语句会按照语句中值的顺序依次向表中不同字段写入数据。这里将“Ben”写在 1 的前面是因为我假设了表中 name 字段在 value 字段的前面。

3.修改数据(UPDATE):

UPDATE 语句用于修改表中的数据。

语法:

1
UPDATE 表名称 SET 字段名 = 新值 WHERE 条件;

假如表 test 中有一行数据为:name=”Ben”, value=1,我要把其中的 value 修改为 2,那么我要如下写:

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

4.删除数据(DELETE):

DELETE 语句用于删除表中的行。

语法:

1
DELETE FROM 表名称 (WHERE 条件);

其中条件是可选的,如果不写条件则会删除表中的所有数据。假如我要删除 test 表中字段 name 值为 “Ben” 的一行数据,那么我要如下写:

1
DELETE FROM test WHERE name = "Ben";

5.创建数据库(CREATE DATABASE):

CREATE DATABASE 语句用于创建一个新的数据库。

语法:

1
CREATE DATABASE 数据库名;

登入数据库以后,假如我要创建一个名为 test 的数据库,那么我要如下写:

1
CREATE DATABASE test;

创建数据库以后使用 USE 语句选取数据库进行操作,语法如下:

1
USE 数据库名;

选取成功后会有提示,如“DATABASE CHANGED”等,这时就可以对数据库中的表进行前面所说的 4 种操作了(写的顺序好像有点不对?)。

6.删除数据库(DROP DATABASE):

DROP DATABASE 语句用于删除一个数据库和它里面的所有表。

语法:

1
DROP DATABASE 数据库名;

7.创建表(CREATE TABLE):

CREATE TABLE 语句用于创建一张新表。

语法:

1
CREATE TABLE 表名 ( 字段名 数据类型, 字段名 数据类型... );

如,我想创建一张名为 test 的,有字符类型名为 id,整数类型名为 num 的两个字段的表,就如下写:

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

更多的数据类型查看 MySQL 官网。

8.删除表(DROP TABLE):

DROP TABLE 语句用于删除表。

语法:

1
DROP TABLE 表名;

删除一个表会删除里面的所有数据。

9.列出表(SHOW TABLES):

SHOW TABLES 语句用于列出当前数据库中的所有表。

语法:

1
SHOW TABLES;

10.从本地文件导入数据(LOAD DATA LOCAL INFILE)

由于安全考虑,从本地文件导入数据是默认被禁用的,要启用这个功能,需要在启动 MySQL 客户端的时候加上启动参数 –local-infile ,如:

1
mysql -uroot -p --local-infile

LOAD DATA LOCAL INFILE 语句用于本地文件中导入数据。

语法:

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

如,我想从 /data/data.txt 文件导入数据到 test 表中,文件中的数据之间可以用空格分隔,文件内容如:

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

其中 \r\n 是 win 格式的换行符,用换行符表名一个条目的结束,数据的顺序要和表中字段的顺序相同。导入命令为:

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

11.创建用户(CREATE USER)

CREATE USER 语句用于创建一个新用户。

语法:

1
CREATE USER '用户名'@'用户所在的IP地址' IDENTIFIED BY '密码';

上面“用户所在的 IP 地址”是指允许此 IP 地址登录此用户。如:’test’@’localhost’ 是指只允许来自本地的连接登录 test 用户。另外,‘%’ 百分号表示任意 IP 地址,即此用户接受来自任何 IP 的登录。

密码在设置的时候可能会受到“当前数据库所允许的密码安全等级”的限制,如果不使用符合当前密码要求的密码进行设置,就会报错无法创建用户。

12.更改用户权限(GRANT)

GRANT 语句用于更改用户对数据库的操作权限。

语法:

1
GRANT 操作名称 ON 操作对象 TO '用户名'@'用户所在的IP地址';

此命令可以将对“操作对象”的“操作名称”权限授权给此用户,如:

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

就将对 test 数据库中所有对象的插入操作权限授权给了 ‘test’@’localhost’ 用户。注意,操作对象的格式为“数据库.数据库中的对象”,其中“”星号表示所有对象,“.*”代表所有数据库的所有对象。还有,用户是指用户名加上 IP 地址,若用户名相同但 IP 地址不同,会被看作为两个不同的用户。

13.删除用户(DROP USER)

DROP USER 语句用于删除用户。

语法:

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

这样就能删除现有的用户了。

以上。


SQL常用语句
https://maphical.cn/2017/10/useful-sql/
作者
MaphicalYng
发布于
2017年10月14日
许可协议