您现在的位置是: 网站首页> MySQL MySQL

MySQL的基本操作与使用(2)

Smile 2019-08-31 MySQL 阅读:768

简介MySQL 是最流行的关系型数据库管理系统,在web应用开发中大量使用,与PHP和Apache堪称web开发中的黄金搭档,并且开源免费,备受开发者的喜爱,本文讲解MySQL一些基本操作和使用,让你快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。

1、查看数据表数据

mysql> select * from article;
+----+-------+--------+---------+
| id | title | author | content |
+----+-------+--------+---------+
|  1 | ykl   | ykl    | ykl     |
+----+-------+--------+---------+
1 row in set (0.11 sec)

2、WHERE子句可以根据条件从表中查询数据,示例

mysql> SELECT * FROM article WHERE title='ykl';
+----+-------+--------+---------+
| id | title | author | content |
+----+-------+--------+---------+
|  1 | ykl   | ykl    | ykl     |
+----+-------+--------+---------+
1 row in set (0.00 sec)

3、插入数据

(1)插入一条数据

mysql> INSERT INTO article(title, author, content) VALUES("MySQL", "YKl", "MySQL的基本使用");
Query OK, 1 row affected (0.12 sec)

(2)插入多条数据

INSERT INTO article(title, author, content) VALUES
("MySQL", "YKl", "MySQL的基本使用"),
("MySQL", "YKl", "MySQL的基本使用"),
("MySQL", "YKl", "MySQL的基本使用");

输出

mysql> INSERT INTO article(title, author, content) VALUES
    -> ("MySQL", "YKl", "MySQL的基本使用"),
    -> ("MySQL", "YKl", "MySQL的基本使用"),
    -> ("MySQL", "YKl", "MySQL的基本使用");
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

4、更新数据

