1. 程式人生 > 其它 >淺談雜湊表

淺談雜湊表

一、聚合函式(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插入中文資料,就可以插入成功了