1. 程式人生 > >**MySql基礎 篇1/共2篇 [史上最全重點,web基礎day02] *

**MySql基礎 篇1/共2篇 [史上最全重點,web基礎day02] *

今日內容:

1. mysql概述
2. sql概述
3. DDl
4. DML

MySql概述:

1. 記憶體和檔案的優缺點:
	* 記憶體:速度快,但是不能永久儲存,資料是臨時狀態。
	* 檔案:資料可以永久儲存,操作資料不方便,查詢某個資料。
2.	資料庫優缺點:
	* 優點:		
		1. 資料可以永久儲存
		2. 查詢速度快
		3. 對資料的管理方便
	* 缺點:
		1. 佔用資源,需要購買。
		2. 需要專門的軟體進行編寫,需要學習成本去使用它的語法和使用方式
3. 什麼是資料庫:
	1.儲存資料的倉庫
	2.本質上是一個檔案系統,還是以檔案的方式存在伺服器的電腦上的。
	3.所有的關係型資料庫都可以使用通用的SQL語句進行管理DBMS DataBase Management System
4.為什麼選擇MySQL
	1.免費
	2.功能強大
5.MySQL目錄結構:
	bin<目錄>:所有mysql的可執行檔案,如:mysql.exe
	MySQLInstanceConfig.exe:	資料的配置嚮導,在安裝時出現的內容;
	date<目錄>:系統必須的資料庫所在的目錄。
	my.ini檔案:mysql的配置檔案,一般不建議去修改。
6. 資料庫管理系統:指一種操作和管理資料庫的大型軟體,用於建立,使用和維護資料庫,對資料庫進行統一管理和控制,以保證資料庫的安全性和完整性。使用者通過資料庫管理系統各訪問資料庫表內的資料。
7. 結論:
	* 一個數據庫伺服器包含多個庫,一個數據庫包含多張表,一個表包含多條記錄

SQL概述

1.SQL:Structured Query Language  結構化查詢語言

2. SQL作用:
	1.是一種所有關係型資料庫的查詢規範,不同的資料庫都支援。
	2.通用的資料庫操作語言,可以用在不同的資料庫中。
	3.不同的資料庫SQL語句有一些區別。
3. SQL語句分類:
	DDL:建庫,建表
	DML:增刪改
	DQL:對錶中的查詢操作
	DCL:對使用者許可權的設定
4. MySQL語法:
	每條語句以分號結尾,如果在SQLyog中不是必須加的。
	SQL中不區分大小寫,關鍵字中認為大寫和小寫是一樣的。
	3中註解:
	--空格		單行註釋		# 單行註釋(這個是mysql特有的註釋方式)
	/* */這是mysql特有的註釋方式

DDL:

1. DDL操作資料庫:
	1. 建立資料庫: CREATE  DATABASE 資料庫名;
	2. 判斷資料庫是否已經存在,不存在則建立資料庫	:
		* CREATE DATABASE IF NOT EXISTS 資料庫名;
	3. 建立資料庫並指定字符集:
		*CREATE DATABASE 資料庫名 CHARCTER SET 字符集;
	4. 按tab可以自動補全關鍵字;
	5. 修改資料庫預設的字符集:
		* alter database 資料庫名 default character set 字符集;
	6. 將db3資料庫的字符集改成utf8
		* alter database bd3 character set utf8;
	7. 刪除資料庫的語法:
		* drop database 資料庫名;
	8. 具體操作:
		* 每行SQL語句需要選中再執行,可以按F9
	9. 檢視正在使用的資料庫:
		* select database();  使用的一個mysql中的全域性函式
	10. 使用/切換資料庫
		* use 資料庫名;			
2. DDL操作表結構:
	* 建立表的格式:
	create table 表名(
	欄位名1  欄位型別1;
	)
3. 新增資料:語法:insert into 表名(列名1,列名2...)values(值1,值2...);
	* 注意:	
		1. 列名和值要一一對應。
		2. 如果表名後,不定義列名,則預設給所有列新增值。
			* insert into 表名 values(值1,值2,值...);
		3. 除了數字型別,其他型別需要使用引號(單雙都可以)引起來。
3. 刪除資料:
	* 語法: 
		1. delete from 表名 [where 條件]
			* 注意:
			1. 如果不加條件,則刪除表中所有記錄。
			2. 如果要刪除所有記錄
		2. delete from 表名;  --不推薦使用。有多少條記錄就會執行多少次操作。
		3. truncate table 表名;		--先刪除表,然後再建立一張一模一樣的表。	
	* 查詢表中的記錄: select * from 表名;
4.資料庫的基本概念:
	1. DataBase    簡稱DB
	2. 什麼是資料庫?			用於儲存和管理資料的倉庫。
	3. 資料庫的特點:
		* 持久化儲存資料的。			其實資料庫就是一個檔案系統。
		* 方便儲存和管理資料
		* 使用了統一的方式操作資料庫。			--SQL
	4. 常見的資料庫軟體:Oracle,MySQL,DB2,MySQLSEVER等。
	5. MySQL軟體  相當於是服務端3306.				所以它必須開啟服務,才能被其他連線。		
	6. 配置:
		* MYSQL服務啟動:
			1. 手動
			2. cmd-->services.msc        開啟服務的視窗
			3. 使用管理員開啟cmd
	7. 開啟關閉服務
		1. net start mysql  :啟動mysql的服務。
		2. net stop mysql	  :關閉mysql的服務。
	8. MYSQL登入
		1. mysql 	-uroot	-p密碼
		2. mysql -hip	-p連線目標的密碼		(安裝資料庫要勾上遠端控制訪問才可以)
		3. mysql	--host=ip	--user=root	--password=連線目標的密碼	
	9. MYSQL的目錄結構:
		1.MYSQL安裝目錄結構
					配置檔案:	my.ini
		2.MYSQL資料目錄
		幾個概念
		資料庫---->資料夾
		表	  ---->檔案
		資料  ----->資料
	
	10. SQL是結構化查詢語言,定義了操作所有關係型資料庫的規則。		