mysql> UPDATE article SET title='修改MySQL',author="yy" WHERE id=2;
Query OK, 1 row affected (0.13 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * from article WHERE id=2;
+----+-------------+--------+----------------------+
| id | title       | author | content              |
+----+-------------+--------+----------------------+
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |
+----+-------------+--------+----------------------+
1 row in set (0.00 sec)

5、删除数据

mysql> DELETE FROM article WHERE id=5;
Query OK, 1 row affected (0.14 sec)

注:删除数据时很有必要加上WHERE条件,没带WHERE条件将会删除整个数据表的数据

6、LIKE子句模糊查询

mysql> SELECT * from article WHERE title LIKE '%MySQL%';
+----+-------------+--------+----------------------+
| id | title       | author | content              |
+----+-------------+--------+----------------------+
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |
|  3 | MySQL       | YKl    | MySQL的基本使用      |
|  4 | MySQL       | YKl    | MySQL的基本使用      |
+----+-------------+--------+----------------------+
3 rows in set (0.09 sec)

7、ORDER BY 子句对查询数据排序

(1)按照id进行升序排序

mysql> SELECT * from article ORDER BY id ASC;
+----+-------------+--------+----------------------+
| id | title       | author | content              |
+----+-------------+--------+----------------------+
|  1 | ykl         | ykl    | ykl                  |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |
|  3 | MySQL       | YKl    | MySQL的基本使用      |
|  4 | MySQL       | YKl    | MySQL的基本使用      |
+----+-------------+--------+----------------------+
4 rows in set (0.00 sec)

(2)按照id进行降序排序

mysql> SELECT * from article ORDER BY id DESC;
+----+-------------+--------+----------------------+
| id | title       | author | content              |
+----+-------------+--------+----------------------+
|  4 | MySQL       | YKl    | MySQL的基本使用      |
|  3 | MySQL       | YKl    | MySQL的基本使用      |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |
|  1 | ykl         | ykl    | ykl                  |
+----+-------------+--------+----------------------+
4 rows in set (0.00 sec)

8、使用 GROUP BY 语句 将文章表按标题进行分组,并统计相同标题的有多少条记录

mysql> SELECT title, COUNT(*) FROM article GROUP BY title;
+-------------+----------+
| title       | COUNT(*) |
+-------------+----------+
| MySQL       |        2 |
| ykl         |        1 |
| 修改MySQL   |        1 |
+-------------+----------+
3 rows in set (0.00 sec)

9、使用JOIN连接表进行多表查询

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录

文章表数据

mysql> select * from article;
+----+-------------+--------+----------------------+------+
| id | title       | author | content              | cid  |
+----+-------------+--------+----------------------+------+
|  1 | ykl         | ykl    | ykl                  |    1 |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |    2 |
|  3 | MySQL       | YKl    | MySQL的基本使用      |    2 |
|  4 | MySQL       | YKl    | MySQL的基本使用      |    2 |
+----+-------------+--------+----------------------+------+
4 rows in set (0.00 sec)

分类表数据

mysql> select * from category;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | 日记      |
|  2 | 数据库    |
+----+-----------+
2 rows in set (0.00 sec)

查询id=1的文章分类名

mysql> SELECT a.*,c.name FROM article a INNER JOIN category c ON a.cid = c.id;
+----+-------------+--------+----------------------+------+-----------+
| id | title       | author | content              | cid  | name      |
+----+-------------+--------+----------------------+------+-----------+
|  1 | ykl         | ykl    | ykl                  |    1 | 日记      |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |    2 | 数据库    |
|  3 | MySQL       | YKl    | MySQL的基本使用      |    2 | 数据库    |
|  4 | MySQL       | YKl    | MySQL的基本使用      |    2 | 数据库    |
+----+-------------+--------+----------------------+------+-----------+
4 rows in set (0.00 sec)

另外连表也可以这么连,等同于上面的操作

mysql> SELECT a.*, c.name FROM article a, category c WHERE a.cid = c.id;
+----+-------------+--------+----------------------+------+-----------+
| id | title       | author | content              | cid  | name      |
+----+-------------+--------+----------------------+------+-----------+
|  1 | ykl         | ykl    | ykl                  |    1 | 日记      |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |    2 | 数据库    |
|  3 | MySQL       | YKl    | MySQL的基本使用      |    2 | 数据库    |
|  4 | MySQL       | YKl    | MySQL的基本使用      |    2 | 数据库    |
+----+-------------+--------+----------------------+------+-----------+
4 rows in set (0.07 sec)

10、关于MySQL的NULL值的查询

首先查看一下文章数据

mysql> select * from article;
+----+-------------+--------+----------------------+-----+
| id | title       | author | content              | cid |
+----+-------------+--------+----------------------+-----+
|  1 | ykl         | ykl    | ykl                  |   1 |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |   2 |
|  3 | MySQL       | NULL   | MySQL的基本使用      |   2 |
|  4 | MySQL       | YKl    | MySQL的基本使用      |   2 |
+----+-------------+--------+----------------------+-----+
4 rows in set (0.00 sec)

结果发现一条作者为NULL的数据,当你尝试使用 = 和 != 运算符查询时会发现查询不到数据

mysql> select * from article where author=NULL;
Empty set (0.00 sec)

mysql> select * from article where author!=NULL;
Empty set (0.00 sec)

这时因为在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,需要用 IS NULL 和 IS NOT NULL 查询

mysql> select * from article where author IS NULL;
+----+-------+--------+----------------------+-----+
| id | title | author | content              | cid |
+----+-------+--------+----------------------+-----+
|  3 | MySQL | NULL   | MySQL的基本使用      |   2 |
+----+-------+--------+----------------------+-----+
1 row in set (0.00 sec)

mysql> select * from article where author IS NOT NULL;
+----+-------------+--------+----------------------+-----+
| id | title       | author | content              | cid |
+----+-------------+--------+----------------------+-----+
|  1 | ykl         | ykl    | ykl                  |   1 |
|  2 | 修改MySQL   | yy     | MySQL的基本使用      |   2 |
|  4 | MySQL       | YKl    | MySQL的基本使用      |   2 |
+----+-------------+--------+----------------------+-----+
3 rows in set (0.00 sec)

很赞哦! (0)

文章评论

站点信息