本篇主要学习如何通过简单查询获取想要的数据。
从零学会SQL:简单查询www.zhihu.com- 基本的查询语句
从数据库中查找数据时要使用select子句,select子句是sql中使用最多、最基本的子句。
子句是sql语句的组成要素,是以某一个关键字作为开始的语句。最简单的查询语句是由select和from这两个子句构成的:
/*
查询运行原理:在navicat客户端写查询语句向数据库发起查询,数据库查找后将结果返回。
(1)查询表student中的姓名和性别两列
查询结果返回列的顺序和select子句中的顺序相同。
(2)查询表student 全部数据
查询全部数据的时候用“*”来实现。
(3)为性别列设定别名
为了让查询结果更容易被理解,有时要为列设定别名,为列设定别名时用”as“,当别名是中文的时候要用英文单引号括起来。
(4)distinct删除重复行
想要删除重复的行,可以在列名前加distinct来实现。
distinct在多列之前是将多列数据进行组合,只有当这几列的数据都相同的时候才算作重复数据,distinct只能放在第一个列名的前面不能放在其他位置。
- 指定条件查询
通常情况下,我们在查询的时候是按照条件筛选出想要的数据。查询语句是通过where子句来指定查找条件的,但需要注意的是尽量避免where子句比较符号左侧出现表达式、函数等。
(1)找出姓名为猴子的学生
注意:sql中子句的书写顺序是固定的,但运行顺序和书写顺序是不同的,select 子句最后运行,其他子句按书写顺序运行。
- 注释
注释能够帮助阅读者更好的理解书写的sql语句。sql 语句有两种注释的方法,一种时单行注释,一种是多行注释。
-- 我是单行注释,单行注释“--”后要有空格
/*
我是
多行注释
*/
注意:sql语句中子句之间不能空行。
- 运算符
运算符包括三种:分别是算术运算符、比较运算符和逻辑运算符。
算术运算符:+、-、*、/,如果有括号括号中的表达式优先运算,特别要注意的是所有含有null的运算结果都是null。
(1)用百分比显示成绩表中的成绩
比较运算符:“=”等于、“<>”不等于、“>”大于、“>=”大于等于、“<”小于、“<=”小于等于,比较运算符可以和所有类型的值进行比较,字符串类型是按照字典序进行比较的。
(2)查找不及格的学生成绩
(3)查找出生日期小于‘1990-01-01’的学生
(3)查找任课老师为null的老师
(4)查找任课老师不是null 老师
逻辑运算符:“not” 否定某一条件、“and”并且、“between”范围查找、“or”或者、“in”or的简单写法。
(5)选出成绩表中成绩在60-90的成绩的学生
(6)查找出学生表中性别是'男'并且姓名是‘猴子’或者‘马云’的学生
(7)用between选出成绩表中成绩在60-90的成绩的学生
注意:
- between 查找出的值包含两个边界。
- 在实际使用中尽量避免使用in和not in,因为这样会导致数据库进行全表搜索,增加运行时间。
- 尽量避免使用or,or同样会导致数据库进行全表搜索。
(8)成绩表中成绩小于60或大于90的学生
(9)查找姓名是'猴子'或'马云'的学生
(10)查找姓名不是'猴子'也不是'马云'的学生
- 字符串模糊查询
sql语句用关键词like进行模糊查询,“%”表示查找任意的字符串,“_”下划线表示任意一个字符。
(1)查询姓‘猴’的学生
(2)查询姓名中最后一个字是'子'结尾的学生
(3)查询姓名有'思'的学生
(4)查询姓名是三个字的姓‘王’的学生
- 练习题 SQLZOO