前面学会如何创建库、对表的增添改查,那么下一步,我们可以在海量的数据中开始简单的查询。此文章包括五个内容:

  • 基本的查询语句;
  • 指定查询条件
  • 注释和sql语句注意事项
  • 运算符
  • 字符串模糊查询

那么我们就一个个攻破,来开始简单查询篇章。



书写规则:

SQL语句以英文分号(;)结尾;
输入列名时不能加单引号,列名间也不能有空格;
SQL语句不区分关键字的大小写(如SELECT=select,INSERT=insert等);
SQL语句输入符号时只能在英文状态下。



一、基本的查询语句

A.查找所需信息

基本查询离不开select语句(选择需要查询的字段)和from语句(字段来源的表)



select <列名1>,<列名2>,...
from <表名>;



根据入门所建的表和数据,我们对student表进行查询姓名和性别信息,查询语句和结果如下:




多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java


B.查找全部信息

利用*来查询全部列


select *
from <表名>;


查询student下所有列的信息,查询语句和结果如下:


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_02


C.为列设定别名

当列名信息不好理解或者为英文,我们需要更改容易理解或中文,就需要对查询列名做重命名使用as


select 姓名 as ‘同学姓名’
from <表名>;


查询结果如下:


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_03


D.删除重复数据

当数据中有多个重复值,我们需要删除重复数据使用distict。假设student内有多个小明数据,我们想删除重复数据:


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_04


查询结果如下,会返回一个小明信息:


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_05


二、指定查询条件

很多时候我们查找一些特定条件下的数据,此时我们需要新的语句where,例如我们想找到学生小红的学号是什么,此时用where来判断,我们选择列的值是否与条件where相等,若相等则返回相应数据:


select <列名1>,<列名2>,...
from <表名>
where <列名1>=‘...’;


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_06


这次我们运行了3条语句,要注意在SQL中,实际运行顺序和你的输入顺序是不一样,像这三语句就是按如下顺序进行的:

  • from student -- 从那张表中查找数据;
  • where 姓名='小红'; -- 用where查询出符合条件的行(记录);
  • select 姓名,学号 -- 从查询出的行中筛选出select语句指出的列,一般是最后运行,返回查询结果

三、注释和sql语句注意事项

要养成添加注释的习惯,方便自己回顾,也方便其他需要看你的语句的同事。操作很简单,注释分为单行注释和多行注释:

A.单行注释:

在语句前面输入“--”+空格”,后面就可以添加注释内容了,注意:一定不要忘了在小横线后面加空格哦!


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_07


B.多行注释:

注释用“/*”开始,用“*/”结尾。


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_08


SQL语句的注意事项:用英文符号,子句之间不要空行,要和前面的书写规则一起记住了哦!

四、运算符

使用运算符来辅助我们为sql赋予复杂的查询条件,运算符分为三种类型:算术运算符、比较运算符、逻辑运算符。下面我们来一一攻破:

A.算术运算符

有括号先运算括号内运算


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_09


查询score表的成绩,使用除法运算符化为百分比形式


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_10


B.比较运算符

可以和where一起使用,设计取数据的规则


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_11


例如查询score数据中,成绩大于60的成绩都有哪些


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_12


其中,查询空值和非空值可以使用is null 或者 is not null


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_13


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_14


C.逻辑运算符

逻辑运算可以将多个查询条件组合起来,方便我们查找更精准的信息


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_15


not运算符:用于否定查询条件


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_16


and运算符:用于两个条件同时满足,取交集情况


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_17


between运算符:范围查询,尤其对于数字和日期的数据更方便使用(包括两端边界值)


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_18


or运算符:只有符合条件的数据即返回数据


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_19


in运算符:是or的简便写法,在范围内的数据返回;not in 不在范围内的数据返回。

五、字符串模糊查询

我们使用like语句运用通配符进行模糊查询:

  • % :表示任意长度的字符串,长度可以为0;例如:like ‘a%b’,以a开头,b结尾任意长度的内容;


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_20


  • _:一个下划线就表示一个字符;例如:like ‘a_b’,以a开头,b结尾任意长度为3个字符的内容。


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_21


下面,让我们一起去SQLZOO完成一些练习题吧巩固知识点! 网址:SQLZOO


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_22


A. basics quiz下的练习


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_23


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_24


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_25


B. from world quiz下的练习


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_26


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_27


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_28


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_29


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_30


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_31


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_32


多关键字查询 空格隔开 java sql多个关键字查询_多关键字查询 空格隔开 java_33