select语句基础
列的查询
从表中选取数据时需要使用select语句,通过select语句查询并选取出必要数据的过程称为匹配查询或查询。
语法结构如下:
select <列名1>,<列名2>,<列名3>...
from <表名>;
该select语句包含了select和from两个子句。
通过以上语句我们就可以查询某个表的某一列的内容了,如下图:
查询单列:
查询多列:
查询结果中列的顺序和select子句中的顺序相同,如下图:
我们如果想要快速查询表格中的所有的列时,可以使用代表所有列的"*",语法结构如下:
select *
from <表名>;
例:
当然,如果使用星号的话,就无法设定列的显示顺序了,这时将会按照创建表时的列的顺序显示。
注意:在查询之前要先选择使用所查询表所在的数据库,否则将会出现错误,如下图:
选择使用数据库的语句十分简单,语法结构如下:
use <数据库名称>;
例:
当出现了Database changed语句后你就可以对该数据库里面的表格进行修改了。
为列设置别名
SQL语句可以使用AS关键字为列设置别名,语法结构如下:
select <列名1> AS <别名1>,
<列名2> AS <别名2>,
...
from <表名>;
别名可以使用中文,使用中文时需要用**双引号(")**将中文别名括起来。
例:
常数的查询
我们往表里面输入的信息为常数,常见常数有字符串常数、数字常数、日期常数。
我们同样可以使用select语句查询出这些常数,语法结构如下:
select
例:
注意:在SQL语句中使用字符串或者日期常数时,必须使用单引号( ’ )将其括起来。
从结果中删除重复行
当我们想要查看商品一共有多少个种类时,我们可以选择删除重复的数据来实现。
删除重复行时,就可以通过在select子句中使用distinct来实现,语法结构如下:
select distinct <列名>
from <表名>;
例:
注意:在使用distinct时,null也被视为一类数据。
我们也可以多列使用distinct,此时,会将多个列的数据进行组合,将重复的数据合并到一块,语法结构如下:
select distinct <列名1>,<列名2>,...
from <表名>;
注意:distinct关键字只能用在第一个列名之前。
根据where子句来选择记录
select语句可以通过where子句来指定查询数据的条件,可以查询出只符合该条件的记录,语法结构如下:
select <列名>,...
from <表名>
where <条件表达式>;
该语句的原理是:先通过where子句查询出符合指定条件的记录,然后再选取出select语句指定的列。
例:
例子中的”product_type=‘文具’“就是用来表示查询条件的表达式(条件表达式),上述条件就是将product_type列的值和’文具’进行比较,判断是否相等。
其实也可以这样使用,如下图:
像上图中只选取出了product_name列,并没有product_type列的内容。
注意:SQL中子句的书写顺序是固定的,不能随意更改。
随意更改子句的顺序会造成错误,如下图所示:
注释的书写方法
注释是SQL语句中用来标识说明或者注意事项的部分,注释对SQL的执行没有任何影响。
注释的书写方法分两种:
- 一行注释
书写在“- -”之后,只能写在同一行 - 多行注释
书写在“/* ” 和“ */”之间,可以跨多行
注意:“- -”之后需要加入一个空格,不加的话就不会被认为是注释。
例:
一行注释:
多行注释:
算术运算符和比较运算符
算术运算符
SQL语句中可以使用计算表达式。
例:
从上图的例子中我们可以看出来,"product_price"进行了一个乘法的运算,事实上我们还可以进行以下的运算:
含义 | 运算符 |
---|---|
加法运算 | + |
减法运算 | - |
乘法运算 | * |
除法运算 | / |
四则运算所使用的运算符称为算术运算符。
当然,SQL语句中也可以像平常运算表达式那样使用括号(),优先进行运算。
注意:所有包含null的计算,其结果一定是null。
比较运算符
比较运算符
运算符 | 含义 |
---|---|
= | 和~相等 |
<> | 和~不相等 |
>= | 大于等于~ |
> | 大于~ |
<= | 小于等于~ |
< | 小于~ |
比较运算符用在日期数据上
比较运算符还可以使用在日期上,如下图:
上图中的“regist_date<‘2020-05-19’”表示在2020-05-19之前的日期。
比较运算符用在字符数据上
我们创建了一个新表,里面只有一个字符型的列,如下图:
往表里面插入数据
表的内容
使用比较运算符对这些字符型数据进行比较
用数字和字符串进行比较
如果字符串开头带有数字,则和字符串开头的数字进行比较,如下图:
字符串和字符串进行比较
比较字符串的ASCLL码值的大小,如下图:
不能对NULL使用比较运算符(IS NULL运算符和IS NOT NULL运算符)
我们往表中插入了两个价格为NULL的数据,如下图:
在表中进行比较
我们可以看到,无论如何进行比较,两个价格为NULL的商品都不会出现。
就算我们直接使用“=”也不会出现…
其实SQL中提供了专门用来判断是否为NULL的IS NULL运算符,我们可以通过它选取价格为NULL的商品,如下:
当然,既然可以选取是NULL的,也可以选取不是NULL,使用IS NOT NULL运算符即可,如下图: