溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

發(fā)布時(shí)間:2020-06-03 17:40:00 來源:網(wǎng)絡(luò) 閱讀:224 作者:三月 欄目:數(shù)據(jù)庫

本篇文章給大家主要講的是關(guān)于linux下mysql數(shù)據(jù)庫模型, 管理表和索引的內(nèi)容,感興趣的話就一起來看看這篇文章吧,相信看完linux下mysql數(shù)據(jù)庫模型, 管理表和索引對(duì)大家多少有點(diǎn)參考價(jià)值吧。 

1.linux下mysql數(shù)據(jù)庫及其模型

1.1.SHOW TABLE STATUS LIKE 'user'\G   #查看表的存儲(chǔ)引擎

   SHOW ENGINES;   #查看數(shù)據(jù)庫支持的存儲(chǔ)引擎

客戶端工具:mysql、mysqladmin、mysqldump、mysqlimport、mysqlcheck

云服務(wù)器端工具:mysqld, mysqld_safe, mysqld_multi

1.2.my.cnf檢查順序:

/etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> 

                          --default-extra-file=/路徑文件 --> ~/.my.cnf

# mysqld --help --verbose

1.3.hostname.err,錯(cuò)誤日志:此前服務(wù)未關(guān)閉,數(shù)據(jù)初始化失敗,數(shù)據(jù)目錄位置錯(cuò)誤,數(shù)據(jù)目錄權(quán)限問題

1.4.數(shù)據(jù)類型:存入的值類型;占據(jù)的存儲(chǔ)空間;定長(zhǎng)或變長(zhǎng);比較及排序;是否能夠索引;

1.5.查看字符集和排序規(guī)則命令:

mysql> SHOW CHARACTER SET;

mysql> SHOW COLLATION;

1.6.AUTO_INCREMENT: 整型 非空 無符號(hào) 主鍵或惟一鍵

CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))

mysql> SELECT LAST_INSERT_ID();

1.7.MySQL云服務(wù)器變量按作用域:分為全局變量和會(huì)話變量

SHOW GLOBAL VARIABLES    #查看全局變量

SHOW [SESSION] VARIABLES  #查看會(huì)話變量

MySQL云服務(wù)器變量按生效時(shí)間分為兩類:動(dòng)態(tài)和靜態(tài)

動(dòng)態(tài):可即時(shí)修改

           靜態(tài):寫在配置文件中,通過參數(shù)傳遞給mysqld

動(dòng)態(tài)調(diào)整參數(shù)的生效方式:

全局變量:對(duì)當(dāng)前會(huì)話無效,只對(duì)新建立會(huì)話有效;

會(huì)話變量:即時(shí)生效,但只對(duì)當(dāng)前會(huì)話有效;

1.8.云服務(wù)器變量:@@變量名

顯示:SELECT @@global.sql_mode;

              SELECT @@session.sql_mode;

設(shè)定:SET GLOBAL|SESSION 變量名='value'

2.管理表:

2.1.創(chuàng)建數(shù)據(jù)庫:

CREATE DATABASE IF NOT EXISTS students CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

2.2.刪除數(shù)據(jù)庫:

DROP DATABASE [IF EXISTS] db_name

2.3.創(chuàng)建表:

CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )

2.3.1.直接創(chuàng)建一張空表:

CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT     NULL, Age TINYINT NOT NULL)  ENGINE [=] engine_name

CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20) NOT NULL, Age    TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE KEY(name),INDEX(age))

CREATE TABLE courses(ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Course  VARCHAR(50) NOT NULL);

2.3.2.插入表數(shù)據(jù):

INSERT INTO courses (Course) values ('CCNA'),('CCNP'),('RHCA');

2.3.3.顯示表的索引:

SHOW INDEXES FROM tb_name;

2.4.從其它表中查詢出數(shù)據(jù),并以之創(chuàng)建新表:(注意此類方法表格式定義與源表不同)

CREATE TABLE courses_new SELECT * FROM courses WHERE ID <=2;

2.5.以其它表為模板創(chuàng)建一個(gè)空表;(此類方法表格式定義與源表一模一樣)

CREATE TABLE Courses_good LIKE courses;

3.索引

3.1.添加索引:

ALTER TABLE Courses_good ADD UNIQUE KEY (Course);

3.2.修改字段名稱:

ALTER TABLE courses_good MODIFY CID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE courses_good CHANGE Couse Course VARCHAR(50) NOT NULL;

3.3.增加字段名稱:

ALTER TABLE courses_good ADD Startdate date default '2016-06-29';

3.4.修改表名稱:

ALTER TABLE courses_good RENAME TO courses_new;

RENAME TABLE courses_new TO courses_good;

3.5.刪除表:

DROP TABLE courses_new;

3.6.表之間建立關(guān)系:

CREATE TABLE cla***oom (SID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30), CID INT NOT NULL);

INSERT INTO cla***omm (Name,CID) VALUES ('Jerry',3),('tom',1);

SELECT * FROM cla***omm;

SELECT * FROM courses;

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

SELECT Name,Course FROM cla***oom,courses WHERE cla***oom.CID=courses.ID;

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

在沒有引用外鍵情況下:cla***oom表可任意插入數(shù)據(jù)如下:

INSERT INTO cla***oom (Name,CID) VALUES ('Willow',6);

DELETE FROM cla***oom WHERE CID=6;

引用外鍵情況下:cla***oom表只能對(duì)照引用表存在的數(shù)據(jù)進(jìn)行插入,不能任意插入數(shù)據(jù)

外鍵必須是支持事務(wù)的存儲(chǔ)引擎,如InnoDB,否則會(huì)報(bào)錯(cuò)

外鍵引用字段類型參數(shù)也需一致

ALTER TABLE courses ENGINE=InnoDB;

ALTER TABLE cla***oom ADD FOREIGN KEY foreign_cid (CID) REFERENCES courses(ID);

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

SHOW INDEXES FROM cla***oom;

此時(shí)對(duì)cla***oom表再插入引用的courses表中沒有的數(shù)據(jù),將會(huì)報(bào)錯(cuò)

INSERT INTO cla***oom (Name,CID) VALUES ('Willow',6); 

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

3.7.創(chuàng)建索引:

CREATE INDEX index_on_name ON cla***oom (Name) USING BTREE;

CREATE INDEX index_on_name ON cla***oom (Name(5) DESC) USING BTREE;

linux下mysql數(shù)據(jù)庫模型, 管理表和索引相關(guān)要義介紹

3.8.刪除索引:

DROP INDEX index_on_name ON cla***oom;

以上關(guān)于linux下mysql數(shù)據(jù)庫模型, 管理表和索引詳細(xì)內(nèi)容,對(duì)大家有幫助嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI