SQL常用语句

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

目录

  • 选取数据(SELECT)
  • 插入数据(INSERT INTO)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)
  • 创建数据库(CREATE DATABASE)
  • 删除数据库(DROP DATABASE)
  • 创建表(CREATE TABLE)
  • 删除表(DROP TABLE)
  • 列出表(SHOW TABLES)
  • 从本地文件导入数据(LOAD DATA LOCAL INFILE)
  • 创建用户(CREATE USER)
  • 更改用户权限(GRANT)
  • 删除用户(DROP USER)

1.选取数据(SELECT):

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

语法:

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

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

SELECT name FROM test WHERE value=1;

2.插入数据(INSERT INTO):

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

语法:

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

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

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

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

3.修改数据(UPDATE):

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

语法:

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

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

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

4.删除数据(DELETE):

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

语法:

DELETE FROM 表名称 (WHERE 条件);

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

DELETE FROM test WHERE name = "Ben";

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

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

语法:

CREATE DATABASE 数据库名;

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

CREATE DATABASE test;

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

USE 数据库名;

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

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

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

语法:

DROP DATABASE 数据库名;

7.创建表(CREATE TABLE):

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

语法:

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

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

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

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

8.删除表(DROP TABLE):

DROP TABLE 语句用于删除表。

语法:

DROP TABLE 表名;

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

9.列出表(SHOW TABLES):

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

语法:

SHOW TABLES;

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

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

mysql -uroot -p --local-infile

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

语法:

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

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

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

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

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

11.创建用户(CREATE USER)

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

语法:

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

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

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

12.更改用户权限(GRANT)

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

语法:

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

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

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

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

13.删除用户(DROP USER)

DROP USER 语句用于删除用户。

语法:

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

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

以上。

个人博客原文地址:https://maphical.cn/link/?t=1IQQIE

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • mysql和oracle语法都差不多,但还是有差别,查阅资料后我总结了一套完整的sql语句大全,供初学者学习 1....
    谭鱼鱼阅读 1,846评论 0 4
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,300评论 0 9
  • SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想...
    xiao小马哥阅读 4,093评论 0 8
  • 创建示例数据库 USE master; GO IF DB_ID (N'mytest') IS NOT NULL D...
    小明yz阅读 1,832评论 0 3
  • 总是对陌生人的善意多过亲人 仿佛他们做了错事就是不可饶恕 却不曾发觉 其实真正应该被宽容对待的 是身边的亲人 因为...
    一点儿五阅读 181评论 0 0