淺談雜湊表
一、聚合函式(group by)
1、查詢總數(count)
select 欄位名,count(1) as 別名 from 表名group by 欄位名;
2、總和(sum)
select sum(欄位名) as 別名 from 表名;
按照年份,對員工的薪資進行降序的排序:
3、平均(average)
select avg(欄位名) as 表名 from 表名;
4、去重(distinct)
select distinct 欄位名 from 表名;
5、最大(max)
select max(欄位名) as 別名 from 表名;
6、最小(min)
select min(欄位名) as 別名 from 表名;
7、過濾(having)
二、表關聯查詢
先建立user、student、worker、studentInfo、city、country等表,依次如下圖所示:
1、內連線(inner join)
select * from 表名 as 別名1 inner join 表名 as 表名2 on 別名1.相同欄位=別名2.相同欄位 where 條件;
user和student兩個表之間的內連線:
主要是獲取兩個表中欄位匹配關係的表。查詢關聯欄位共同擁有的資料
如:通過user和student相同的id獲取到成績是nice的同學的資訊
user、student和studentInfo三個表之間的內連線:
如:通過user和student相同的id,student和studentInfo相同的stuID,查詢id是1的學生資訊
user、student、studentInfo和city四個表之間的內連線:
還有種多個表的內連線,如下圖所示:
2、左連線
select * from 表名1 as 別名1 left join 表名2 as 別名2 on 別名1.相同欄位=別名2.相同欄位;
獲取左表所有記錄,獲取左邊資料表所有符合要求的欄位資料資訊
3、右連線
select * from 表名1 as 別名1 right join 表名2 as 別名2 on 別名1.相同欄位=別名2.相同欄位;
獲取右表所有記錄的資訊,獲取右邊資料表所有的資料資訊
4、子查詢
相當於括號裡面select語句的輸出部分是前面select語句的輸入部分
select * from 表名2 where 欄位名 in(select 欄位名 from 表名1);
三、MySQL索引
1、建立MySQL時新增索引
2、新增表的時候新增索引,使用關鍵字alter
四、MySQL字元設定
1、修改配置檔案my.ini
default-character-set=utf8
character-set-server=utf8
2、在控制檯進入mysql,然後將以下都設定為utf8
set character_set_client=utf8; set character_set_connection=utf8; set character_set_database=utf8; set character_set_results=utf8; set character_set_server=utf8; set character_set_system=utf8;
3、重新啟動服務
在控制檯進入到MySQL檔案的bin目錄下,net start mysql重啟mysql
4、 create table test (id int,name varchar(10),age int) charset=utf-8;
5、此時insert插入中文資料,就可以插入成功了