1. 程式人生 > 其它 >SQL資料庫單表查詢

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');