# h1 MySql 資料庫
計算每堂課修課人數
``` = SQL
SELECT count(c.id),c.Name from enroll as e ,course as c where e.id=c.id group by c.id
```
找到每個人修甚麼課
```=+
SELECT s.name,c.name from enroll e ,course c,student s where e.id=c.id and s.id=e.sid order by s.id DESC
```
找到每個仁修課的平均分數
```=+
SELECT s.name,AVG(Score) from enroll e ,course c,student s where e.id=c.id and s.id=e.sid GROUP by s.id order by s.id DESC
```
找到學長姐的姓名
```=+
SELECT s.name,m.name from student s,student m where s.mentor =m.id
```
1.CREATE
建立資料庫:CREATE DATABASE db_name
建立表:CREATE TABLE table_name (col_name col_type [NOT NULL] [PRIMARY KEY], ...)
2.DROP
刪除表:DROP TABLE table_name
3.ALTER
新增列:ALTER TABLE table_name ADD COLUMN col_type
新增主鍵:ALTER TABLE table_name ADD PRIMARY KEY(col_name)
4.INSERT
插入記錄:INSERT INTO table_name (col_name, ...) VALUES (col_value, ...)
5.DELETE
刪除記錄:DELETE FROM table_name WHERE col_name=col_value
*safe update模式只能通過主鍵欄位更新記錄,更新同理
6.UPDATE
更新記錄:UPDATE table_name SET col_name=col_value, ... WHERE ...
7.SELECT
查詢部分欄位:SELECT col_name, ... FROM table_name WHERE ...
查詢全部欄位:SELECT * FROM table_name WHERE ...
8.OUTER JOIN (表)
table_name1 LEFT/RIGHT OUTER JOIN table_name2
*左聯查詢把table1的內容全部查出,table2中只查出滿足條件的內容,其他為null
9.INNER JOIN (表)
table_name1 INNER JOIN table_name2 ON table_name1.col_name1=table_name2.col_name2
*只查出滿足條件的記錄
10.ORDER BY
升序:SELECT ... ORDER BY col_name
降序:SELECT ... ORDER BY col_name DESC
11.聚合函式(欄位)
和:sum(col_name)
平均:avg(col_name)
最大:max(col_name)
最小:min(col_name)
計數:count(col_name)
12.GROUP BY
某欄位同值記錄合併:GROUP BY col_name
eg. SELECT sum(col_name2) as new_col_name FROM table_name GROUP BY col_name