SQL資料庫單表查詢
案例資料庫: world
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name']
[FROM table_references
[WHERE where_definition]
[GROUP BY {col_name | expr | POSITION}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_definition]
[ORDER BY {col_name | expr | POSITION}
[ASC | DESC] , ...]
[LIMIT {[OFFSET,] ROW_COUNT | ROW_COUNT OFFSET OFFSET}]
[PROCEDURE procedure_name(argument_list)]
[FOR UPDATE | LOCK IN SHARE MODE]]
-- 最簡單的select -- mysql中的函式
SELECT 表示式/函式;
SELECT 1+1;
SELECT 5>6; -- 0 false 1 true
SELECT 7>6;
SELECT POW(2,3);
SELECT (7>6)*10/5;
SELECT NOW();
-- 數學函式
SELECT ABS(-5);
SELECT PI();
SELECT SQRT(9);
SELECT MOD(6,5);
SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
SELECT DATE_FORMAT('2050-12-25', '%W %M %Y');
-- 字串函式
-- 日期時間函式
SELECT CURDATE();
SELECT CURDATE() + 0;
-- 自學mysql函式
-- https://tool.oschina.net/apidocs/apidoc?api=mysql-5.1-zh
-- 簡單的select -- 單表中查詢資料
SELECT 表中的列 , [表示式|函式 ] -- 列名,表示式,函式,之間用逗號隔開
FROM 表名; -- 查詢的物件是表,查詢的結果也是表
-- 分析查詢的資料來自哪個表 -country
-- 表中查詢那些列資訊
SELECT `Name`,`Population`
FROM `country`;
-- 人口數資料 +人
SELECT `Name`,`Population`,CONCAT(Population,'人')
FROM `country`;
-- 人口資料 (萬人) 227200000 2272萬人
SELECT `Name`,`Population`,CONCAT(Population/10000,'萬人')
FROM `country`;
-- 查詢表中所有列資料資訊
SELECT `Code`,`Continent`,`Region`,`SurfaceArea`,`IndepYear`,`Population`,
`LifeExpectancy`,`GNP`,`GNPOld`,`LocalName`,`GovernmentForm`,`HeadOfState`,`Capital`,`Code2`,`Name`
FROM `country`;
-- * 代表所有列
SELECT * ,CONCAT(Population/10000,'萬人')
FROM `country`;
-- 簡單的select -- where子句 查詢滿足條件的資料
SELECT 表中的列 , [表示式|函式 ] -- 列名,表示式,函式,之間用逗號隔開
FROM 表名 -- 查詢的物件是表,查詢的結果也是表
WHERE 條件表示式;
-- 查詢人口數小於10000(`Population`<10000)的國家資訊
SELECT *
FROM `country`
WHERE `Population`<10000; -- 資料篩選,顯示滿足條件的資料,過濾了不滿足條件的資料
-- 條件表示式
-- 列名 條件運算子(謂詞) 值
-- (條件表示式1) 邏輯運算子 (條件表示式2)
-- 比較
-- 確定範圍 BETWEEN AND(>= <=), NOT BETWEEN AND
/*
表8-1
表9-2
*/
-- 查詢人口數(`Population`>=10000)大於等於10000且小於等於100000(`Population`<=100000)的國家資訊
SELECT *
FROM country
WHERE (`Population`>=10000) && ( `Population`<=100000);
SELECT *
FROM country
WHERE (`Population`>=10000) AND ( `Population`<=100000);
SELECT *
FROM country
WHERE Population BETWEEN 10000 AND 100000;
-- 確定集合 (條件值在集合中)
-- 查詢非洲、亞洲、歐洲 `Continent` 國家資訊
SELECT *
FROM `country`
WHERE (Continent='Adrica') OR (Continent='Asia' ) OR (Continent='Europe');
SELECT *
FROM `country`
WHERE (Continent='Adrica') || (Continent='Asia' ) || (Continent='Europe');
SELECT *
FROM `country`
WHERE Continent IN ('Adrica','Asia' ,'Europe');