1. MySQL帳號操做mysql
# 進入mysql數據庫 mysql -uroot -p # 默認登陸數據庫以後並無實際操做的權限,須要使用root用戶登陸,在mysql5.6默認沒有密碼 # 給當前數據庫設置密碼 mysql> set password = password('root') # 查看當前用戶 mysql> select user(); # 退出數據庫 mysql> exit mysql> \q quit # 建立帳號 mysql> create user 'user1'@'192.137.10.%'; # 指定網段 mysql> create user 'user1'@'192.137.10.120'; # 指定某臺機器能夠鏈接 mysql> create user 'user1'@'%'; # 指定全部機器均可以鏈接 # 遠程登陸數據庫 mysql -uroot -p -h 'ip' #帳號受權 mysql> grant all on *.* to 'user1'@'%'; mysql> flush privileges; # 建立帳號並受權 mysql> grant all on *.* to 'user1'@'%' identified by '123' # 查看某個用戶的權限 mysql> show grants for 'user01'@'ip'
2. sql語言的分類sql
一、DDL語句 數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE DROP ALTER數據庫
二、DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT緩存
三、DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE安全
3. MySQL基本操做服務器
增:create database dbname charset utf8; # 建立數據庫並指定編碼方式爲utf8; 查:show databases; 改:alter database dbname charset latin1; # 修改數據庫的編碼方式爲latin1; 刪:drop database dbname;
# 要操做哪一個數據庫,先要切換到庫對應的文件夾下 mysql> use dbname; 增:create table table1(字段1,字段2,字段3); 查:show tables; 改:alter table table1 modify name char(3); # 修改表中的name字段內容長度不超過3 alter table table1 change name name1 char(2); # 將name字段修改成name1,並規定name1字段內容長度不能超過2; 刪:drop table table1;
增:insert into table1 values(值1,值2),(值1,值2),(值1,值2); # 一次插入多條數據 查:select * from table1; 改:update table1 set name='haha' where 條件; 刪:delete from table1 where 條件;
ps:網絡
在清空表時,能夠有其餘的命令:架構
delete from table1; 在這個命令下,若是有自增字段,新增的數據依然是以刪除前最後的id爲起始自增,並非從0開始;ide
truncate table table1;數據量大,刪除速度要比上一條命令塊,並從0開始;函數
4. after和first的區別:
alter table table1 add 字段1 數據類型 限制條件 after 已有字段; # 指定了哪一個字段,就會在哪一個字段以後新添加一個字段1; alter table table1 add 字段2 數據類型 限制條件 first; # 會在這張表的最前面添加一個字段:字段2;
first:
MySQL架構總共分爲四層,以上圖的虛線做爲劃分。
首先,最上層服務不是MySQL獨有的,大多數給予網絡的C/S架構的工具或者服務都有相似的架構。好比:鏈接處理、受權認證、安全等。
第二層的架構包括大多數的MySQL的核心服務。包括:查詢解析、分析、優化、緩存以及全部的內置函數(例如:日期、時間、數學和加密函數)。同時,全部的跨存儲引擎的功能都在這一層實現:存儲過程、觸發器、視圖等。
第三層包含了存儲引擎。存儲引擎負責MySQL中數據的存儲和提取。服務器經過API和存儲引擎進行通訊。這些接口屏蔽了不一樣存儲引擎之間的差別,使得這些差別對上層的查詢過程透明化。存儲引擎API包含十幾個底層函數,用於執行「開始一個事務」等操做。但存儲引擎通常不會去解析SQL(InnoDB會解析外鍵定義,由於其自己沒有實現該功能),不一樣存儲引擎之間也不會相互通訊,而只是簡單的響應上層的服務器請求。
第四層包含了文件系統,全部的表結構和數據以及用戶操做的日誌最終仍是以文件的形式存儲在硬盤上。