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 | +------+------+
下一篇:
mysql安装教程【安装版】