5. 三種註釋:
	1. 單行註釋:-- 註釋內容(兩個橫槓一個空格)
	2. # 		---> mysql特由於的單行註釋
	3. 多行註釋:/*  */
6. SQL通用語法:
	1.SQL語句可以單行或多行書寫,以分號結尾。	(在mysql中可以自動加上;)
	2.可使用空格和縮排來增強語句的可讀性。
	3.MYSQL資料庫的SQL語句不區分大小寫,關鍵字建議使用大寫。
	4.註釋
	
	
7. SQL分類:
	1.DDL:資料定義語言:定義資料庫,表,列等:關鍵字:create,drop,alter等
	2.DML:資料操作語言:用來對資料庫表中的資料進行增刪改。關鍵字:insert ,delete,	update等
	3.DQL:資料查詢語言,用來查詢資料庫中表的記錄(資料)。關鍵字:select,where等
	4.DCL:資料控制語言:用來定義資料庫的訪問許可權和安全級別,及建立使用者。關鍵字:grant,revoke;
	
8. DDL:操作資料庫、表
	1.操作資料庫:CRUD
	1.C	:create:建立
	2.R	:retrieve:查詢			查詢所有資料庫的名稱:show databases;
	3.U	:update:修改
	4.D	:  delete:刪除
	5.使用資料庫
9. 操作資料庫: 
		1. 建立: 	
				create	database 資料庫名稱;
			* 建立資料庫,判斷不存在,再建立:
				create database if not exists 資料庫名稱;
			* 建立資料庫,並制定字符集:
				create datebase 資料庫名稱 character set 字符集名;
		2. 查詢:
			* 查詢所有資料庫的名稱:
				show databases;
			* 查詢某個資料庫的字符集:查詢某個資料庫的建立語句
				show create database 資料庫名稱;
		3. 修改:
			* 修改資料庫字符集名稱:
				alter database 資料庫名稱 character set 字符集名稱;
		4. 使用:
		 	* use 資料庫名稱;
	
10. 查詢表:R(Retrieve)查詢
	查詢所有表:show  tables;
	查看錶結構:desc  haha;
	
	
11. 建立表:	C(create):建立
	1.語法: 	
		create table表名 (
		列名1  資料型別,
		列名2  資料型別2,
		...
		列名n  資料型別n
		);
	* 注意:最後一列,不需要加“,”號;
12. 資料庫型別:
	1. int:整數型別		*age int,	
	2. double:小數型別	*score double(5,2),		->說明總長度5位,保留兩位小數。
	3. date:日期,只包含年月日,yyyy-MM-dd
	4. datetime:日期,包含年月日時分秒		
		yyyy-MM-dd HH:mm:ss
	5. timestamp:時間錯型別   包含年月日時分秒  
		yyyy-MM-dd HH:mm:ss
	6. varchar:字串
		* name varchar(20):姓名最大20個字元
	7. 建立表:
		create table student(
		id int,
		name varchar(32),
		age int,
		score double(4,1);
		);
		
	* 大型資料可以儲存在CLOB裡面,二進位制型別可以儲存圖片;
13. 修改,新增,刪除:
	1. 修改U(Update):
		1.修改表名
		alter table 表名		【rename to 新的表名;】
		2.修改表的字符集
		alter table 表名		【character set 字符集名稱;】
	2. 新增:
		* 新增一列:* alter table 表名		【add 列名 資料型別;】
	3. 修改列名稱 型別
		* alter table 表名		【change 列名 新列名 新資料型別】
	5. 刪除列:alter table 表名		【drop 列名】;
	6. D(Delete):刪除
		1. drop table 表名;
		2. drop table if exists 表名;

DML

1. DML:增刪改表中的資料:
	1. 新增資料:
		* 語法: insert into 表名(列名1,列名2,...列名n)values(值1,值2,...值n);
		* 注意:
		 1. 列名和值要一一對應。
		 2. 如果表名後,不定義列名,則預設給所有列新增值。
				insert into 表名 values (值1,值2,...值n);
	2. 刪除資料:
		* 語法:delete from 表名[where 條件]
		* 注意:
			1. 如果不加條件,則刪除表中所有記錄。
			2. 如果要刪除所有記錄:
		* 示例:
			1. delete from 表名; 	-- 不推薦使用。有多少條記錄就會執行多少次。
			2. truncate table 表名;		#推薦使用,效率更高,先刪除表,然後再建立一張一模一樣的表。
	 3. 修改資料:
		* 語法:update 表名 set 列名1=值1,列名2=值2,...[where 條件];
		* 注意:1.如果不加任何條件,則會將表中所有記錄全部修改。
		* DQL:查詢表中的記錄
		* 語法: slect * from表名 
		
		"*"代表所有欄位
		1.基本查詢:
		select 欄位名1,欄位名2...from 表名;
	4. distinct 去重複;
		1. 語法:
			select	欄位列表
			from		表名列表
			where	條件列表
			group by 分組欄位
			having 	分組之後的條件
			order by  排序
			limit  	 分頁限定
		2. 基礎查詢:
			1.多個欄位的查詢:
			select 欄位名1, 欄位名2...from 表名;
				* 注意:如果查詢所有欄位,則可以使用*
	  	3. 等號是精確查詢。****基礎加強:反射,註解,測試 [史上最全重點,web基礎day01] ***