//模糊查詢
mysql> select * from mingjue where name like '小%';
+----+--------+------+----------+| id | name | age | salary |
+----+--------+------+----------+
| 7 | 小白龍 | 12 | 10000.09 |
| 8 | 小黑龍 | 12 | 10000.09 |
| 9 | 小黃龍 | 12 | 10000.09 |
| 10 | 小神龍 | 12 | 10000.09 |
| 11 | 小甜甜 | 12 | 10000.09 |
+----+--------+------+----------+
//模糊查詢 加限制個數 LIMIT x,x 兩個參數 表示從第幾個之後取幾個。
mysql> select * from mingjue where name like '小%' LIMIT 2;
+----+--------+------+----------+
| id | name | age | salary |
+----+--------+------+----------+
| 7 | 小白龍 | 12 | 10000.09 |
| 8 | 小黑龍 | 12 | 10000.09 |
+----+--------+------+----------+
//根據name排序
mysql> SELECT * FROM mingjue where name like '%龍%' ORDER BY NAME;
+----+--------+------+----------+
| id | name | age | salary |
+----+--------+------+----------+
| 7 | 小白龍 | 12 | 10000.09 |
| 10 | 小神龍 | 12 | 10000.09 |
| 9 | 小黃龍 | 12 | 10000.09 |
| 8 | 小黑龍 | 12 | 10000.09 |
| 5 | 白龍馬 | 5 | 7000.19 |
+----+--------+------+----------+
MySQL的聚合函數
----只能有一個結果
1.max(列名)
計算某列的最大值
2.min(列名)
計算某列的最小值
3.avg(列名)
計算某列的平均值
SELECT avg(salary) from mingjue;
4.sum(列名)
計算某列的總和
5.count(*)與count(列名)
計算記錄總數或某列的記錄數量。
count(*)查詢所有記錄總數,無論是否爲null。
count(列名)只查詢指定列中不爲null的記錄總數。
6.四捨五入 round(zhi,num);
//子查詢
SELECT name from mingjue where salary>(SELECT round(avg(salary),2) from mingjue);
笛卡爾積
select * from mingjue,yaoguai;
mysql> select * from emp;
+----+------+------+
| id | name | dept |
+----+------+------+
| 1 | 三豐 | 1 |
| 2 | 無忌 | 2 |
| 3 | 芷若 | 2 |
| 4 | 滅絕 | NULL |
+----+------+------+
4 rows in set (0.00 sec)
mysql> select * from dept;
+----+------+
| id | name |
+----+------+
| 1 | 武當 |
| 2 | 明教 |
| 3 | 少林 |
+----+------+
3 rows in set (0.00 sec)
mysql> select * from emp,dept;
+----+------+------+----+------+
| id | name | dept | id | name |
+----+------+------+----+------+
| 1 | 三豐 | 1 | 1 | 武當 |
| 1 | 三豐 | 1 | 2 | 明教 |
| 1 | 三豐 | 1 | 3 | 少林 |
| 2 | 無忌 | 2 | 1 | 武當 |
| 2 | 無忌 | 2 | 2 | 明教 |
| 2 | 無忌 | 2 | 3 | 少林 |
| 3 | 芷若 | 2 | 1 | 武當 |
| 3 | 芷若 | 2 | 2 | 明教 |
| 3 | 芷若 | 2 | 3 | 少林 |
| 4 | 滅絕 | NULL | 1 | 武當 |
| 4 | 滅絕 | NULL | 2 | 明教 |
| 4 | 滅絕 | NULL | 3 | 少林 |
+----+------+------+----+------+
12 rows in set (0.00 sec)
//多表查詢;
mysql> select emp.name,dept.name from emp,dept where emp.dept=dept.id;
+------+------+
| name | name |
+------+------+
| 三豐 | 武當 |
| 無忌 | 明教 |
| 芷若 | 明教 |
+------+------+
//內聯 inner join;
mysql> select emp.name,dept.name from emp inner join dept on emp.dept=dept.id;
+------+------+
| name | name |
+------+------+
| 三豐 | 武當 |
| 無忌 | 明教 |
| 芷若 | 明教 |
+------+------+
3.外連接
A:左外連接(left outer join 或 left join)
查詢出的結果除了包含符合連接條件的記錄以外,還包含左表中剩餘的其他記錄。
select 表1.列...,表2.列 from 表1 left join 表2 on 連接條件
eg: select stuinfo.name,subject.subjectname from stuinfo left join subject on
stuinfo.subjectid=subject.id;
B: 右外連接(right outer join 或 right join)
查詢出的結果除了包含符合連接條件的記錄以外,還包含右表中剩餘的其他記錄。
select 表1.列...,表2.列 from 表1 right join 表2 on 連接條件
字符函數
CONCAT(str1,str2)----連接兩個字符串的內容
CONCAT_WS("連接符",str1,str2)---使用連接符來連接字串內容
UPPER(STR) ---將字串轉成大寫
lOWER(STR)----將所有字串轉成小寫
LEFT(STR,NUM)---取一個字符串的前多少位
RIGHT(STR,NUM)---取一個字串的後多少位