mysql學習准備
簡要:
一、數據庫知識理解
二、環境搭建
三、mysql基本操作
一、數據庫知識理解
1、為什麼需要數據庫管理系統?
答: 便於我們對數據進行管理。
在日常生活中,我們對數據進行管理,簡單點,可以通過記事本,來記錄/查詢/刪除/修改數據。那麼把這個操作映射到計算機中,我們也可以通過計算機的記事本工具,來完成這個功能,但是,不方便,管理起來也麻煩。那麼此時,數據庫管理系統就起到重要的作用了。數據庫管理系統本質上操作的也是操作系統上的文件。(這是因為到最後,文件終會存放在磁盤中),只不過是,數據庫管理系統做了一層封裝,而我們就是使用了這層封裝的功能。
大體簡圖:
2、什麼是結構化查詢語言
答: 以學生信息表為例,有如下信息<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPC9ibG9ja3F1b3RlPgo8YmxvY2txdW90ZT4KPGJsb2NrcXVvdGU+CjxwPgo8dGFibGUgYm9yZGVyPQ=="1" cellspacing="0" cellpadding="0">
學號
姓名
班級
性別
籍貫
1
A
A1
男
XX
2
B
B1
女
YY
3
C
C1
男
看這張學生信息表,可以發現:
a、有固定的列數和固定該列所要填寫的內容類型
b、一行代表一個學生的完整信息
c、即使某列的信息為空,也必須進行填寫,只不過此時,該值為空
那麼,把這張表映射到計算機中,數據庫管理系統也是采納這種方式: 固定列,方便管理,但有不足之處是,不夠靈活
3、什麼C/S架構
答: 客戶端/服務端架構,可以理解為: 你想做某件事,別人可以幫你代做。你只要告訴他,他就幫你完成。映射到數據庫管理系統如下圖:
說明:
a、通信過程分為兩個階段:
a1、請求驗證,此時需要請求者的賬號和密碼,驗證是否為合法的請求者。是則往下執行,否則則終止
a2、驗證成功,則客戶端發起請求,服務端相應請求
b、正是由於C/S這種架構,因此,只要滿足服務端的請求要求的,都是作為客戶端
4、常見的數據庫管理系統
MSserver 、oracle、mysql等,
備注: 本系列以mysql為主
二、環境搭建
1、選擇集成環境wampserver
2、安裝完後,初始情況下,mysql的密碼為空,修改mysql密碼
a、在命令行下登錄進入mysql
b、選擇數據庫mysql,用命令: usemysql
c、使用update命令修改mysql用戶表的信息
updateuser set password=password("root') where user='root' and host='localhost';
d、修改後,刷新權限
flushprivileges;
3、操作mysql方式
a、mysql自帶的mysql工具,處於安裝目錄下的bin目錄
b、web管理工具如phpmyadmin
c、第三方工具等
4、mysql目錄結構
其中,bin為mysql自帶的工具目錄,data為數據庫目錄,logs為日志目錄,而my.ini則是mysql配置文件
5、mysql默認數據庫
備注: information_schema, performance_schema, mysql,test等都是默認數據庫
其中,test數據庫: 從名稱來看,就是存放我們的數據庫,當然我們也可以新建數據庫
mysql則是存放mysql相關的數據庫。用最多的是其user表,存放者mysql的用戶信息
performance_schema則是存放mysql配置的數據庫
information_schema則是存放數據庫信息的數據庫
6、詳解information_schema數據庫
information_schema數據庫是MySQL自帶的,它提供了訪問數據庫元數據的方式。什麼是元數據呢?元數據是關於數據的數據,如數據庫名或表名,列的數據類型,或訪問權限等。
有些時候用於表述該信息的其他術語包括“數據詞典”和“系統目錄”。
在MySQL中,把 information_schema 看作是一個數據庫,確切說是信息數據庫。其中保存著關於MySQL服務器所維護的所有其他數據庫的信息。如數據庫名,數據庫的表,表欄的數據類型與訪問權限等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,你將無法看到與之相關的任何文件。
information_schema數據庫表說明:
表名
說明
SCHEMATA
提供了當前mysql實例中所有數據庫的信息。是show databases的結果取之此表
TABLES
提供了關於數據庫中的表的信息(包括視圖)。詳細表述了某個表屬於哪個schema,表類型,表引擎,創建時間等信息。是show tables from schemaname的結果取之此表
COLUMNS
提供了表中的列信息。詳細表述了某張表的所有列以及每個列的信息。是show columns from schemaname.tablename的結果取之此表
STATISTICS
提供了關於表索引的信息。是show index from schemaname.tablename的結果取之此表
USER_PRIVILEGES(用戶權限)
給出了關於全程權限的信息。該信息源自mysql.user授權表。是非標准表
SCHEMA_PRIVILEGES(方案權限)
給出了關於方案(數據庫)權限的信息。該信息來自mysql.db授權表。是非標准表
TABLE_PRIVILEGES(表權限)
給出了關於表權限的信息。該信息源自mysql.tables_priv授權表。是非標准表
COLUMN_PRIVILEGES(列權限)
給出了關於列權限的信息。該信息源自mysql.columns_priv授權表。是非標准表
CHARACTER_SETS(字符集)
提供了mysql實例可用字符集的信息。是SHOW CHARACTER SET結果集取之此表
COLLATIONS
提供了關於各字符集的對照信息
COLLATION_CHARACTER_SET_APPLICABILITY
指明了可用於校對的字符集。這些列等效於SHOW COLLATION的前兩個顯示字段
TABLE_CONSTRAINTS
描述了存在約束的表。以及表的約束類型
KEY_COLUMN_USAGE
描述了具有約束的鍵列
ROUTINES
提供了關於存儲子程序(存儲程序和函數)的信息。此時,ROUTINES表不包含自定義函數(UDF)。
名為“mysql.proc name”的列指明了對應於INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列
VIEWS
給出了關於數據庫中的視圖的信息。需要有show views權限,否則無法查看視圖信息
TRIGGERS
提供了關於觸發程序的信息。必須有super權限才能查看該表
備注: 由於information_schema這個數據庫的存在,我們可以通過它,可以看到整個mysql的所有數據庫的信息,因此從這個角度上來,存在的一定的安全隱患。
三、mysql基本命令
1、登錄數據庫
mysql -h主機ip -u用戶名 -p密碼 -P3306
備注: 如果是本機的mysql,則-h和-P兩個參數可以省略,mysql默認端口為3306
2、查看當前所有數據庫
show databases;
3、選擇某個數據庫
use 數據庫名稱
4、查看該庫下的所有表
show tables;
5、查看某張表的信息
desc 表名;
6、幫助命令
6.1、查看mysql內置幫助手冊命令
help contents 或者? contents
6.2、查看某個命令
help 命令單詞 或者 ? 命令單詞
6.3、查看某個命令,但是忘記該命令的詳細單詞
help 命令單詞% 或者 ? 命令單詞%