基本查詢、條件查詢
基本查詢
-- 查詢所有欄位
-- select * from 表名;
select * from students;
select * from classes;
select id, name from classes;
-- 查詢指定欄位
-- select 列1,列2,... from 表名;
select name, age from students;
-- 使用 as 給欄位起別名
-- select 欄位 as 名字.... from 表名;
select name as 姓名, age as 年齡 from students;
-- select 表名.欄位 .... from 表名;
select students.name, students.age from students;
-- 可以通過 as 給表起別名
-- select 表名.欄位 .... from 表名 as 別名;
select students.name, students.age from students;
select s.name, s.age from students as s;
-- 失敗的select students.name, students.age from students as s;
-- 消除重複行
-- distinct 欄位
select distinct gender from students;
條件查詢
比較運算子
-- select .... from 表名 where .....
-- >
-- 查詢大於18歲的資訊
select * from students where age>18;
select id,name,gender from students where age>18;
-- 查詢小於18歲的資訊
select * from students where age<18;
-- 查詢年齡為18歲的所有學生的名字
select * from students where age=18;
邏輯運算子
-- and
-- 18到28之間的所以學生資訊
select * from students where age>18 and age<28;
-- 失敗select * from students where age>18 and <28;
-- 18歲以上的女性
select * from students where age>18 and gender="女";
select * from students where age>18 and gender=2;
-- or
-- 18以上或者身高查過180(包含)以上
select * from students where age>18 or height>=180;
-- not
-- 不在 18歲以上的女性 這個範圍內的資訊
-- select * from students where not age>18 and gender=2;
select * from students where not (age>18 and gender=2);
-- 年齡不是小於或者等於18 並且是女性
select * from students where (not age<=18) and gender=2;
模糊查詢
-- like
-- % 替換1個或者多個
-- _ 替換1個
-- 查詢姓名中 以 "小" 開始的名字
select name from students where name="小";
select name from students where name like "小%";
-- 查詢姓名中 有 "小" 所有的名字
select name from students where name like "%小%";
-- 查詢有2個字的名字
select name from students where name like "__";
-- 查詢有3個字的名字
select name from students where name like "__";
-- 查詢至少有2個字的名字
select name from students where name like "__%";
-- rlike 正則
-- 查詢以 周開始的姓名
select name from students where name rlike "^周.*";
-- 查詢以 周開始、倫結尾的姓名
select name from students where name rlike "^周.*倫$";
範圍查詢
-- in (1, 3, 8)表示在一個非連續的範圍內
-- 查詢 年齡為18、34的姓名
select name,age from students where age=18 or age=34;
select name,age from students where age=18 or age=34 or age=12;
select name,age from students where age in (12, 18, 34);
-- not in 不非連續的範圍之內
-- 年齡不是 18、34歲之間的資訊
select name,age from students where age not in (12, 18, 34);
-- between ... and ...表示在一個連續的範圍內
-- 查詢 年齡在18到34之間的的資訊
select name, age from students where age between 18 and 34;
-- not between ... and ...表示不在一個連續的範圍內
-- 查詢 年齡不在在18到34之間的的資訊
select * from students where age not between 18 and 34;
select * from students where not age between 18 and 34;
-- 失敗的select * from students where age not (between 18 and 34);
空判斷
-- 判空is null
-- 查詢身高為空的資訊
select * from students where height is null;
select * from students where height is NULL;
select * from students where height is Null;
-- 判非空is not null
select * from students where height is not null;