由MySQL AB公司開發,是最流行的開放源碼SQL數據庫管理系統,主要特點:

我們提供的服務有:網站設計、成都網站設計、微信公眾號開發、網站優化、網站認證、阿爾山ssl等。為成百上千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的阿爾山網站制作公司
1、是一種數據庫管理系統
2、是一種關聯數據庫管理系統
3、是一種開放源碼軟件,且有大量可用的共享MySQL軟件
4、MySQL數據庫服務器具有快速、可靠和易于使用的特點
5、MySQL服務器工作在客戶端/服務器模式下,或嵌入式系統中
InnoDB存儲引擎將InnoDB表保存在一個表空間內,該表空間可由數個文件創建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁盤分區,從而使得很大的表成為可能。表空間的最大容量為64TB。
2.1. SQL/MySQL
1.事務,隔離,并發控制,鎖
2.用戶和權限
3.監控
STATUS
4.索引類型:查詢
VARIABLES
5.備份和恢復
6.復制功能
7.集群
2.2. DML:數據操作語言
INSERT:插入
DELETE:刪除
SELECT:挑選,選擇,查詢
UPDATE:更新,修改
2.3. DDL:數據定義語言
CREATE:創建
DROP:刪除
ALTER:修改
2.4. DCL:數據控制語言
GRANT:授權
REVOKE:取消權限
2.5. MySQL插件式存儲引擎:
1.MyISAM: 不支持事務處理,應用于查詢比較多,但修改比較少的數據存儲倉庫
該引擎中,每個表有三個文件:
.frm: 表結構文件
.MYD: 表數據文件
.MYI: 表索引文件
2.InnoDB:支持事務處理,查詢沒有那么快,應用于經常需要修改的,比如論壇數據存儲
該引擎所以表共享一個表空間文件;
建議:每表一個獨立的表空間文件;
.frm:表結構文件
.ibd:表空間(包含表數據和表索引文件)
----------------------------------------------------------------------
為mysql打開innodb每表建立一個獨立表空間文件的設置:
編輯配置文件/etc/my.cnf添加一行后重啟mysql服務:
#vim /etc/my.cnf
....
innoda_file_per_table = 1 #1為啟用,0為禁用
----------------------------------------------------------------------
2.6. MYSQL數據庫功能:
1、數據庫創建、刪除
2、創建表、刪除表、修改表
3、索引的創建、刪除
4、用戶和權限
5、數據增、刪、改
6、查詢
2.7. MySQL二進制程序:mysql數據庫的database存放路徑為/var/lib/mysql目錄中
2.8. 客戶端命令:mysql
-u USERNAME #以那個用戶連接mysql (不指定默認用戶為root)
-p #指定輸入用戶密碼 (不指定默認是空密碼)
-h MYSQL_SERVER #指定mysql服務器主機 (不指定默認為localhost本機)
-D DATA #連接mysql的時候指定默認的數據庫
eg1: mysql -D mydb -uroot -p -h 10.109.134.249 -D mydb
-uroot 指定用戶 -p:輸入用戶密碼 -h:指定連接那臺mysql服務器(ip地址)
-D: 指定登錄mysql默認的數據庫(相當于在客戶端內輸入USE mydb;命令)
MySQL客戶端:
交互式模式:一步一步的手動輸入執行
批處理模式:執行mysql腳本,批處理執行
MySQL客戶端工具:
mysql
mysqldump:常見的mysql備份工具
mysqladmin:mysql管理工具
mysqladmin extended-status 顯示狀態變量
mysqladmin status
--sleep N 顯示頻率
--count N 顯示多個狀態
mysqladmin variables 顯示服務器變量;
mysqladmin flush-privileges mysqld重讀授權表,等同于reload;
mysqladmin flush-status 重置大多數服務器狀態變量;
mysqladmin flush-logs 二進制和中繼日志滾動;
mysqladmin flush-hosts 刷新主機列表;
mysqladmin refresh 刷新日志和主機列表,相當于同時執行flush-hosts和flush-logs;
mysqladmin shutdown 關閉mysql服務器進程;
mysqladmin version 服務器版本及當前狀態信息;
mysqladmin start-slave 啟動復制,啟動從服務器復制線程;
mysqladmin stop-slave 關閉復制,關閉從服務器復制線程。
格式:mysqladmin [option] command [arg] [command [arg]] ...
eg: mysqladmin -uroot -p password 'NEW_PASS'
[root@lamp ~]# mysqladmin create hellodb;
[root@lamp ~]# mysql
.........
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hellodb | #通過mysqladmin可以直接管理mysql
...
+--------------------+
7 rows in set (0.00 sec)
mysqlcheck:檢查工具
mysqlimport:接口工具
2.9. MySQL非客戶端工具:
myisamchk
myisampack
2.10. 交互式模式中的命令類別:
客戶端命令:
? (\?) Synonym for `help'. 獲取幫助
quit (\q) Quit mysql. 退出mysql客戶端
clear (\c) Clear the current input statement.
\c:提前終止語句執行,但是必須在結束符前,否則該條指令依舊執行。
go (\g) Send command to mysql server.
\g:無論語句結束符是什么,直接將此語句送至服務器端執行;
ego (\G) Send command to mysql server, display result vertically.
\G:無論語句結束符是什么,直接將此語句送至服務器端執行,而且結果以豎排顯示;
system (\!) Execute a system shell command.
\! COMMAND:執行shell命令;
warnings (\W) Show warnings after every statement.
\W:語句執行結束后顯示警告信息;
服務器端命令:
必須使用語句結束符,默認結束符為分號;SHOW DATABASES; #查看數據庫
delimiter (\d) Set statement delimiter.
\d:定義語句結束符 (默認語句結束符為分號,可以設定為其他)
help KEYWORD: 獲取關鍵字命令的幫助信息;
eg: mysql>help SELECT; #獲取SELECT命令的相關幫助信息;
--------------------------------------------------------------------------
在mysql客戶端中,名稱補全命令: rehash
# vim /etc/my.cnf #修改配置文檔,使得命令補全永久有效;
[mysql]
#no-auto-rehash
auto-rehash = 1
# Remove the next comment character if you are not familiar with SQL
#safe-updates
mysql> rehash #若不改配制,用命令rehash可tab鍵補全命令,但重新打開mysql將失效
mysql> u #按tab鍵就有很多以U開頭的命令出來
unlock tables user.Execute_priv user.Shutdown_priv
updates user.File_priv user.Super_priv
...
--------------------------------------------------------------------------
庫、表、索引、視圖、約束、存儲過程、存儲函數、觸發器、游標、用戶、權限、事務。
數據庫最基本的對象-->表:行(row),列(field,column)
服務端命名:mysqld
Mysql常用命令不區分大小寫,但是需保持一致(都大寫或者都小寫):
3.1. DDL:定義數據對象 (Data Definition Language)
3.1.1關鍵字:CREATE(創建)、ALTER(修改)、DROP(刪除)
主要作用的范圍:數據庫,表,表的字段
創建用戶:
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; #可以不指定密碼
USERNAME:用戶名 HOST:主機 IDENTIFIED:指定密碼 BY‘密碼’
刪除用戶:
DROP USER 'USERNAME'@'HOST'; 刪除用戶(需具體指定刪除那個用戶)
--------------------------------------------------------------------------
為用戶設定密碼方法:(建議用1和3這兩種)
*1、mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('PASSWORD')
eg. SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456')
#設定root@localhost用戶名密碼為123456
2、直接在linux下輸入,不需要進入mysql客戶端輸入(易導致修改同user不同host的密碼):
# mysqladmin -uUSERNAME -hHOST -p password 'password'
eg: [root@johntest ~]#mysqladmin -uroot -h20.109.13.9 -p password '123456'
*3、直接修改表中的內容:
mysql>UPDATE user SET password=PASSWORD('password') WHERE USER='root' AND Host='10.109.13.9';#AND與關系(需同時滿足) OR或關系(兩者滿足一個即可) NOT非關系(取反)
--------------------------------------------------------------------------
3.1.2. HOST可以使用的格式:
IP , HOSTNAME(主機名),NETWORK(網絡地址),通配符(需用'通配符'引號)
通配符包含:
_:匹配任意單個字符,172.16.0._
%:匹配任意字符
3.1.3. 新建數據庫:
創建數據庫:CREATE DATABASE IF NOT EXISTS db_name; 同名數據庫不存在時創建
創建表: CREATE TABLE tb_name(col1,col2,...); 創建tb_name表 col表示字段
查看庫中的表:SHOW TABLES FROM db_name 查看db_name數據庫中的表
查看表的結構:DESC tb_name 查看tb_name表的結構
刪除表:DROP TABLE IF EXISTS tb_name 如果表存在刪除tb_name表
3.1.4.修改表:ALTER TABLE tb_name
MODIFY: 修改某字段 (變更屬性,權限)
CHANGE: 改變某字段 (變更字段名稱)
ADD: 增加某字段
DROP : 刪除某字段
eg: ALTER TABLE students ADD course VARCHAR(100); #新增空間長度為100course字段
3.2. DML:數據操縱語言 (Data Manipulation Language)
關鍵字: INSERT (插入)、 DELETE (刪除)、 UPDATE (更新、修改)
主要作用范圍:針對表中字段的值進行操作
插入數據: col表示字段
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING',NUM,...), ('STRING',NUM,...);
更新、修改數據: WHERE表示修改那個具體數據,并不是把column整個這個字段的值修改為value.
UPDATE tb_name SET column=value WHERE ..... ;
eg: UPDATE students SET Course='Jiuyinzhenjing' WHERE Name='LHC'; #表示修改表students中Name值為LHC的Course字段的值變為‘Jiuyinzhenjing’
3.3. DCL:數據庫控制語言 (Data Control Language)
關鍵字: GRANT(允許、授權)、REVOKE (取消權限)
ALL PRIVILEGES: 表示所有權限
3.3.1 GRANT: 給用戶授權
eg: GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'
#在數據庫DB_NAME中的表TB_NAME中,用戶USERNAME@'HOST'授予pri1,pri2等權限也可以設定密碼IDENTIFIED BY 'PASSWORD',若此用戶不存在則直接新建該用戶并授權
3.3.2 REVOKE : 取消用戶權限
eg:REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
#在數據庫DB_NAME中的表TB_NAME中,取消用戶'USERNAME'@'HOST'的pri1,pri2等權限
3.3.3 查看用戶的授權: SHOW GRANTS FOR 'USERNAME'@'HOST';
3.3.4 刷新用戶權限列表: FLUSH PRIVILEGES;
3.4. DQL:數據庫查詢語言 ( Data Query Language )
關鍵字:SELECT (挑選,選擇)
SELECT 字段 FROM tb_name WHERE CONDITION;
*:表示所有字段
WHERE:沒有條件表示顯示所有行;
eg: SELECT Name,Course FROM students WHERE Gender='M';
#表示只選擇表students中的Gender字段值為M的Name和Course字段的信息
---end---
分享題目:Mysql數據庫理論基礎二
路徑分享:http://www.yijiale78.com/article32/jjjpsc.html
成都網站建設公司_創新互聯,為您提供做網站、網站內鏈、軟件開發、云服務器、定制開發、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