查看表結構:
desc table_name;
查看表詳細結構:
show create table table_name;
SELECT語句:
基本查詢:
SELECT 列名 FROM 表名 WHERE 限制條件;
-- example:
select id,name from table_name where age>20;
AND 和 OR 和 BETWEEN
AND:
-- example:
select name,age from table_name where age>20 and id<10;
OR:
-- OR example:
select id,name from table_name where age > 20 or age < 10;
BETWEEN:
select id, name from table_name where age between 25 and 30; --[25,30]
select id, name from table_name where age>=25 and age<=30; --[25,30]
IN 和 NOT IN
select id from table_name where name in ('name1', 'name2');
select id from table_name where name not in ('name1', 'name2');
通配符查詢
SQL中的通配符是 _ 和 % 。其中 _ 代表一個未指定字符,% 代表不定個未指定字符,關鍵字 LIKE 可用于實現(xiàn)模糊查詢,常見于搜索功能中。
- 比如,要只記得電話號碼前四位數(shù)為1101,而后兩位忘記了,則可以用兩個
_通配符代替:
--找出所有phone以1101開頭后接兩位數(shù)字的數(shù)據(jù):
select name, age, id from table_name where phone like '1101__';
- 比如只記名字的首字母,又不知道名字長度,則用
%通配符代替不定個字符:
--找出所有name以J開頭的數(shù)據(jù):
select name, age, id from table_name where name like 'J%';
結果排序:
排序關鍵字:**order by**
默認情況下,ORDER BY 的結果是升序排列,而使用關鍵詞 ASC 和 DESC 可指定升序或降序排序。
比如,我們按 salary 降序排列,SQL語句為:
--按照salary降序排列結果
select name, age, id, salary from table_name order by salary desc;
--按照age升序排列結果
select age, id from table_name order by age;
select age, id from table_name order by age asc;
MySQL內(nèi)置函數(shù)和計算
| 函數(shù)名: | COUNT | SUM | AVG | MAX | MIN |
|---|---|---|---|---|---|
| 作用: | 計數(shù) | 求和 | 求平均值 | 最大值 | 最小值 |
- MAX
--選出最大的age
SELECT MAX(age) FROM table_name;
--效果等同于:
SELECT age FROM table_name;
MAX(age);
- MIN
--AS可以作為別名,和php,python中的as效果類似
SELECT MIN(age) AS min_age FROM table_name;
- COUNT
--計算name有多少數(shù)量,不包含NULL數(shù)據(jù)
SELECT COUNT(name) FROM table_name;
子查詢
- [ ] TODO
連接查詢
- [ ] TODO