MySQL學習——操作表裡的數據 摘要:本文主要學習了使用DML語句操作表裡數據的方法。 插入數據 語法 通過傳入數據插入: 通過查詢數據插入: 實例 更新數據 語法 實例 刪除數據 語法 實例 數據查詢 語法 說明 實例 查詢所有成績: 查詢電腦的成績: 查詢成績不及格的學生、課程、成績: 查詢 ...
MySQL學習——操作表裡的數據
摘要:本文主要學習了使用DML語句操作表裡數據的方法。
插入數據
語法
通過傳入數據插入:
1 insert into 表名 [(列名1, …, 列名n)] values (值1, …, 值n);
通過查詢數據插入:
1 insert into 表名 [(列1, ..., 列n)] 2 select 列1, ..., 列n from 查詢的表;
實例
1 mysql> insert into score values (null, '張三', '電腦', 98); 2 Query OK, 1 row affected (0.00 sec) 3 4 mysql>
更新數據
語法
1 update 表名 set 欄位1 = 值1, …, 欄位n = 值n 2 [where 表達式] 3 [order by 表達式] 4 [limit 起始編號, 查詢條數]
實例
1 mysql> update score set grade = 99 where id = 1; 2 Query OK, 1 row affected (0.00 sec) 3 Rows matched: 1 Changed: 1 Warnings: 0 4 5 mysql>
刪除數據
語法
1 delete from 表名 2 [where 表達式] 3 [order by 表達式] 4 [limit 表達式]
實例
1 mysql> delete from score where id = 1; 2 Query OK, 1 row affected (0.00 sec) 3 4 mysql>
數據查詢
語法
1 select [distinct] 列1 [as '別名1'], ..., 列n [as '別名n'] from 表名 2 [where 表達式] 3 [group by 表達式] 4 [having 表達式] 5 [order by 表達式] 6 [limit 起始編號, 查詢條數]
說明
1 列1, ..., 列n:表示查詢的欄位,查詢多個欄位用“,”分隔,使用“*”號表示查詢全部欄位,使用“distinct”關鍵字去重,使用“as”設置別名。 2 表名:表示查詢數據的來源,可以是單個或多個,多個表名用,分隔。 3 where 表達式:可選,限定查詢滿足的條件。 4 group by 表達式:可選,按照指定的欄位分組。 5 having 表達式:可選,限定查詢滿足的條件,用於使用了聚合函數限定條件。 6 order by 表達式:可選,指明排序的方式,升序(asc)和降序(desc)。 7 limit 起始編號, 查詢條數:可選,設置每次顯示查詢出來的數據條數。
實例
查詢所有成績:
1 mysql> select * from score; 2 +----+---------+-----------+-------+ 3 | id | student | course | grade | 4 +----+---------+-----------+-------+ 5 | 1 | 張三 | 電腦 | 98 | 6 | 2 | 張三 | 英語 | 53 | 7 | 3 | 李四 | 電腦 | 48 | 8 | 4 | 李四 | 中文 | 38 | 9 | 5 | 王五 | 中文 | 95 | 10 | 6 | 趙六 | 電腦 | 70 | 11 | 7 | 趙六 | 英語 | 92 | 12 | 8 | 趙六 | 中文 | 73 | 13 | 9 | 孫七 | 英語 | 94 | 14 | 10 | 周八 | 電腦 | 90 | 15 | 11 | 周八 | 英語 | 85 | 16 | 12 | 吳九 | 電腦 | 90 | 17 | 13 | 吳九 | 中文 | 55 | 18 +----+---------+-----------+-------+ 19 13 rows in set (0.00 sec) 20 21 mysql>
查詢電腦的成績:
1 mysql> select * from score where course = '電腦'; 2 +----+---------+-----------+-------+ 3 | id | student | course | grade | 4 +----+---------+-----------+-------+ 5 | 1 | 張三 | 電腦 | 98 | 6 | 3 | 李四 | 電腦 | 48 | 7 | 6 | 趙六 | 電腦 | 70 | 8 | 10 | 周八 | 電腦 | 90 | 9 | 12 | 吳九 | 電腦 | 90 | 10 +----+---------+-----------+-------+ 11 5 rows in set (0.00 sec) 12 13 mysql>
查詢成績不及格的學生、課程、成績:
1 mysql> select student, course, grade from score where grade < 60; 2 +---------+-----------+-------+ 3 | student | course | grade | 4 +---------+-----------+-------+ 5 | 張三 | 英語 | 53 | 6 | 李四 | 電腦 | 48 | 7 | 李四 | 中文 | 38 | 8 | 吳九 | 中文 | 55 | 9 +---------+-----------+-------+ 10 4 rows in set (0.00 sec) 11 12 mysql>
查詢成績不及格的學生,去重並將查詢結果列重命名為“學生姓名”:
1 mysql> select distinct student as '學生姓名' from score where grade < 60; 2 +--------------+ 3 | 學生姓名 | 4 +--------------+ 5 | 張三 | 6 | 李四 | 7 | 吳九 | 8 +--------------+ 9 3 rows in set (0.00 sec) 10 11 mysql>
查詢成績都及格的學生編號和姓名,並按照編號排序:
1 mysql> select id, student from score group by student having min(grade) > 60 order by id; 2 +----+---------+ 3 | id | student | 4 +----+---------+ 5 | 5 | 王五 | 6 | 6 | 趙六 | 7 | 9 | 孫七 | 8 | 10 | 周八 | 9 +----+---------+ 10 4 rows in set (0.00 sec) 11 12 mysql>
未完待續