?? ???
?? ??
??? ????? ?? ???? ?? ??? ???? ??????. ? ????? ?? ??? ???? ?? ?? ??? ?????.
money?? ??? ??? ??????.
???? ???? ??? ??? ????.
CREATE TABLE money ( id INT NOT NULL AUTO_INCREMENT , username VARCHAR(50) NOT NULL , balance FLOAT NOT NULL , province VARCHAR(20) NOT NULL , age TINYINT UNSIGNED NOT NULL , sex TINYINT NOT NULL , PRIMARY KEY (id(10)) ) ENGINE = InnoDB CHARACTER SET utf8;
??? ??? ???? ??? ????.
??:
??? ??? ?????.
??? ??? ?????.
?? ??
??: "*"? ?? ??? ???? ??????. ? ?? ?? ??? ?????.
mysql> select * from money; +----+-----------+---------+-----------+-----+-----+ | id | username | balance | province | age | sex | +----+-----------+---------+-----------+-----+-----+ | 1 | 李文凱 | 120.02 | 湖北 | 29 | 1 | | 2 | 范冰冰 | 260.23 | 山東 | 40 | 0 | | 3 | 黃曉明 | 150.86 | 山東 | 40 | 1 | | 4 | 井柏然 | 810 | 遼寧 | 27 | 1 | | 5 | 李冰冰 | 20.15 | 黑龍江 | 43 | 0 | | 6 | 成龍 | 313 | 山東 | 63 | 1 | | 7 | 楊冪 | 123 | 北京 | 30 | 0 | | 8 | 劉詩詩 | 456 | 北京 | 29 | 1 | | 9 | 柳巖 | 23.4 | 湖南 | 36 | 0 | | 10 | 趙本山 | 3456 | 遼寧 | 63 | 1 | | 11 | 汪峰 | 34.32 | 北京 | 44 | 1 | | 12 | 郭德綱 | 212 | 天津 | 43 | 1 | +----+-----------+---------+-----------+-----+-----+ 12 rows in set (0.00 sec)
?? ?? ??
mysql> select id,username, balance from money; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 1 | 李文凱 | 120.02 | | 2 | 范冰冰 | 260.23 | | 3 | 黃曉明 | 150.86 | | 4 | 井柏然 | 810 | | 5 | 李冰冰 | 20.15 | | 6 | 成龍 | 313 | | 7 | 楊冪 | 123 | | 8 | 劉詩詩 | 456 | | 9 | 柳巖 | 23.4 | | 10 | 趙本山 | 3456 | | 11 | 汪峰 | 34.32 | | 12 | 郭德綱 | 212 | +----+-----------+---------+ 12 rows in set (0.00 sec)
???? ?? ??? ??? ?? ?? ?? ??
mysql> select distinct age deptno from money; +--------+ | deptno | +--------+ | 29 | | 40 | | 27 | | 43 | | 63 | | 30 | | 36 | | 44 | +--------+ 8 rows in set (0.00 sec)
??? ??
mysql> select * from money where age = 29; +----+-----------+---------+----------+-----+-----+ | id | username | balance | province | age | sex | +----+-----------+---------+----------+-----+-----+ | 1 | 李文凱 | 120.02 | 湖北 | 29 | 1 | | 8 | 劉詩詩 | 456 | 北京 | 29 | 1 | +----+-----------+---------+----------+-----+-----+ 2 rows in set (0.00 sec)
???
?? ???? ??? ???? ???? ?? ??? ??? ? ?? ?????. ?? ??? ??? '=' ?? ???? ??? ??? ????.
?? >, <, >=, <=, !=? ?? ?? ???? ??? ?? ????.
?? ???
?? ? and? ?? ?? ???? ???? ?? ?? ?? ??? ???? ? ?? ??? ??? ?? ????.
mysql> select * from money where id <10 and province='湖北'; +----+-----------+---------+----------+-----+-----+ | id | username | balance | province | age | sex | +----+-----------+---------+----------+-----+-----+ | 1 | 李文凱 | 120.02 | 湖北 | 29 | 1 | +----+-----------+---------+----------+-----+-----+ 1 row in set (0.00 sec)
?? ?? ??
?? ??? ?? ? ?? ??? ????? order by? ?????. ??? desc ? asc ??? ?? ??? ????. desc? ???? ?????? ???? ?? ????, asc? ?????? ???? ?? ?????. ???? ?? ??? ???? ?????? ?????.
?????? ?? ??
order by ??? ?? ?? ?? ?? ?? ??? ? ? ???, ?? ??? ?? ?? ?? ??? ??? ????. ?? ??? ?? ???? ??? ?? ?? ??? ?? ?? ?????. ? ?? ?? ??? ?????.
* ??: ? ?? ??? ?? ??? ??? ??. ? ?? ?? ?? ??? ???? ????. ? ?? ? ?? ??? ???? ????. *
mysql> select id,username, balance from money order by balance desc; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 10 | 趙本山 | 3456 | | 4 | 井柏然 | 810 | | 8 | 劉詩詩 | 456 | | 6 | 成龍 | 313 | | 2 | 范冰冰 | 260.23 | | 12 | 郭德綱 | 212 | | 3 | 黃曉明 | 150.86 | | 7 | 楊冪 | 123 | | 1 | 李文凱 | 120.02 | | 11 | 汪峰 | 34.32 | | 9 | 柳巖 | 23.4 | | 5 | 李冰冰 | 20.15 | +----+-----------+---------+ 12 rows in set (0.00 sec)
?? ?? ??
?? ?? ??? ?? ??? ?? ??? ?? ??? ????? ??? ?????. ? ?? ?? ??? ?? ?????.
mysql> select id,username, balance from money order by balance desc,age asc; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 10 | 趙本山 | 3456 | | 4 | 井柏然 | 810 | | 8 | 劉詩詩 | 456 | | 6 | 成龍 | 313 | | 2 | 范冰冰 | 260.23 | | 12 | 郭德綱 | 212 | | 3 | 黃曉明 | 150.86 | | 7 | 楊冪 | 123 | | 1 | 李文凱 | 120.02 | | 11 | 汪峰 | 34.32 | | 9 | 柳巖 | 23.4 | | 5 | 李冰冰 | 20.15 | +----+-----------+---------+ 12 rows in set (0.00 sec)
?? ??? ???? ??
mysql> select * from money limit 5; +----+-----------+---------+-----------+-----+-----+ | id | username | balance | province | age | sex | +----+-----------+---------+-----------+-----+-----+ | 1 | 李文凱 | 120.02 | 湖北 | 29 | 1 | | 2 | 范冰冰 | 260.23 | 山東 | 40 | 0 | | 3 | 黃曉明 | 150.86 | 山東 | 40 | 1 | | 4 | 井柏然 | 810 | 遼寧 | 27 | 1 | | 5 | 李冰冰 | 20.15 | 黑龍江 | 43 | 0 | +----+-----------+---------+-----------+-----+-----+ 5 rows in set (0.00 sec)
?? ?? ?? ??
??? 0?? ???? 3?? ???? ???? ?????. ? ?? ????? 3? ???? ? ???? ????. 6?? ????? 4?? ???? ????? ??? ?? ????
?? ?? ?? ?? ??? ???? ???.
? ???? ? ? ? ????
mysql> select id,username, balance from money order by balance desc limit 5; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 10 | 趙本山 | 3456 | | 4 | 井柏然 | 810 | | 8 | 劉詩詩 | 456 | | 6 | 成龍 | 313 | | 2 | 范冰冰 | 260.23 | +----+-----------+---------+ 5 rows in set (0.00 sec)
?? ????? ?? ?????? ???? ?????.
? ???? 10?? ???? ????
??? 1? ?? 0,10
??? 2? ?? 10,10
??? 3? ?? 20,10
??...
???? ??
1. ?? ??? ?? ?? ????
2. ??? ????? ?? ?? ???? ???? ??? ??????
3. ???? ?? ?? ??? ?? ??? ??? ?? ????
4. ?? ???? ??? ?? ??? ??? ?? ????
?? ????? ???? ? ?? ?? ??? ????.
mysql> select id,username, balance from money limit 0,3; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 1 | 李文凱 | 120.02 | | 2 | 范冰冰 | 260.23 | | 3 | 黃曉明 | 150.86 | +----+-----------+---------+ 3 rows in set (0.00 sec)
??? ??? ??? ?? ????. as ???? ?????.
mysql> select id,username, balance from money limit 3,3; +----+-----------+---------+ | id | username | balance | +----+-----------+---------+ | 4 | 井柏然 | 810 | | 5 | 李冰冰 | 20.15 | | 6 | 成龍 | 313 | +----+-----------+---------+ 3 rows in set (0.00 sec)
?? ?? ??
mysql> select count(id) from money; +-----------+ | count(id) | +-----------+ | 12 | +-----------+ 1 row in set (0.00 sec)
?? ??
mysql> select count(id) as zongshu from money; +---------+ | zongshu | +---------+ | 12 | +---------+ 1 row in set (0.00 sec)
?? ?? ??
mysql> select avg(balance) from money; +--------------------+ | avg(balance) | +--------------------+ | 498.24833393096924 | +--------------------+ 1 row in set (0.00 sec)
?? ?? ??
mysql> select sum(balance) from money; +-------------------+ | sum(balance) | +-------------------+ | 5978.980007171631 | +-------------------+ 1 row in set (0.00 sec)
???
???? ?? ???? ???? ???? ????. ??? ??? ?????. ?, ??? ?????.
mysql> select max(balance) from money; +--------------+ | max(balance) | +--------------+ | 3456 | +--------------+ 1 row in set (0.00 sec)
?? ?? ?(????) ??:
mysql> select min(balance) from money; +--------------------+ | min(balance) | +--------------------+ | 20.149999618530273 | +--------------------+ 1 row in set (0.00 sec)
? ?? ?? ?? ??
mysql> select * from money group by province; +----+-----------+---------+-----------+-----+-----+ | id | username | balance | province | age | sex | +----+-----------+---------+-----------+-----+-----+ | 7 | 楊冪 | 123 | 北京 | 30 | 0 | | 12 | 郭德綱 | 212 | 天津 | 43 | 1 | | 2 | 范冰冰 | 260.23 | 山東 | 40 | 0 | | 1 | 李文凱 | 120.02 | 湖北 | 29 | 1 | | 9 | 柳巖 | 23.4 | 湖南 | 36 | 0 | | 4 | 井柏然 | 810 | 遼寧 | 27 | 1 | | 5 | 李冰冰 | 20.15 | 黑龍江 | 43 | 0 | +----+-----------+---------+-----------+-----+-----+
???? ???? ?? ??? ??? ??
??? ?? ???? ????. ? ?? ???? ?? ???? ?????.
?? ??? ???? ???? ??? ? ?? ??? ???? ????.
? ??? ???? ? ??? ???? ?? ?? ???? 12?? NULL? ??? ?????. ????.
mysql> select deptno, count(1) from emp group by deptno; +--------+----------+ | deptno | count(1) | +--------+----------+ | 1 | 1 | | 2 | 5 | | 3 | 1 | | 5 | 4 | +--------+----------+ 4 rows in set (0.04 sec)
?? ?? ??? ??????.
have ?? where? ????? ? ? ??? ???? ????.
having? ??? ???? ??? ??? ??? ????
mysql> select count(province),province from money group by province; +-----------------+-----------+ | count(province) | province | +-----------------+-----------+ | 3 | 北京 | | 1 | 天津 | | 3 | 山東 | | 1 | 湖北 | | 1 | 湖南 | | 2 | 遼寧 | | 1 | 黑龍江 | +-----------------+-----------+ 7 rows in set (0.00 sec)
SQL ?? ??
? ???? ?? ?? ??? ?? ????? ??????.
?? ?? ???? ?? ?? ????????. ?? SQL ?? ???? ?? ??? ??? ????.
SELECT
[?? 1 [?? 1], [??(?? 2),]...?? n]
FROM ??? ??
[WHERE where ??]
[GROUP BY ??]
[HAVING where_contition]
[?? ??]
[?? ??]
??: ?? [ ] ??? ???? ?? ???? ??? ? ????.
?? ?? ??? ??? ????.
?? ??? ??? ???? ?? ?? ?? ??? ?????. : id, ??? ??, ??, ??? id>1? ??? 50?? ?? ?? ??? ???? ?????. ????? ??? ID? ????, 3? ??? ??? ?????.
????? ??? ?? SQL ?? ???? ?? ??? ??? ????.
mysql> select count(province),province from money group by province with rollup; +-----------------+-----------+ | count(province) | province | +-----------------+-----------+ | 3 | 北京 | | 1 | 天津 | | 3 | 山東 | | 1 | 湖北 | | 1 | 湖南 | | 2 | 遼寧 | | 1 | 黑龍江 | | 12 | NULL | +-----------------+-----------+ 8 rows in set (0.00 sec)