一、基本查询语句

select ,,... ...

from ;

select字句表示想要展示的字段,from字句表示数据源来自哪个表。

select * 表示查询所有的列。

用 as 给列设置别名(不更改列名),例如表中的列名原为姓名,改为name输出:

-- 姓名字段列名以name输出select 姓名 as name from student;

用distinct删除重复值,例如删除姓名列中的重复值:

-- 删除姓名列中的重复值select distinct 姓名 from student;

如果distinct放在多列前,表示删除这些列组合后的重复值:

-- 删除学号和姓名组合列中的重复值select distinct 学号,姓名 from student;

列名的书写规则:列名不能加单引号

列名命名时不能是关键字,不能有空格

二、指定查询条件

where关键字指定查询条件,例如要查询姓名是猴子的学号和姓名:

-- 查询姓名是猴子的学号和姓名select 姓名,学号

from student

where 姓名='猴子';

SQL运行顺序:from → where → select,以上面语句举例,SQL先from定位到student表查找数据,然后where筛选出符合姓名是猴子的所有行,最后从符合条件的行中选取select指定的列。

所以需要特别注意,SQL运行顺序和书写顺序是不一致的。

三、注释

注释分为单行注释和多行注释

四、运算符

算术运算符算术运算符含义

+加法运算

-减法运算

*乘法运算

/除法运算

例如:将score的成绩除以100后,以百分比成绩命名

-- 除法运算符select 学号,成绩,

成绩/100 as '百分比成绩'

from score;

比较运算符比较运算符含义

=等于

<>不等于

>大于

>=大于等于

<=小于等于

例如:查询成绩小于60的学号和成绩

-- 查询成绩小于60的学号和成绩select 学号,成绩

from score

where 成绩<60;

例如:查询出生日期小于‘1990-01-01’的姓名和出生日期

-- 查询出生日期小于‘1990-01-01’的姓名和出生日期select 姓名,出生日期

from student

where 出生日期 < '1990-01-01';

注意:字符串的比较是按照每个字符的先后顺序进行比较的,例如字符串‘10’与‘2’比较,虽然数字10>2,但因为是字符串,首先字符‘1’会与‘2’进行比较,得出‘1’

逻辑运算符逻辑运算符含义

not否定某一条件

and并且

between范围查询

or或者

inor的简单写法

例如:查询成绩大于等于60,且小于等于90的学号和成绩

-- 查询成绩大于等于60,且小于等于90的学号和成绩select 学号,成绩

from score

where 成绩 >= 60

and 成绩 <= 90;

还可以用between+and表示范围,简化以上语句

-- 查询成绩大于等于60,且小于等于90的学号和成绩select 学号,成绩

from score

where 成绩 between 60 and 90;

例如:查询性别是男,并且姓名是猴子或者马云的学生:

-- 查询性别是男,并且姓名是猴子或者马云的学生select *

from student

where 性别 = '男'

and (姓名 = '猴子' or 姓名 = '马云');

例如:查询成绩小于60,或者大于90的学号和成绩:

-- 查询成绩小于60,或者大于90的学号和成绩select 学号,成绩

from score

where 成绩 < 60

or 成绩 > 90;

例如:查询姓名不等于猴子或马云的姓名和性别:

-- 查询姓名不等于猴子或马云的姓名和性别select 姓名,性别

from student

where 姓名 not in ('猴子','马云');

五、字符串模糊查询

关键字like表示字符串模糊查询,一般与%或_搭配使用,其中%表示任意个字符串,_表示任意1个字符串。

例1:查询姓“猴”的学生名单

-- 查询姓“猴”的学生名单select *

from student

where 姓名 like "猴%";

例2:查询姓名中最后一个字是“猴”的学生名单

-- 查询姓名中最后一个字是“猴”的学生名单select *

from student

where 姓名 like "%猴";

例3:查询姓名中带“猴”的学生名单

-- 查询姓名中带“猴”的学生名单select *

from student

where 姓名 like "%猴%";

六、sqlzoo练习题

为了巩固知识点,可以去练习平台sqlzoo自己做题,通过不断练习试错,可快速提高熟练度。SQLZOOsqlzoo.net

1、SELECT basics

2、SELECT from world