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', '[email protected]')其中的 INSERT INTO 就是插入语句,user 就是 表名,(user_name, password, email) 就是 字段名,VALUES 值,('Mark', '123456', '[email protected]') 就是 要插入的内容,分别对应 user_name 、password 、email 三个字段。这里为了方便查看我就分行写了,如果写在一行的话 语句之间需要空格分隔,还有 如果直接用命令行操作 MySQL 的话,语句结束需要分号。
下面演示一下不换行的写法:
INSERT INTO user (user_name, password, email) VALUES ('Mark', '123456', '[email protected]')如果要一次插入多条数据可以这样写:
INSERT INTO user
(user_name, password, email)
VALUES
('Adam', '1234567', '[email protected]'),
('John', '12345', '[email protected]')删除
下面删除之前插入的 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 userWHERE 条件语句的功能很强大,编程语言里常见的运算符它都支持,下面是 user 表的内容:
+----+-----------+----------+----------------+
| id | user_name | password | email |
+----+-----------+----------+----------------+
| 2 | Adam | 1234567 | [email protected] |
| 3 | John | 12345 | [email protected] |
| 4 | George | 123 | [email protected] |
| 5 | Jack | 12sdd | [email protected] |
| 6 | Steve | sfjwi | [email protected] |
+----+-----------+----------+----------------+下面删除 id 小于 3 的数据:
DELETE FROM user
WHERE
id < 3id 为 2 的数据,也就是 user_name 为Adam 的数据会被删除。
下面删除 id 在 6 和 4 之间的数据:
DELETE FROM user
WHERE
id < 6 AND id > 4id 为5 的数据会被删除,这里的 AND 就类似于其它编程语言里的 && 。
修改
下面是 user 表的内容:
+----+-----------+----------+--------------+
| id | user_name | password | email |
+----+-----------+----------+--------------+
| 3 | John | 12345 | [email protected] |
| 4 | George | 123 | [email protected] |
| 6 | Steve | sfjwi | [email protected] |
+----+-----------+----------+--------------+下面把 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 = '[email protected]'
WHERE
user_name = 'Mario'上面把 user_name 为Mario 的 user_name 改为Chris ,email 改为[email protected] 。
关于 WHERE 的用法可以参考上面删除数据 WHERE 的用法。
查询
查询算是数据库中比较复杂的,不过这里只包括简单查询。
下面查询出 user 表的所有数据:
SELECT * FROM user其中 SELECT 就是 查询,* 就是 所有字段,FROM 相当于是 值,user 是 表名。这里没有任何条件限制,所以会查询出 user 表的所有数据,如下:
+----+-----------+----------+---------------+
| id | user_name | password | email |
+----+-----------+----------+---------------+
| 3 | John | 12345 | [email protected] |
| 4 | George | 123 | [email protected] |
| 6 | Chris | sfjwi | [email protected] |
+----+-----------+----------+---------------+下面查询出所有 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 | [email protected] |
| George | [email protected] |
| Chris | [email protected] |
+-----------+---------------+查询语句也是可以用 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 | [email protected] |
| 4 | George | 123 | [email protected] |
+----+-----------+----------+--------------+下面查询出 user 表的所有数据,并按 id 从大到小 倒序输出:
SELECT
*
FROM
user
ORDER BY id DESC输出内容如下:
+----+-----------+----------+---------------+
| id | user_name | password | email |
+----+-----------+----------+---------------+
| 6 | Chris | sfjwi | [email protected] |
| 4 | George | 123 | [email protected] |
| 3 | John | 12345 | [email protected] |
+----+-----------+----------+---------------+其中的 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 | [email protected] |
+----+-----------+----------+--------------+其中 LIKE 就是设置模糊查询,% 在最后就是查询以 % 前面的内容开头的数据,同样 % 在最前面就是查询以 % 后面的内容结尾的数据,如果前后都有 % 就会匹配中间的内容,比如下面的语句:
SELECT
*
FROM
user
WHERE
user_name LIKE '%小%'只要中间包含 小 的数据都会被查询出来。
在数据比较多的情况下可能需要分页展示数据,MySQL 可以从指定位置输出指定数量的数据。
下面从第 0 条开始输出数据,共输出 10 条数据:
SELECT
*
FROM
user
LIMIT 0, 10其中 LIMIT 后面的 0 就是起始位置,10 就是输出数据的数量。
以上就是 MySQL 最基本的 增、删、改、查,更复杂的查询以后再写。
相关文章:
版权声明:本文为原创文章,版权归 Changbin's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/805/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。