MySQL学习-----基本查询

MySQL学习-----基本查询

练习使用基本的查询语句

查询表中的所有内容

使用select关键字,* 通配符代表所有。

语法格式
select * from 表名
eg:
mysql> select * from exam_result;
+----+--------+-------+--------+--------+
| id | name   | yuwen | shuxue | yingyu |
+----+--------+-------+--------+--------+
|  1 | 唐三藏 |    67 |     98 |     56 |
|  3 | 猪悟能 |    88 |     98 |     90 |
|  4 | 曹孟德 |    82 |     84 |     67 |
|  5 | 刘玄德 |    55 |     85 |     45 |
|  6 | 孙权   |    70 |     73 |     78 |
|  7 | 宋公明 |    75 |     95 |     30 |
+----+--------+-------+--------+--------+

一般情况下,除非要用到表中的所有字段所有数据,否则不要使用通配符*,因为这样会大大加长查询时间,降低效率。但也有一个好处,就是当你不知道字段名称时可以直接查询。

查询表中的指定字段
基本语法(当有多个字段名称时以逗号分割)
select 字段名称 form 表名
eg
mysql> select name , shuxue from exam_result;
+--------+--------+
| name   | shuxue |
+--------+--------+
| 唐三藏 |     98 |
| 猪悟能 |     98 |
| 曹孟德 |     84 |
| 刘玄德 |     85 |
| 孙权   |     73 |
| 宋公明 |     95 |
+--------+--------+
去重查询

select查询到匹配的行之后,有时候为了需求,需要进行去重,因此有一个distinct关键字。

基本语法
select  distinct 字段名称 from 表名
mysql> select distinct shuxue from exam_result;
+--------+
| shuxue |
+--------+
|     98 |
|     84 |
|     85 |
|     73 |
|     95 |
+--------+
查询时设置别名

当字段名称很长时,不便于显示,因此往往可以给其设置别名。

    不设置别名的情况
mysql> select name, shuxue+yingyu+yuwen from exam_result;
+--------+---------------------+
| name   | shuxue+yingyu+yuwen |
+--------+---------------------+
| 唐三藏 |                 221 |
| 猪悟能 |                 276 |
| 曹孟德 |                 233 |
| 刘玄德 |                 185 |
| 孙权   |                 221 |
| 宋公明 |                 200 |
+--------+---------------------+
6 rows in set (0.07 sec)
    设置别名
基本语法

select 字段名称 别名 from  表名

eg

mysql> select name 姓名, yuwen+shuxue+yingyu 总分 from exam_result;
+--------+------+
| 姓名   | 总分 |
+--------+------+
| 唐三藏 |  221 |
| 猪悟能 |  276 |
| 曹孟德 |  233 |
| 刘玄德 |  185 |
| 孙权   |  221 |
| 宋公明 |  200 |
+--------+------+
6 rows in set (0.00 sec)
对查询结果进行排序

使用order by关键字 asc 升序 desc 降序,其中默认升序

mysql> select name , shuxue from exam_result order by shuxue;
+--------+--------+
| name   | shuxue |
+--------+--------+
| 孙权   |     73 |
| 曹孟德 |     84 |
| 刘玄德 |     85 |
| 宋公明 |     95 |
| 唐三藏 |     98 |
| 猪悟能 |     98 |
+--------+--------+
6 rows in set (0.08 sec)
指定查询结果的行数

使用limit关键字,有两种用法:

    limit 3 ; 表示显示三行 limit 3,5:表示从第四行开始显示5行。 经常结合order by使用
mysql> select name 姓名, yuwen+shuxue+yingyu 总分 from exam_result 
order by 总分 limit 3;
+--------+------+
| 姓名   | 总分 |
+--------+------+
| 刘玄德 |  185 |
| 宋公明 |  200 |
| 唐三藏 |  221 |
+--------+------+
3 rows in set (0.06 sec)
条件查询

使用where字句,指定查询条件,从查询的所有结果中将符合条件的过滤出来。

// 查询数学成绩高于90分的学生
mysql> select name 姓名, shuxue 数学 from exam_result where shuxue > 90;
+--------+------+
| 姓名   | 数学 |
+--------+------+
| 唐三藏 |   98 |
| 猪悟能 |   98 |
| 宋公明 |   95 |
+--------+------+
模糊查询

关键字like搭配通配符使用。

    百分号%百分号代替任意字符串,%号的位置可以放在任何地方。 下划线_,只能匹配单个字符
mysql> select name 姓名 , shuxue 数学 from exam_result where name like 孙%;
+------+------+
| 姓名 | 数学 |
+------+------+
| 孙权 |   73 |
+------+------+
经验分享 程序员 微信小程序 职场和发展