目錄:
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)與策劃設(shè)計,曾都網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:曾都等地區(qū)。曾都做網(wǎng)站價格咨詢:028-86922220
1、MySQL用戶賬號
2、基本查看命令
3、關(guān)系型數(shù)據(jù)庫常用組件
4、DDL: Data Defination Language 數(shù)據(jù)定義語句
常用命令CREATE, DROP, ALTER使用示例
5、DML: Data Manipulation Language 數(shù)據(jù)處理語句
常用命令I(lǐng)NSERT, DELETE, UPDATE使用示例
6、DCL: Data Control Language 數(shù)據(jù)控制語句
常用命令GRANT, REVOKE使用示例
7、DQL: Data Query Language 數(shù)據(jù)查詢語句
常用SELECT使用示例
8、數(shù)據(jù)類型
9、定義表的修飾符
10、索引
1、mysql用戶賬號
① 賬號由兩部分組成: 'USERNAME'@'HOST' HOST用于限制此用戶可通過哪些遠(yuǎn)程主機(jī)連接mysql服務(wù) ② mysql選項(xiàng): -uUSERNAME: 用戶名;默認(rèn)為root -hHOST: 服務(wù)器主機(jī); 默認(rèn)為localhost -pPASSWORD:用戶的密碼;建議使用-p,默認(rèn)為空密碼 ③ 支持使用通配符: % 匹配任意長度的任意字符 172.16.0.0/16 或 172.16.%.% _ 匹配任意單個字符
2、基本查看命令
① show databases; 等同于show schemas; #查看數(shù)據(jù)庫列表 ② select user(); #查看登錄用戶 ③ help [命令] # 查看命令用法每個命令都完×××式和簡寫格式,mariadb內(nèi)置命令非sql語句命令可不加“;”結(jié)尾 例:status 或 \s help create database help alter table ④ 查看支持所有字符集:show character set; ⑤ 查看支持所有排序規(guī)則: show collation; ⑥ 查看支持的引擎: show engines; ⑦ 查看表: show tables [FROM db_name]; ⑧ 查看表結(jié)構(gòu): desc [db_name.]tb_name; ⑨ 查看表上的索引: show indexes from [db_name.]tbl_name;
3、關(guān)系型數(shù)據(jù)庫常用組件
數(shù)據(jù)庫: database 表: table 行: row 列: column 索引: index 視圖: view 用戶: user 權(quán)限: privilege 存儲過程: procedure,過程無返回值 存儲函數(shù): function,過程有返回值 觸發(fā)器: trigger 事件調(diào)度器: event scheduler,任務(wù)計劃
4、DDL: Data Defination Language 數(shù)據(jù)定義語句
用于管理數(shù)據(jù)庫列表。常用命令CREATE, DROP, ALTER
① 創(chuàng)建數(shù)據(jù)庫 create database/schema [IF NOT EXISTS]“數(shù)據(jù)庫名” ② 刪除數(shù)據(jù)庫 drop database/schema [IF EXISTS]“數(shù)據(jù)庫名” ③ 創(chuàng)建表單 create table [IF NOT EXISTS] ‘tbl_name’ (col1 type1修飾符, col2 type2 修飾符, ...)
例:
create table students (id int unsigned not null primary key,name varchar (20) not null,age tinyint unsigned); # id int unsigned id, 定義非負(fù)數(shù)整型 # not null 不允許為空 # primary key 作為主鍵 # name varchar (20) 可變字符串,顯示20位 # not null 不允許為空 # age tinyint unsigned 年齡,最小非負(fù)數(shù)整 cretae table test select * from students; #以students表為模板創(chuàng)建test表,兩張表相同內(nèi)容 cretae table test select * from students where 1=0; #跟一個不成立的條件可只復(fù)制表結(jié)構(gòu),不復(fù)制表內(nèi)容
④ 刪除表 drop table [IF EXISTS] tb_name; ⑤修改表 :alter table 'tbl_name' 字段: 添加字段: add add col1 data_type [FIRST|AFTER col_name] 刪除字段: drop 修改字段: alter(默認(rèn)值) , change(字段名) , modify(字段屬性) 索引: 添加索引: add 刪除索引: drop
例:
alter table students RENAME s1; #表單改名 alter table s1 ADD phone varchar(11) AFTER name; #表單在name后面增加字段 alter table s1 MODIFY phone int; #修改表單字段數(shù)據(jù)類型 alter table s1 CHANGE [COLUMN] phone mobile char(11); #修改表單字段名稱 alter table s1 DROP [COLUMN] mobile; #刪除列 alter table students ADD gender ENUM('m','f') #添加字段gender,枚舉只能是m或者f alter table students CHANGE id sid int UNSIGNEDNOT NULL PRIMARY KEY; #將id字段改名為sid,并修改字段類型 alter table students ADD UNIQUE KEY(name); #修改字段為唯一鍵 alter table students ADD INDEX(age); #修改字段為索引 alter table students DROP age; #刪除age字段
5、DML: Data Manipulation Language 數(shù)據(jù)處理語句
用于管理表單中數(shù)據(jù)內(nèi)容,常用命令I(lǐng)NSERT, DELETE, UPDATE
① INSERT語法:
INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} (val1,...),(...),...
例:
insert students values (1,'mage',18); #未指明字段,需按順序填寫 insert students(name,id)values('niu',2); insert students(name,id)values('niu',2),('ma',3),('yang',4); #可加多條記錄 insert into test2 select id,name from students; #將students的兩個字段導(dǎo)入test2表,兩張表對應(yīng)字段數(shù)據(jù)類型應(yīng)一致
② UPDATE語法:
UPDATE tbl_name SET col1=val1, col2=val2, ...[WHERE clause] [ORDER BY 'col_name' [DESC]][LIMIT [m,]n];
例:
update students set age=20 where id=2;
③ DELETE語法:
DELETE FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n]; #LIMIT [m,]n表示跳過前m個,只去處理后n個
例:
delete from students where id=2;
④ 清空表內(nèi)容(不記錄日志,速度快):
TRUNCATE TABLE tbl_name;
6、DCL: Data Control Language 數(shù)據(jù)控制語句
用于管理用戶權(quán)限,常用命令GRANT, REVOKE
創(chuàng)建用戶: CREATE USER 'username'@'host' [IDENTIFIED BY 'password']; 刪除用戶: DROP USER 'username'@'host'; 更改口令三種方法: 1) SET PASSWORD FOR 'user'@'host' = PASSWORD(‘password'); #推薦使用改口令方法 2) UPDATE user SET password=PASSWORD('magedu')WHERE User='root' ; 注意:方法2修改表的命令不會馬上生效,需執(zhí)行FLUSH PRIVILEGES生效 3) /usr/local/mysql/bin/mysqladmin -u root –poldpassword password 'newpassword‘ #shell中更改方法
授權(quán)語法:GRANT priv_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION]; 示例: GRANT SELECT,DELETE on testdb.* TO 'testuser'@'%'IDENTIFIED BY 'testpass‘; #授權(quán)并創(chuàng)建用戶 grant select on wangdb.* to 'wang'@'172.16.%.%' 回收授權(quán):REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host 示例: REVOKE DELETE ON testdb.* FROM 'testuser'@'%‘
注意: MariaDB服務(wù)進(jìn)程啟動時會讀取mysql庫中所有授權(quán)表至內(nèi)存
(1) GRANT或REVOKE等執(zhí)行權(quán)限操作會保存于系統(tǒng)表中, MariaDB的服務(wù)進(jìn)程通常會自動重讀授權(quán)表,使之生效
(2) 對于不能夠或不能及時重讀授權(quán)表的命令,可手動讓MariaDB的服務(wù)進(jìn)
程重讀授權(quán)表: mysql> FLUSH PRIVILEGES;
7、DQL: Data Query Language 數(shù)據(jù)查詢語句
用于查看數(shù)據(jù)內(nèi)容,常用SELECT
① 語法:SELECT col1,col2,... FROM tbl_name [WHERE clause] [ORDER BY 'col_name' [DESC]] [LIMIT [m,]n]; ② 字段表示法: *: 所有字段 as:字段別名, col1 AS alias1 ③ WHERE clause: 操作符: >, <, >=, <=, ==, != BETWEEN ... AND ... LIKE: %:任意長度的任意字符 _:任意單個字符; RLIKE:正則表達(dá)式模式匹配 IS NULL , IS NOT NULL IN (val1,val2,…) 條件邏輯操作: and, or, not
例:
select id 編號,name 名字 from students order by name ; #使用別名顯示id,name。以name列順序顯示,在name后加desc表示倒序排(不加默認(rèn)asc正序排) select id,name from students where name is null; select * from test2 where name like "%a%"; #查看test表中包含a的所有信息 select * from test where id in (1,3,5); #查看表中id為1或3或5的所有信息 select * from test where id >=2 and id <=5; select * from test where id between 2 and 5; #必須小數(shù)在前大數(shù)在后 select * from test where id != 2; select * from test where id <> 2; #查看id不為2的所有信息 select test.name from test ,test2 where test.name=test2.name; #查找test表和test2表中name字段內(nèi)容相同的name信息 內(nèi)連接(取交集): select bj.name from bjcai as bj INNER JOIN zhengzhoucai as zz ON bj.name=zz.name and zz.id=3;
8、數(shù)據(jù)類型分類及選取原則
8.1MySql支持多種列類型:
數(shù)值類型 日期/時間類型 字符串(字符)類型
8.2選擇正確的數(shù)據(jù)類型對于獲得高性能至關(guān)重要,三大原則:
更小的通常更好,盡量使用可正確存儲數(shù)據(jù)的最小數(shù)據(jù)類型
簡單就好,簡單數(shù)據(jù)類型的操作通常需要更少的CPU周期
盡量避免NULL,包含為NULL的列,對MySQL更難優(yōu)化
8.3數(shù)值類型
㈠、整型 tinyint(m) | 1個字節(jié) 范圍(-128~127) |
smallint(m) | 2個字節(jié) 范圍(-32768~32767) |
mediumint(m) | 3個字節(jié) 范圍(-8388608~8388607) |
int(m) | 4個字節(jié) 范圍(-2147483648~2147483647) |
bigint(m) | 8個字節(jié) 范圍(+-9.22*10的18次方) |
√ 取值范圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值范圍為(0~255)
√ int(m)里的m是表示SELECT查詢結(jié)果集中的顯示寬度,并不影響實(shí)際的取值范圍
√ MySQL可以為整型類型指定寬度,例如Int(11),對絕大多數(shù)應(yīng)用這是沒有意義的:它不會限制值的合法范圍,只是規(guī)定了MySQL的一些交互工具(例如MySQL命令行客戶端)用來顯示字符的個數(shù)。
對于存儲和計算來說, Int(1)和Int(20)是相同的。
㈡、浮點(diǎn)型(float和double),近似值
float(m,d) 單精度浮點(diǎn)型 8位精度(4字節(jié)) m總個數(shù), d小數(shù)位 double(m,d) 雙精度浮點(diǎn)型 16位精度(8字節(jié)) m總個數(shù), d小數(shù)位 設(shè)一個字段定義為float(6,3),如果插入一個數(shù)123.45678,實(shí)際數(shù)據(jù)庫里存的是123.457,但總個數(shù)還以實(shí)際為準(zhǔn),即6位。
㈢、定點(diǎn)數(shù)
在數(shù)據(jù)庫中存放的是精確值,存為十進(jìn)制
decimal(m,d) 參數(shù)m<65 是總個數(shù), d<30且 d<m 是小數(shù)位
MySQL5.0和更高版本將數(shù)字打包保存到一個二進(jìn)制字符串中(每4個字節(jié)存9個數(shù)字)。例如, decimal(18,9)小數(shù)點(diǎn)兩邊將各存儲9個數(shù)字,一共使用9個字節(jié):小數(shù)點(diǎn)前的數(shù)字用4個字節(jié),小數(shù)點(diǎn)后的數(shù)字用4個字節(jié),小數(shù)點(diǎn)本身占1個字節(jié)。
浮點(diǎn)類型在存儲同樣范圍的值時,通常比decimal使用更少的空間。 float使用4個字節(jié)存儲。 double占用8個字節(jié)。
因?yàn)樾枰~外的空間和計算開銷,所以應(yīng)該盡量只在對小數(shù)進(jìn)行精確計算時才使用decimal——例如存儲財務(wù)數(shù)據(jù)。但在數(shù)據(jù)量比較大的時候,可以考慮使用bigint代替decimal。
㈣、字符串(char,varchar,_text)
char(n) 固定長度,最多255個字符。如存儲三個字符剩余會補(bǔ)齊至n個字符,字符長度統(tǒng)一訪問查找速度較快。 varchar(n)可變長度,最多65535個字符。存儲幾個字符就占幾個字符。 tinytext 可變長度,最多255個字符 text 可變長度,最多65535個字符 mediumtext 可變長度,最多2的24次方-1個字符 longtext 可變長度,最多2的32次方-1個字符 BINARY(M) 固定長度,可存二進(jìn)制或字符,允許長度為0-M字節(jié), VARBINARY(M) 可變長度,可存二進(jìn)制或字符,允許長度為0-M字節(jié)
內(nèi)建類型: ENUM枚舉, SET集合
char和varchar:
1.char(n) 若存入字符數(shù)小于n,則以空格補(bǔ)于其后,查詢之時再將空格去掉。所以char類型存儲的字符串末尾不能有空格, varchar不限于此。
2.char(n) 固定長度, char(4)不管是存入幾個字符,都將占用4個字節(jié), varchar是存入的實(shí)際字符數(shù)+1個字節(jié)(n< n>255),所以varchar(4),存入3個字符將占用4個字節(jié)。
3.char類型的字符串檢索速度要比varchar類型的快
varchar和text(推薦不使用):
1.varchar可指定n, text不能指定,內(nèi)部存儲varchar是存入的實(shí)際字符數(shù)+1個字節(jié)(n< n>255), text是實(shí)際字符數(shù)+2個字節(jié)。
2.text類型不能有默認(rèn)值
3.varchar可直接創(chuàng)建索引, text創(chuàng)建索引要指定前多少個字符。varchar查詢速度快于text
㈤.二進(jìn)制數(shù)據(jù): BLOB(推薦不使用)
BLOB和text存儲方式不同, TEXT以文本方式存儲,英文存儲區(qū)分大小寫,而Blob是以二進(jìn)制方式存儲,不分大小寫
BLOB存儲的數(shù)據(jù)只能整體讀出
TEXT可以指定字符集, BLOB不用指定字符集
㈥.日期時間類型
date 日期 '2008-12-2' time 時間 '12:25:36' datetime 日期時間 '2008-12-2 22:06:44' timestamp 自動存儲記錄修改時間 YEAR(2), YEAR(4):年份 若定義一個字段為timestamp,這個字段里的時間數(shù)據(jù)會隨其他字段修改的時候自動刷新,這個數(shù)據(jù)類型的字段可以存放這條記錄最后被修改的時間。
9、定義表的修飾符
#所有類型: NULL 數(shù)據(jù)列可包含NULL值 NOT NULL 數(shù)據(jù)列不允許包含NULL值 DEFAULT 默認(rèn)值 PRIMARY KEY 主鍵 UNIQUE KEY 唯一鍵 CHARACTER SET name 指定一個字符集 #數(shù)值型 AUTO_INCREMENT 自動遞增,適用于整數(shù)類型 UNSIGNED 無符號
10、索引
索引是特殊數(shù)據(jù)結(jié)構(gòu);定義在查找時作為查找條件的字段。優(yōu)點(diǎn):提高查詢速度。缺點(diǎn):占用額外空間,影響插入速度。創(chuàng)建索引必須要有索引名稱
創(chuàng)建索引:
create INDEX index_name ON tbl_name (index_col_name,...); #指定一個或多個列建立名為index_name的索引 help CREATE INDEX
刪除索引:
drop INDEX index_name ON tbl_name;
查看索引:
show INDEXES FROM [db_name.]tbl_name;
當(dāng)前文章:MariaDB使用命令中級篇
標(biāo)題URL:http://jinyejixie.com/article26/ghhdcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計公司、標(biāo)簽優(yōu)化、網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)