mysql數據庫的基礎知識和操作,筆記2,權亮

Use 數據庫,是未來使用數據庫的必要的操作,之後才能使用這個數據庫內的數據表格。
Mysql workbench 左側觀看SCHEMAS,刷新按鈕,下面可以看到新建的數據庫。

Utf8,數據庫的編碼格式,編碼結構一致,
Excel 的編碼格式Ansi,
文件分爲文本文件和二進制文件,文本文件可以用記事本打開,可以認出來內容。二進制文件在文本里打開是二進制編碼。
文本文檔在轉換成excel文件格式時候,另存爲,保存類型,必須是所有文件,不要用文本文檔。
數據類文本文件包含兩種內容,數據內容和分隔符。Csv文件的分隔符是,。Txt文件的分隔符是Tab(製表符)
轉換格式時候,如果不保存爲所有文件,文件會自動把,換成製表符。
出現亂碼,想把格式改成utf8,可以在每次使用數據庫,然後輸入命令:
Alter database 數據庫名稱 character set utf8;

觀看所有數據庫列表命令:
Show databases;
使用數據庫test:
Use test;
刪除數據庫test:
Drop database test;

用表結構信息來其他人看得懂,其次有利於清晰的寫命令。
在這裏插入圖片描述
包含:表名,字段,字段表述,數據類型,約束。
建表
Create table 表名(…表內內容);
在這裏插入圖片描述
每一行用逗號結束後,最後一行不用寫逗號

查表
Show tables; 查詢數據庫中所有的表格
刪表
Drop table 表名;

1046錯誤,沒有指明使用某一個數據庫,無法操作。
在這裏插入圖片描述
常用的數據類型
在這裏插入圖片描述
Int類型,如果想把標明無符號類型,就在定義後面加上一個unsigned。Int(顯示位數),推薦不寫括號。
FLOAT(M,D)m代表所有顯示的位數,d代表小數後面的位數。
在這裏插入圖片描述
無論是date,還是time,轉換到excel都是長時間格式。
不同軟件,數據類型不同,要檢查是否兼容。
在這裏插入圖片描述
Varchar(m),可變長度符串,只要我實際錄入的長度小於m,那我數據庫會記錄我實際長度,增加效率。Mysql中M不是字節數,是字符數。和其他軟件兼容,需要確認是不是字節。

約束條件
在這裏插入圖片描述
在這裏插入圖片描述
主鍵約束分爲單字段主鍵和和多字段,特點非空,唯一。多字段主鍵需要在定義最後單獨定義。主鍵只能有一個,但是可以由多個字段,也就是primary key只能出現一次。
命令單詞之間用空格,同一命令字段之間用逗號。
非空約束,就是不能有空值。
唯一性約束,數值是惟一的,可以出現一次空值。
默認約束,初始值,default’’,默認值必須和前面的定義值一樣。
自增字段,需要是主鍵一部分,而且要是int整數型。

填充數據
Insert into 表名(字段1,字段2,…) values(值1,值2,….)字段1和值1,插入數據必須字段的數據類型一樣。

導入外部數據
在這裏插入圖片描述
第一句是路徑下的文件導入,路徑必須是英文。路徑的斜槓必須向左,且寫到擴展名
第二句是導入表中
第三句給數據庫提示分隔符,‘\t’這是txt,csv是‘,’
第四局是忽略第一行

導數據不能重複操作,如果已經導數據,發現錯誤,刪除,重新建表。

驗證導入數據的準確性。
Select * from 表名; //檢查表的信息。
Select count(*) from 表名; //檢查總行數。
Desc 表名; //檢查表結構。
修改數據表

Alter table 表名 rename 新表名;//改新表名
Alter table 表名 modify 字段 新數據類型;//重新定義新數據類型,如果之前有not null,之後沒有,就沒有了。
Alter table 表名 change 舊字段名 新字段名 數據類型約束; //重新命名並定義新字段,屬性。
Alter table 表名 add 字段名 約束屬性;//添加新字段,並排在最後。

Alter table 表名 modify 字段名 屬性 first; //將字段放在最前面,其實也是重新定義字段。
Alter table 表名 modify 字段名 屬性 after 字段名; //將字段放在某字段後,其實也是重新定義字段。
Alter table 表名 drop 字段;//刪除字段
Alter table 表名 drop primary key;//刪除主鍵。
Alter table 表名 add primary key(……);//增加主鍵。

SQL的數據查詢功能
查完數據最好從業務邏輯上進行驗證,不是寫了命令就是一定是對的數據。
三個方向驗證,橫豎斜。
兩個邏輯,表之間的邏輯,彙總邏輯。
中括號[],是可以省略的語句。
在這裏插入圖片描述
Where 是對原始數據進行篩選,having是對彙總後的數據記性篩選。Where group by,having order by,順序不能改。

對主鍵進行分組查詢,等於沒分組,數據和主鍵是一一對應的。
Select * from monthly_indicator where city_name=’北京’;
Select max(pm25) from monthly_indicator group by monthly_dindicator;
在這裏插入圖片描述
select city_name,avg(pm10) from monthly_indicator group by city_name order by apm10 desc; 根據pm10的值降序查詢不同城市PM10的平均值

在這裏插入圖片描述

select city_name,avg(pm10) from monthly_indicator group by city_name order by avg(pm10) desc;//根據pm10平均值降序排列查詢不同城市的pm10的平均值。

連接邏輯
關鍵字段,裏面的信息
方向性 左表 Left/right join 右表
主附關係,連接方向,決定誰是主表,誰來出具數據範圍
對應關係,決定結果行數,所有連接可能性,都要表現出來,沒有的用null代替。
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

只要有重複的字段名,同名字段,不論卸載那裏,就要在前面加上表名,否則不知道哪個表的字段,如果字段名字不一樣,可以省略表名.。

聯合查詢
上下查詢結果在一起。
合併後的字段名上邊的字段名,所以我們要兩個查詢保證數據類型和順序一致。

//使用union和union all必須保證各個select 集合的結果有相同個數的列,並且每個列的類型是一樣的。但列名則不一定需要相同,oracle會將第一個結果的列名作爲結果集的列名

在這裏插入圖片描述
在這裏插入圖片描述
查詢操作符

在這裏插入圖片描述
Where 字段內容 like ‘a%’; //開頭以a開始的內容,%a%,這是查找任意內容中有a的。
Where 字段內容 like ‘b_’, b開頭後面只有一位。
Not 放在操作符前面,除了is not null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章