MySQL 最基本的 增、删、改、查
最近一直在写前端,差不多快要有一年没碰 MySQL 了。因为最近刚换域名,需要增加一下文章数量,所以这里就来简单写一下 MySQL 最基本的 增、删、改、查,顺便复习一下很早以前学的数据库。
这里只包括基本的 增、删、改、查,而且查询也不会涉及到复杂的查询,关于复杂查询以后再写。如果要看 PHP 操作 MySQL 可以访问:PHP PDO 简单使用教程 。
我用来演示的表格名称为:user
,表格的 id
是自增长的, 下面是表格结构:
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_name | varchar(20) | NO | | | |
| password | varchar(128) | NO | | | |
| email | varchar(40) | NO | | | |
+-----------+--------------+------+-----+---------+----------------+
目前表格中没有任何数据。
增加
因为 id
是自增长的,所以插入的时候不需要写 id
,下面给 user
插入一条数据:
INSERT INTO user
(user_name, password, email)
VALUES
('Mark', '123456', '123456@qq.com')
其中的 INSERT INTO
就是插入语句,user
就是 表名,(user_name, password, email)
就是 字段名,VALUES
值,('Mark', '123456', '123456@qq.com')
就是 要插入的内容,分别对应 user_name
、password
、email
三个字段。这里为了方便查看我就分行写了,如果写在一行的话 语句之间需要空格分隔,还有 如果直接用命令行操作 MySQL 的话,语句结束需要分号。
下面演示一下不换行的写法:
INSERT INTO user (user_name, password, email) VALUES ('Mark', '123456', '123456@qq.com')
如果要一次插入多条数据可以这样写:
INSERT INTO user
(user_name, password, email)
VALUES
('Adam', '1234567', '1234567@qq.com'),
('John', '12345', '12345@qq.com')
删除
下面删除之前插入的 user_name
为:Mark
的数据:
DELETE FROM user
WHERE
user_name = 'Mark'
其中的 DELETE FROM user
就是从 user
表中删除数据,user
是表名,WHERE
是条件,user_name = 'Mark'
就是 user_name
为 Mark
的数据。注意!删除数据和更改数据 WHERE
很重要,如果没有 WHERE
和后面的条件内容会影响到所有的内容,如果删除数据的时候没有 WHERE
和后面的条件内容 MySQL 就会删除所有的数据。如果你要清空表格可以这样写:
DELETE FROM user
WHERE
条件语句的功能很强大,编程语言里常见的运算符它都支持,下面是 user
表的内容:
+----+-----------+----------+----------------+
| id | user_name | password | email |
+----+-----------+----------+----------------+
| 2 | Adam | 1234567 | 1234567@qq.com |
| 3 | John | 12345 | 12345@qq.com |
| 4 | George | 123 | 123@qq.com |
| 5 | Jack | 12sdd | 12@qq.com |
| 6 | Steve | sfjwi | 234@qq.com |
+----+-----------+----------+----------------+
下面删除 id
小于 3
的数据:
DELETE FROM user
WHERE
id < 3
id
为 2
的数据,也就是 user_name
为Adam
的数据会被删除。
下面删除 id
在 6
和 4
之间的数据:
DELETE FROM user
WHERE
id < 6 AND id > 4
id
为5
的数据会被删除,这里的 AND
就类似于其它编程语言里的 &&
。
修改
下面是 user
表的内容:
+----+-----------+----------+--------------+
| id | user_name | password | email |
+----+-----------+----------+--------------+
| 3 | John | 12345 | 12345@qq.com |
| 4 | George | 123 | 123@qq.com |
| 6 | Steve | sfjwi | 234@qq.com |
+----+-----------+----------+--------------+
下面把 Steve
改为:Mario
:
UPDATE user
SET
user_name = 'Mario'
WHERE
user_name = 'Steve'
其中的 UPDATE
是 更新,user
是 表名,SET
是 设置,SET
后面的 user_name = 'Mario'
就是设置 user
为 Mario
,WHERE
是 条件,WHERE
后面的 user_name = 'Steve'
就是指定 user_name
为 Steve
的数据。注意!在更改数据的时候 WHERE
条件也很重要,如果没有 WHERE
MySQL 会更改所有的数据。
如果要更改多个字段的内容可以这样写:
UPDATE user
SET
user_name = 'Chris',
email = 'chrls@163.com'
WHERE
user_name = 'Mario'
上面把 user_name
为Mario
的 user_name
改为Chris
,email
改为chris@163.com
。
关于 WHERE
的用法可以参考上面删除数据 WHERE
的用法。
查询
查询算是数据库中比较复杂的,不过这里只包括简单查询。
下面查询出 user
表的所有数据:
SELECT * FROM user
其中 SELECT
就是 查询,*
就是 所有字段,FROM
相当于是 值,user
是 表名。这里没有任何条件限制,所以会查询出 user
表的所有数据,如下:
+----+-----------+----------+---------------+
| id | user_name | password | email |
+----+-----------+----------+---------------+
| 3 | John | 12345 | 12345@qq.com |
| 4 | George | 123 | 123@qq.com |
| 6 | Chris | sfjwi | chris@163.com |
+----+-----------+----------+---------------+
下面查询出所有 user_name
字段的数据:
SELECT user_name FROM user
输出内容如下:
+-----------+
| user_name |
+-----------+
| John |
| George |
| Chris |
+-----------+
下面查询出所有 user_name
和 email
字段的数据:
SELECT
user_name, email
FROM
user
输出内容如下:
+-----------+---------------+
| user_name | email |
+-----------+---------------+
| John | 12345@qq.com |
| George | 123@qq.com |
| Chris | chris@163.com |
+-----------+---------------+
查询语句也是可以用 WHERE
限制条件的,下面查询 Chris
的 email
:
SELECT
email
FROM
user
WHERE
user_name = 'Chris'
下面查询出 user_name
为 Chris
以外的所有数据:
SELECT
*
FROM
user
WHERE
user_name != 'Chris'
下面是输出的内容:
+----+-----------+----------+--------------+
| id | user_name | password | email |
+----+-----------+----------+--------------+
| 3 | John | 12345 | 12345@qq.com |
| 4 | George | 123 | 123@qq.com |
+----+-----------+----------+--------------+
下面查询出 user
表的所有数据,并按 id
从大到小 倒序输出:
SELECT
*
FROM
user
ORDER BY id DESC
输出内容如下:
+----+-----------+----------+---------------+
| id | user_name | password | email |
+----+-----------+----------+---------------+
| 6 | Chris | sfjwi | chris@163.com |
| 4 | George | 123 | 123@qq.com |
| 3 | John | 12345 | 12345@qq.com |
+----+-----------+----------+---------------+
其中的 ORDER BY
就是 排序,id
就是 排序的字段名,DESC
就是倒序。DESC
是 倒序,ASC
或省略就是 顺序。目前排序对于数字和英文支持的比较好,中文目前只能按照 Unicode
编码来排序,不会按照字母或拼音排序,如果要让中文按照字母排序在存储的时候还需要存储一份拼音。
MySQL 还可以使用模糊查询,如果你只知道一部分条件就可以使用模糊查询。下面查询出所有 user_name
以 J
开头的数据:
SELECT
*
FROM
user
WHERE
user_name LIKE 'J%'
输出内容:
+----+-----------+----------+--------------+
| id | user_name | password | email |
+----+-----------+----------+--------------+
| 3 | John | 12345 | 12345@qq.com |
+----+-----------+----------+--------------+
其中 LIKE
就是设置模糊查询,%
在最后就是查询以 %
前面的内容开头的数据,同样 %
在最前面就是查询以 %
后面的内容结尾的数据,如果前后都有 %
就会匹配中间的内容,比如下面的语句:
SELECT
*
FROM
user
WHERE
user_name LIKE '%小%'
只要中间包含 小
的数据都会被查询出来。
在数据比较多的情况下可能需要分页展示数据,MySQL 可以从指定位置输出指定数量的数据。
下面从第 0
条开始输出数据,共输出 10
条数据:
SELECT
*
FROM
user
LIMIT 0, 10
其中 LIMIT
后面的 0
就是起始位置,10
就是输出数据的数量。
以上就是 MySQL 最基本的 增、删、改、查,更复杂的查询以后再写。
相关文章:
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/805/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。