一、基本的查询语句
查询语句:select <列名1>,<列名2>,...
from <表名>;
使用查询语句,可以返回查询结果。
从student表中查询出姓名、性别两列。
星号(*)表示查询出全部列。
为列名设定别名as,如将student表中姓名列名改为“name”,性别改为“人类性别”
删除重复数据distinct(截然不同的; 有区别的),删除重复数据。
如果我们将distinct用于多列之前,数据并没有删除,如果多列的数据均完全相同的话才可以删除掉。
如果在编辑器中写了多个运行语句,但只想运行其中一个,那就选中需要运行的语句,然后点击运行已选择的。如下图,运行已选择的语句后只显示出了性别的非重复项。
二、指定查询条件
select <列名1>,<列名2>,...
from <表名>
where <条件>;
想查询姓名为“马云”的姓名及出生日期。
从该例子中可以看出SQL的运行顺序与书写顺序是不同的,
运行顺序:
1) from student(从student中查找数据)
2) where 姓名='马云'(查询出符合该条件的行)
3) select 姓名,出生日期(从上一步查询的行中选取出指定的列)
三、注释和sql语句注意事项
四、运算符
共3中运算符:算数运算符、比较运算符、逻辑运算符
1)算数运算符
讲除法运算及as一起使用,比如下图可显示出“百分比成绩”
2)比较运算符
在表student中,我们查询出姓名不叫猴子的全部列
查询score表中,成绩大于等于80分的学号及成绩。
查询student表中出生日期大于1990-01-01的姓名及出生日期。这里注意输入条件中,要符合出生日期的格式。
如何查询出null值?
如何查询出' '值(空值)?
3)逻辑运算符
查询score表中,不是成绩小于等于80分的学号及成绩。
查询score表中,成绩大于等于60且成绩小于等于90的学号、成绩。
查询姓名是'男'并且姓名是猴子或者马云的信息
查询score表中成绩在60<=成绩<=90的信息,需要注意的是:between运算符会包含两个边界的值。
查询score表中成绩小于80或者成绩大于90的信息。
in是or的简便写法,查询student中姓名是猴子或者马云的信息。
查询student中姓名既不是猴子也不是马云的信息。
五、字符串模糊查询
模糊查询:like
%表示任意字符串,如下图3个例子。注意%表示任意字符串,所以'王%'会查询出'王思聪'
-1个下划线代表任意1个字符,与%一定要区分开。如下图可充分理解1个下划线代表任意1个字符串的含义。
查询姓“猴”的学生名单
查询姓名中最后一个字是“猴”的学生名单
查询姓名中带“猴”的学生名单
sqlzoo简单查询:
sqlzoo运算符查询:
select name,continent,population
from world;
select name
from world
where population>200000000;
select name,gdp/polulation
from world
where population>200000000;
select name,population/1000000
from world
where name='South America';
select name,population
from world
where name in ('France','Germany','Italy');
select name
from world
where name like '%United%';
select name,population,area
from world
where area >3000000 or population>250000000;
select name,population,area
from world
where (population>250000000 or area <=3000000) and (population<=250000000 or area >3000000);
select name,round(population/1000000,2),round(gpd/1000000000,2)
from world
where continent='South America';
select name,round(gdp/population,-3)
from world
where gdp>1000000000000;
sqlzoo平台 select names(字符串模糊查询)
1.找出以 Y 字母开头的国家名称
select name
from world
where name like 'Y%';
2.找出以 Y 字母结尾的国家名称
select name
from world
where name like '%Y';
3.找出所有国家名字中包括字母x
select name
from world
where name like '%x%';
4.找出所有国家,其名字以 land 作結尾。
select name
from world
where name like '%land';
5.找出所有国家,其名字以 C 开始,ia 结尾。
select name
from world
where name like 'C%ia';
6.找出所有国家,其名字包括字母oo。
select name
from world
where name like '%oo%';
7.找出所有国家,其名字包括三个或以上的a。
select name
from world
where name like '%a%a%';
8.找出所有国家,其名字以t作第二个字母
select name
from world
where name like '_t%';
9.找出所有国家,其名字都有两个字母 o,被另外两个字母相隔着
select name
from world
where name like '%o__o%';
10.找出所有国家,其名字都是 4 个字母的
select name
from world
where name like '____';
11.查找所有国家的名字,其首都和国家名字是相同的
select name
from world
where name = capital;