成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

MariaDB使用命令中級篇

目錄:

創(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)

小程序開發(fā)
本溪市| 金山区| 宝兴县| 乌兰县| 迁安市| 泗洪县| 汾西县| 军事| 靖边县| 昭通市| 胶州市| 田林县| 行唐县| 城步| 广东省| 广饶县| 宁河县| 重庆市| 安阳县| 甘德县| 永新县| 峨眉山市| 屏南县| 三台县| 阿克陶县| 平阴县| 鹤壁市| 东山县| 永兴县| 原阳县| 亳州市| 柳林县| 绥滨县| 平乡县| 通州市| 正定县| 都兰县| 广安市| 宜春市| 榆林市| 南昌市|