查詢
關系運算符
<,>,!=(<>),=
邏輯運算符
and,or,not
in between
in查詢的是指定的內容in(20,40)
between查詢的是一個范圍between 20 and 40(相當于>=and<=)
條件查詢
查詢一個年齡大于18的女孩或者等于16歲的
SELECT * FROM user WHERE (age > 18 AND sex = "女") or age = 16;
查詢年齡不為40
SELECT * FROM user where age <> 40;
查詢年齡小于18或為女性
SELECT * FROM user WHERE age < 18 or sex = "女";
查詢有性別的
SELECT * FROM user WHERE sex is NOT null;
所有的人的年齡和、年齡最大的誰?最小的?平均年齡是多少?聚合函數 sum max min avg 平均值 列的別名 as(可以省略)
SELECT SUM(age) as 年齡和,MAX(age) 最大年齡,MIN(age) AS 最小年齡,avg(age) AS 平均 from user;
部門共有多少人?
SELE9CT COUNT(id) FROM user;
模糊查詢
SELECT * FROM user WHERE username LIKE
'%劉%'
%表示通配 查詢含有劉的
SELECT * FROM user WHERE username LIKE '劉%'
查詢以劉開頭的
SELECT * FROM user WHERE username LIKE '_劉%'
查詢第二個字是劉的 _表示占位
排序
order by 列名 [asc|desc]
默認為asc,為正序排列
desc為倒敘排列
分組查詢
group by
SELECT sex, COUNT(*) from user where true and GROUP BY sex having sex is not NULL
having 篩選 # 對于分組的數據進行二次過濾 寫在group by 后,有having必有group by 有group by不一定有having
分頁查詢
limit
SELECT * from user LIMIT x,y
從x開始查詢y條
當前頁 pageNow
每頁顯示多少條 pageSize
總共的條數 allCount select count(*) from user
總共有多少頁? pageAll = allCount % pageSize == 0 ? pageAll = allCount % pageSize : pageAll = allCount % pageSize + 1
SELECT * from user where LIMIT (pageNow-1)*pageSize ,pageSize
將兩個表外鏈到一起
create TABLE dept(
id int PRIMARY KEY auto_increment,
name VARCHAR(50),
description VARCHAR(255)
)
create TABLE emp(
id int PRIMARY KEY auto_increment,
name VARCHAR(20) NOT NULL,
age INT,
sex VARCHAR(6),
tel VARCHAR(20),
address VARCHAR(255),
deptId int,
CONSTRAINT FOREIGN key(deptId) REFERENCES dept(id)
)
張三的部門名稱
SELECT name from dept where id = (SELECT deptId from emp where name = '張三')
SELECT dept.name
FROM emp,dept
WHERE emp.name = "張三" AND emp.deptId = dept.id