2、查询基础
2-1:SELECT语句基础
1、使用SELECT语句从表中选取数据
2、为列设定显示用的别名
3、SELECT语句中可以使用常数或者表达式
4、通过指定DISTINCT可以删除重复的行
5、SQL语句注释
6、可以通过WHERE语句从表中选取出符合查询条件的数据
2-1-1:列的查询
语法2-1:SELECT <>,.... FROM <表名>;
-- 从Shohin表中输出3列 SELECT shohin_id, shohin_mei, shohin_tanka FROM Shohin;
2-1-2:查询出表中的所有列
语法2-2:SELECT * FROM <表名>;
-- 输出Shohin表中全部的列 SELECT * FROM shohin;
法则2-1:星号(*)代表全部列的意思。
2-1-3:为列设定别名:使用AS关键词
-- 为列设定别名 SELECT shohin_id AS id, shohin_mei AS namae, shiire_tanka AS tanka FROM Shohin; -- 设定汉语别名 SELECT shohin_id AS "商品编号", shohin_mei AS "商品名称", shiire_tanka AS "进货单价" FROM Shohin;
法则2-2:设定汉语别名时需要使用双引号("")括起来。
2-1-4:常数的查询:直接输入
2-1-5:从结果中删除重复行
法则2-3:在SELECT语句中使用DISTINCT可以删除重复行,且作用与之后的跟着的所有列。
-- 去除shohin_bunrui列中重复的数据 SELECT DISTINCT shohin_bunrui FROM Shohin; -- 在多列之前使用DISTINCT SELECT DISTINCT shohin_bunrui, torokubi FROM Shohin;
2-1-6:根据WHERE语句来选择记录
语法2-3:SELECT <列名>,.....
FROM <表名>
WHERE <条件表达式>;
-- 选取shohin_bunrui列为”衣服“的记录的SELECT语句 SELECT shohin_mei, shohin_bunrui FROM Shohin WHERE shohin_bunrui = '衣服';
法则2-4:WHERE子句紧跟在FROM子句之后。
2-1-7:注释的书写方法
1、行注释:书写在"--"这后,只能写在同一行,Mysql要空格。
2、多行注释:书写在"/**/"之间,可以跨多行。
2-2:算术运算符和比较运算符
1、运算符就是对其两边的列或者值进行运算(计算或者大小比较乖)符号
2、使用算术运算符可以进行四则运算
3、括号可以提升运算的优先顺序
4、包含NULL的运算,其结果也是NULL
5、比较运算符可以用来判断列或者值是否相等,还可以用来比较大小
6、判断是否为NULL,需要使用IS NULL或者IS NOT NULL运算符
2-2-1:算术运算符:+ - * /
-- 商品单价的两倍 SELECT shohin_mei,hanbai_tanka,hanbai_tanka * 2 AS "hanbai_tanka_x2" FROM Shohin;
法则2-6:SELECT子句中可以使用常数或者表达式。
2-2-2:需要注意NULL:所有包含NULL的计算,结果肯定是NULL
2-2-3:比较运算符
运算符 | 含义 |
= | 是否相等 |
<> | 不相等 |
>= | 大于等于 |
> | 大于 |
<= | 小于等于 |
< | 小于 |
-- 选出hanbai_tanka列为500的记录 SELECT shohin_mei, shohin_bunrui FROM Shohin WHERE hanbai_tanka = 500;
2-2-4:对字符串使用不等号时的注意事项
'1-3'比'2'小,'3'大于'2-2'
法则2-8:字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。
2-2-5:不能对NULL使用比较运算符
法则2-9:选取NULL记录时,需要在条件表达式中使用IS NULL运算符,选取不是NULL时使用 IS NOT NULL运算符。
2-3:逻辑运算符
1、通过逻辑运算符可以组个多个查询条件
2、通过NOT运算符可以组成"不是"这样的查询条件
3、两边条件都成立时,使用AND查询条件才成立
4、两边成立一个,使用OR运算符查询条件成立
5、SQL中的逻辑运算是包含对真、假和不确定进行运算的三值逻辑
2-3-1:NOT运算符
SELECT shohin_mei, shohin_bunrui, hanbai_tanka FROM Shohin WHERE NOT hanbai_tanka >= 1000;
法则2-10:NOT运算符用来否定一条件,但不能滥用。
2-3-2:AND运算符和OR运算符
法则2-13:AND运算符的优先级高于OR运算符,想要提高优先级使用括号。
2-3-3:逻辑运算符和真值
1、AND两个都为真才为真
2、OR一个为真就为真
2-3-4:含有NULL时的真值,含有不确定(NULL)都为不确定(NULL)。