數(shù)據(jù)庫(kù)MYSQL學(xué)習(xí)系列二

                        數(shù)據(jù)庫(kù)MySQL學(xué)習(xí)系列二

創(chuàng)新互聯(lián)建站從2013年成立,先為萬(wàn)寧等服務(wù)建站,萬(wàn)寧等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為萬(wàn)寧企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

一.MYSQL數(shù)據(jù)庫(kù)對(duì)象與應(yīng)用

2.1-MySQL數(shù)據(jù)類(lèi)型

Number不止一種

· ×××

· 浮點(diǎn)型

×××

· INT

· SMALLINT

· MEDIUMINT

· BIGINT

type

Storage

Minumun Value

Maximum Value


(Bytes)

(Signed/Unsigned)

(Signed/Unsigned)

TINYINT

1

-128

127



0

255

SMALLINT

2

-32768

32767



0

65535

MEDIUMINT

3

-8388608

8388607



0

16777215

INT

4

-2147483648

2147483647



0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807



0

18446744073709551615

老生常談的問(wèn)題

int(11) VS int(21) 存儲(chǔ)空間,還是存儲(chǔ)范圍有區(qū)別?

答案是:兩者完全一樣,只是在顯示的時(shí)候補(bǔ)全0的位數(shù)不一樣。

可以通過(guò)下面的例子來(lái)驗(yàn)證:

create table t(aint(11) zerofill, bint(21) zerofill);insert into tvalues (1,1);select * from t;

MySQL默認(rèn)是不帶0補(bǔ)全的。

只是在一些特殊情況下兩者顯示有區(qū)別,其本質(zhì)完全一樣。

浮點(diǎn)型

· FLOAT(M, D)

· DOUBLE(M, D)

屬性

存儲(chǔ)空間

精度

精確性

Float

4 bytes

單精度

非精確

Double

8 bytes

雙精度

比Float精度高

精度丟失問(wèn)題

· 精度丟失

一個(gè)例子:

create table t(aint(11), b float(7,4));insert into tvalues (2,123.12345);select * from t;

定點(diǎn)數(shù)-更精確的數(shù)字類(lèi)型

· DECIMAL

o 高精度的數(shù)據(jù)類(lèi)型,常用來(lái)存儲(chǔ)交易相關(guān)的數(shù)據(jù)

o DECIMAL(M,N).M代表總精度,N代表小數(shù)點(diǎn)右側(cè)的位數(shù)(標(biāo)度)

o 1 < M < 254, 0 < N < 60;

o 存儲(chǔ)空間變長(zhǎng)

性別、省份信息

一般使用tinyint、char(1)、enum類(lèi)型。

經(jīng)驗(yàn)之談

· 存儲(chǔ)性別、省份、類(lèi)型等分類(lèi)信息時(shí)選擇TINYINT或者ENUM

· BIGINT存儲(chǔ)空間更大,INT和BIGINT之間通常選擇BIGINT

· 交易等高精度數(shù)據(jù)選擇使用DECIMAL

存儲(chǔ)用戶(hù)名的屬性

· CHAR

· VARCHAR

· TEXT

CAHR與VARCHAR

· CHAR和VARCHAR存儲(chǔ)的單位都是字符

· CHAR存儲(chǔ)定長(zhǎng),容易造成空間的浪費(fèi)

· VARCHAR存儲(chǔ)變長(zhǎng),節(jié)省存儲(chǔ)空間

字符與字節(jié)的區(qū)別

編碼\輸入字符串

網(wǎng)易

netease

gbk(雙字節(jié))

varchar(2)/4 bytes

varchar(7)/7 bytes

utf8(三字節(jié))

varchar(2)/6 bytes

varchar(7)/7 bytes

utf8mb4(四字節(jié))

varchar(2) ?

varchar(7)/7 bytes

對(duì)于utf8mb4號(hào)稱(chēng)占用四字節(jié)但是并不絕對(duì)。如果在utf8可以覆蓋到的范圍則仍然占用3字節(jié)。

utf8mb4最有優(yōu)勢(shì)的應(yīng)用場(chǎng)景是用于存儲(chǔ)emoji表情

emoji表情

· MySQL版本 > 5.5.3

· JDBC驅(qū)動(dòng)版本 > 5.1.13

· 庫(kù)和表的編碼設(shè)為utf8mb4

TEXT與CHAR和VARCHAR的區(qū)別

· CHAR和VARCHAR存儲(chǔ)單位為字符

· TEXT存儲(chǔ)單位為字節(jié),總大小為65535字節(jié),約為64KB

· CHAR數(shù)據(jù)類(lèi)型最大為255字符

· VARCHAR數(shù)據(jù)類(lèi)型為變長(zhǎng)存儲(chǔ),可以超過(guò)255個(gè)字符

· TEXT在MySQL內(nèi)部大多存儲(chǔ)格式為溢出頁(yè),效率不如CHAR

一個(gè)例子:

create table t (achar(256));create table t (avarchar(256));

存儲(chǔ)頭像

· BLOB

· BINARY

性能太差,不推薦

經(jīng)驗(yàn)之談

· CHAR與VARCHAR定義的長(zhǎng)度是字符長(zhǎng)度不是字節(jié)長(zhǎng)度

· 存儲(chǔ)字符串推薦使用VARCHAR(N),N盡量小

· 雖然數(shù)據(jù)庫(kù)可以存儲(chǔ)二進(jìn)制數(shù)據(jù),但是性能低下,不要使用數(shù)據(jù)庫(kù)存儲(chǔ)文件音頻等二進(jìn)制數(shù)據(jù)

存儲(chǔ)生日信息

· DATE

· TIME

· DATETIME

· TIMESTAMP

· BIGINT

時(shí)間類(lèi)型的區(qū)別在哪里

· 

存儲(chǔ)空間上的區(qū)別

· 

o DATE三字節(jié),如:2015-05-01

o TIME三字節(jié),如:11:12:00

o TIMESTAMP,如:2015-05-01 11::12:00

o DATETIME八字節(jié),如:2015-05-01 11::12:00

· 

存儲(chǔ)精度的區(qū)別

· 

o DATE精確到年月日

o TIME精確到小時(shí)分鐘和秒

o TIMESTAMP、DATETIME都包含上述兩者

TIMESTAMP VS DATETIME

· 存儲(chǔ)范圍的區(qū)別

o TIMESTAMP存儲(chǔ)范圍:1970-01-01 00::00:01 to 2038-01-19 03:14:07

o DATETIME的存儲(chǔ)范圍:1000-01-01 00:00:00 to 9999-12-31 23:59:59

MySQL在5.6.4版本之后,TimeStamp和DateTime支持到微妙

· 字段類(lèi)型與市區(qū)的關(guān)聯(lián)關(guān)系

o TIMESTAMP會(huì)根據(jù)系統(tǒng)時(shí)區(qū)進(jìn)行轉(zhuǎn)換,DATETIME則不會(huì)

字段類(lèi)型和時(shí)區(qū)的關(guān)系

· 國(guó)際化的系統(tǒng)

一個(gè)例子:

create table test (a datetime, btimestamp);select now();insert into testvalues (now(), now());select * from test;set time_zone= '+00:00';select * from test;

BIGINT如何存儲(chǔ)時(shí)間類(lèi)型

· 應(yīng)用程序?qū)r(shí)間轉(zhuǎn)換為數(shù)字類(lèi)型

2.2-MySQL數(shù)據(jù)對(duì)象

MySQL常見(jiàn)的數(shù)據(jù)對(duì)象有哪些

· DataBase/Schema

· Table

· Index

· View/Trigger/Function/Procedure

庫(kù)、表、行層級(jí)關(guān)系

· 一個(gè)DataBase對(duì)應(yīng)一個(gè)Schema

· 一個(gè)Schema包含一個(gè)或多個(gè)表

· 一個(gè)表里面包含一個(gè)或多個(gè)字段

· 一個(gè)表里包含一條或多條記錄

· 一個(gè)表包含一個(gè)或多個(gè)索引

多DataBase用途

· 業(yè)務(wù)隔離

· 資源隔離

表上有哪些常用的數(shù)據(jù)對(duì)象

· 索引

· 約束

· 視圖、觸發(fā)器、函數(shù)、存儲(chǔ)過(guò)程

什么是數(shù)據(jù)庫(kù)索引

· 讀書(shū)的時(shí)候如何快速定位某一章節(jié)

o 查找書(shū)籍目錄

o 在自己喜歡的章節(jié)加書(shū)簽,直接定位

· 索引就是數(shù)據(jù)庫(kù)中的數(shù)據(jù)的目錄(索引和數(shù)據(jù)是分開(kāi)存儲(chǔ)的)

o 索引和數(shù)據(jù)是兩個(gè)對(duì)象

o 索引主要是用來(lái)提高數(shù)據(jù)庫(kù)的查詢(xún)效率

o 數(shù)據(jù)庫(kù)中數(shù)據(jù)變更同樣需要同步索引數(shù)據(jù)的變更

如何創(chuàng)建索引(一)

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

  [index_type]

  ON tbl_name (index_col_name,...)

  [index_option]

  [algorithm_option | lock_option] ...

 

index_col_name:

  col_name [(length)] [ASC |DESC]

 

index_type:

  USING {BTREE | HASH}

如何創(chuàng)建索引(二)

ALTER [IGNORE] TABLE tbl_name

  [alter_specification [, alter_specification] ...]

  [partition_options]

 

alter_specification:

    table_options

  | ADD [COLUMN] col_name column_definition

        [FIRST | AFTER col_name]

    ADD [COLUMN] (col_name column_definition,...)

    ADD {INDEX|KEY} [index_name]

        [index_type] (index_col_name,...) [index_option] ...

  | ADD [CONSTRAINT [symbol]]PRIMARY KEY

        [index_type] (index_col_name,...) [index_option] ...

  | ADD [CONSTRAINT [symbol]]

        UNIQUE [INDEX|KEY] [index_name]

約束

· 生活中的約束有哪些

o 每個(gè)人的指紋信息必須唯一

o 每個(gè)人的×××要求唯一

o 網(wǎng)上購(gòu)物需要先登錄才能下單

· 唯一約束

o 對(duì)一張表的某個(gè)字段或者某幾個(gè)字段設(shè)置唯一鍵約束,保證在這個(gè)表里對(duì)應(yīng)的數(shù)據(jù)必須唯一,如:用戶(hù)ID、手機(jī)號(hào)、×××等。

創(chuàng)建唯一約束

· 唯一約束是一種特殊的索引

· 唯一約束可以是一個(gè)或者多個(gè)字段

· 唯一約束可以在創(chuàng)建表的時(shí)候建好,也可以后面再補(bǔ)上

· 主鍵也是一種唯一約束

唯一約束

以如下這張表為例

CREATE TABLE `order` (

  `id` int(10) unsignedNOT NULL AUTO_INCREMENT,

  `orderid` int(10) unsignedNOT NULL,

  `bookid` int(10) unsignedNOT NULL DEFAULT'0',

  `userid` int(10) unsignedNOT NULL DEFAULT'0',

  `number` tinyint(3) unsignedNOT NULL DEFAULT'0',

  `address` varchar(128)NOT NULL DEFAULT'',

  `postcode` varchar(128)NOT NULL DEFAULT'',

  `orderdate` datetimeNOT NULL DEFAULT'0000-00-00 00:00:00',

  `status` tinyint(3) unsigned zerofill DEFAULT'000',

  PRIMARY KEY (`id`),

  UNIQUE KEY`idx_orderid` (`orderid`),

  UNIQUE KEY`idx_uid_orderid` (`userid`,`orderid`),

  KEY`bookid` (`bookid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

· 索引有哪些

o 主鍵索引 ID

o 單鍵索引 orderid

o 單鍵索引 bookid

o 組合索引 (userid + orderid)

· 唯一約束有哪些

o 主鍵約束 (ID)

o 單鍵唯一索引 (orderid)

o 組合唯一索引 (userid + orderid)

添加唯一約束

· 添加主鍵

o alter table `order` add primary key (id);

· 添加唯一索引

o alter table `order` add unique key idx_uk_orderid (orderid);

外鍵約束

· 外鍵指兩張表的數(shù)據(jù)通過(guò)某種條件關(guān)聯(lián)起來(lái)

創(chuàng)建外鍵約束

· 將用戶(hù)表和訂單表通過(guò)外鍵關(guān)聯(lián)起來(lái)

o alter table `order` add CONSTRAINT constraint_uid FOREIGN KEY (userid) REFERENCES user(userid);

· 使用外鍵的注意事項(xiàng)

o 必須是INNODB表,Myisam和其他引擎不支持外鍵

o 相互約束的字段類(lèi)型必須要求一樣

o 主表的約束字段要求有索引

o 約束名稱(chēng)必須要唯一,即使不在一張表上

View

· 產(chǎn)品需求

o 假如有其他部門(mén)的同事想查詢(xún)我們數(shù)據(jù)庫(kù)里的數(shù)據(jù),但是我們并不想暴露表結(jié)構(gòu),并且只提供給他們部分?jǐn)?shù)據(jù)

View的作用

· 視圖將一組查詢(xún)語(yǔ)句構(gòu)成的結(jié)果集,是一種虛擬結(jié)構(gòu),并不是實(shí)際數(shù)據(jù)

· 視圖能簡(jiǎn)化數(shù)據(jù)庫(kù)的訪問(wèn),能夠?qū)⒍鄠€(gè)查詢(xún)語(yǔ)句結(jié)構(gòu)化為一個(gè)虛擬結(jié)構(gòu)

· 視圖可以隱藏?cái)?shù)據(jù)庫(kù)后端表結(jié)構(gòu),提高數(shù)據(jù)庫(kù)安全性

· 視圖也是一種權(quán)限管理,只對(duì)用戶(hù)提供部分?jǐn)?shù)據(jù)

創(chuàng)建View

· 創(chuàng)建已完成訂單的視圖

o create view order_view as select * from `order` where status=1;

Trigger

· 產(chǎn)品需求

o 隨著客戶(hù)個(gè)人等級(jí)的提升, 系統(tǒng)需要自動(dòng)更新用戶(hù)的積分,其中一共有兩張表,分別為:用戶(hù)信息表和積分表

· Trigger俗稱(chēng)觸發(fā)器,指可以在數(shù)據(jù)寫(xiě)入表A之前或者之后可以做一些其他動(dòng)作

· 使用Trigger在每次更新用戶(hù)表的時(shí)候出發(fā)更新積分表

除此之外還有哪些

· Function

· Procedure

2.3-MySQL權(quán)限管理

連接MySQL的必要條件

· 網(wǎng)絡(luò)要通暢

· 用戶(hù)名和密碼要正確

· 數(shù)據(jù)庫(kù)需要加IP白名單

· 更細(xì)粒度的驗(yàn)證(庫(kù)、表、列權(quán)限類(lèi)型等等)

數(shù)據(jù)有哪些權(quán)限

show privileges命令可以查看全部權(quán)限

權(quán)限粒度

· Data Privileges

o DATA: SELECT, INSERT, UPDATE, DELETE

· Definition Privileges

o DataBase: CREATE, ALTER, DROP

o Table: CREATE, ALTER, DROP

o VIEW/FUNCTION/TRIGGER/PROCEDURE: CREATE, ALTER, DROP

· Administrator Privileges

o Shutdown DataBase

o Replication Slave

o Replication Client

o File Privilege

MySQL賦權(quán)操作

GRANT

  priv_type [(column_list)]

    [, priv_type [column_list]] ...

  ON [object_type] priv_level

  TO user_specification [, user_specification] ...

  [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]

  [WITH with_option ...]GRANT PROXYON user_specification

  TO user_specification [, user_specification] ...

  [WITHGRANT OPTION]

如何新建一個(gè)用戶(hù)并賦權(quán)

· 使用MySQL自帶的命令

o CREATE USER 'netease'@'localhost' IDENTIFIED BY 'netease163';

o GRANT SELECT ON *.* TO 'netease'@'localhost' WITH GRANT OPTION;

其他方法

· 更改數(shù)據(jù)庫(kù)記錄

o 首先向User表里面插入一條記錄,根據(jù)自己的需要選擇是否向db和table_pirv表插入記錄

o 執(zhí)行flush privileges命令,讓權(quán)限信息生效

更簡(jiǎn)單的辦法

· GRANT語(yǔ)句會(huì)判斷是否存在該用戶(hù),如果不存在則新建

o GRANT SELECT ON *.* TO 'NETEASE'@'localhost' IDENTIFIED BY 'netease163' WITH GRANT OPTION;

查看用戶(hù)的權(quán)限信息

· 查看當(dāng)前用戶(hù)的權(quán)限

o show grants;

· 查看其它用戶(hù)的權(quán)限

o show grants for netease@'localhost';

如何更改用戶(hù)的權(quán)限

· 回收不需要的權(quán)限

o revoke select on *.* from netease@'localhost';

· 重新賦權(quán)

o grant insert on *.* to netease@'localhost';

如何更改用戶(hù)密碼

· 用新密碼,grant語(yǔ)句重新授權(quán)

· 更改數(shù)據(jù)庫(kù)記錄,Update User表的Password字段

o 注意:用這種辦法,更改完需要flush privileges刷新權(quán)限信息,不推薦

刪除用戶(hù)

DROP USER user [, user] ...

With Grant Option

· 允許被授予權(quán)利的人把這個(gè)權(quán)利授予其他的人

MySQL權(quán)限信息存儲(chǔ)結(jié)構(gòu)

· MySQL權(quán)限信息是存在數(shù)據(jù)庫(kù)表中

· MySQL賬號(hào)對(duì)應(yīng)的密碼也加密存儲(chǔ)在數(shù)據(jù)庫(kù)表中

· 每一種權(quán)限類(lèi)型在元數(shù)據(jù)里都是枚舉類(lèi)型,表明是否有該權(quán)限

有哪些權(quán)限相關(guān)的表

· user

· db

· table_pirv

· columns_pirv

· host

權(quán)限驗(yàn)證流程

查詢(xún)時(shí)從user->db->table_pirv->columns_pirv依次驗(yàn)證,如果通過(guò)則執(zhí)行查詢(xún)。

小結(jié)

· MySQL權(quán)限信息都是以數(shù)據(jù)記錄的形式存儲(chǔ)在數(shù)據(jù)庫(kù)的表中。

· MySQL的權(quán)限驗(yàn)證相比網(wǎng)站登錄多了白名單環(huán)節(jié),并且粒度更細(xì),可以精確到表和字段。

MySQL權(quán)限上有哪些問(wèn)題

· 使用Binary二進(jìn)制安裝管理用戶(hù)沒(méi)有設(shè)置密碼

· MySQL默認(rèn)的test庫(kù)不受權(quán)限控制,存在安全風(fēng)險(xiǎn)

mysql_secure_installation

· You can set a Password for root accounts.

· You can remove root accounts that are accessible from outside the localhost.

· You can remove anonymous-user accounts.

· You can remove the test database.

小結(jié)

· 權(quán)限相關(guān)的操作不要直接操作表,統(tǒng)一使用MySQL命令。

· 使用二進(jìn)制安裝MySQL安裝后,需要重置管理用戶(hù)(root)的密碼。

· 線上數(shù)據(jù)庫(kù)不要留test庫(kù)

實(shí)踐課:數(shù)據(jù)庫(kù)對(duì)象

何為表結(jié)構(gòu)設(shè)計(jì)

· 表結(jié)構(gòu)設(shè)計(jì)需要在正式進(jìn)行開(kāi)發(fā)之前完成

· 根據(jù)產(chǎn)品需求將復(fù)雜的業(yè)務(wù)模型抽象出來(lái)

設(shè)計(jì)表的時(shí)候需要注意哪些

· 理解各個(gè)表的依賴(lài)關(guān)系

· 理解各個(gè)表的功能特點(diǎn)

o 字段之間的約束、索引

o 字段類(lèi)型、字段長(zhǎng)度

收集表屬性

· 昵稱(chēng)

· 生日

· 性別

· 手機(jī)號(hào)碼

· 住宅號(hào)碼

· 郵編

· 住宅地址

· 注冊(cè)地址

· 登錄IP

· 上一次登錄時(shí)間

· 郵件地址

理解表的功能特點(diǎn)——數(shù)據(jù)用途

create table tb_account(

  account_idint not null auto_incrementprimary key,

  nick_namevarchar(20),

  true_namevarchar(20),

  sexchar(1),

  mail_addressvarchar(50),

  phone1varchar(20)not null,

  phone2varchar(20),

  passwordvarchar(30)not null,

  create_time datetime,

  account_state tinyint,

  last_login_time datetime,

  last_login_ipvarchar(20)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

create table tb_goods(

  good_idbigint not null auto_incrementprimary key,

  goods_namevarchar(100)not null,

  pic_urlvarchar(500)not null,

  store_quantityint not null,

  goods_notevarchar(4096),

  producervarchar(500),

  category_idint not null

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

create table tb_goods_category(

  category_idint not null auto_incrementprimary key,

  category_levelsmallint not null,

  category_namevarchar(500),

  upper_category_idint not null

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

create table tb_order(

  order_idbigint not null auto_incrementprimary key,

  account_idint not null,

  create_time datetime,

  order_amountdecimal(12,2),

  order_state tinyint,

  update_time datetime,

  order_ipvarchar(20),

  pay_methodvarchar(20),

  user_notesvarchar(500)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

create table tb_order_item(

  order_item_idbigint not null auto_incrementprimary key,

  order_idbigint not null,

  goods_idbigint not null,

  goods_quantityint not null,

  goods_amountdecimal(12,2),

  uique key uk_order_goods(order_id, goods_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

數(shù)據(jù)類(lèi)型——命名規(guī)范

· 所有表名,字段名全部使用小寫(xiě)字母

· 不同業(yè)務(wù),表名使用不同前綴區(qū)分。

· 生成環(huán)境表名字段名要有實(shí)際意義

· 單個(gè)字段盡量使用字段全名;多個(gè)字段之間用下劃線分隔

字段設(shè)計(jì)規(guī)范

· 字段類(lèi)型選擇,盡量選擇能滿(mǎn)足應(yīng)用要求的最小數(shù)據(jù)類(lèi)型

· 盡量使用×××代替字符型?!痢痢猎谧侄伍L(zhǎng)度、索引大小等方面開(kāi)銷(xiāo)小效率更高,如郵編字段,手機(jī)號(hào)碼等

· 注釋?zhuān)總€(gè)字段必須以comment語(yǔ)句給出字段的作用

· 經(jīng)常訪問(wèn)的大字段需要單獨(dú)放到一張表中,避免降低sql效率,圖片、電影等大文件數(shù)據(jù)禁止存數(shù)據(jù)庫(kù)

· 新業(yè)務(wù)統(tǒng)一建議使用utf8mb4字符集

用戶(hù)賦權(quán)

· 理解用戶(hù)到底需要什么權(quán)限

o 普通用戶(hù)只有數(shù)據(jù)讀寫(xiě)權(quán)限

o 系統(tǒng)管理員具有super權(quán)限

· 權(quán)限粒度要做到盡可能的細(xì)

o 普通用戶(hù)不要設(shè)置with grant option屬性

o 權(quán)限粒度:系統(tǒng)層面>庫(kù)層面>表層面>字段層面

· 禁止簡(jiǎn)單密碼

o 線上密碼要求隨機(jī)

2.4-SQL語(yǔ)言進(jìn)階

本課程涉及建表SQL

-- ------------------------------ Table structure for `play_fav`-- ----------------------------DROP TABLE IF EXISTS`play_fav`;CREATE TABLE `play_fav` (

  `userid` bigint(20)NOT NULL COMMENT'收藏用戶(hù)id',

  `play_id` bigint(20)NOT NULL COMMENT'歌單id',

  `createtime` bigint(20)NOT NULL COMMENT'收藏時(shí)間',

  `status` int(11) DEFAULT'0' COMMENT'狀態(tài),是否刪除',

  PRIMARY KEY (`play_id`,`userid`),

  KEY`IDX_USERID` (`userid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='歌單收藏表';

-- ------------------------------ Records of play_fav-- ----------------------------INSERT INTO play_favVALUES ('2','0','0','0');INSERT INTO play_favVALUES ('116','1','1430223383','0');INSERT INTO play_favVALUES ('143','1','0','0');INSERT INTO play_favVALUES ('165','2','0','0');INSERT INTO play_favVALUES ('170','3','0','0');INSERT INTO play_favVALUES ('185','3','0','0');INSERT INTO play_favVALUES ('170','4','0','0');INSERT INTO play_favVALUES ('170','5','0','0');

-- ------------------------------ Table structure for `play_list`-- ----------------------------DROP TABLE IF EXISTS`play_list`;CREATE TABLE `play_list` (

  `id` bigint(20)NOT NULL COMMENT'主鍵',

  `play_name` varchar(255) DEFAULTNULL COMMENT'歌單名字',

  `userid` bigint(20)NOT NULL COMMENT'歌單作者賬號(hào)id',

  `createtime` bigint(20) DEFAULT'0' COMMENT'歌單創(chuàng)建時(shí)間',

  `updatetime` bigint(20) DEFAULT'0' COMMENT'歌單更新時(shí)間',

  `bookedcount` bigint(20) DEFAULT'0' COMMENT'歌單訂閱人數(shù)',

  `trackcount` int(11) DEFAULT'0' COMMENT'歌曲的數(shù)量',

  `status` int(11) DEFAULT'0' COMMENT'狀態(tài),是否刪除',

  PRIMARY KEY (`id`),

  KEY`IDX_CreateTime` (`createtime`),

  KEY`IDX_UID_CTIME` (`userid`,`createtime`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='歌單';

-- ------------------------------ Records of play_list-- ----------------------------INSERT INTO play_listVALUES ('1','老男孩','1','1430223383','1430223383','5','6','0');INSERT INTO play_listVALUES ('2','情歌王子','3','1430223384','1430223384','7','3','0');INSERT INTO play_listVALUES ('3','每日歌曲推薦','5','1430223385','1430223385','2','4','0');INSERT INTO play_listVALUES ('4','山河水','2','1430223386','1430223386','5',null,'0');INSERT INTO play_listVALUES ('5','李榮浩','1','1430223387','1430223387','1','10','0');INSERT INTO play_listVALUES ('6','情深深','5','1430223388','1430223389','0','0','1');

-- ------------------------------ Table structure for `song_list`-- ----------------------------DROP TABLE IF EXISTS`song_list`;CREATE TABLE `song_list` (

  `id` bigint(20)NOT NULL COMMENT'主鍵',

  `song_name` varchar(255)NOT NULL COMMENT'歌曲名',

  `artist` varchar(255)NOT NULL COMMENT'藝術(shù)節(jié)',

  `createtime` bigint(20) DEFAULT'0' COMMENT'歌曲創(chuàng)建時(shí)間',

  `updatetime` bigint(20) DEFAULT'0' COMMENT'歌曲更新時(shí)間',

  `album` varchar(255) DEFAULTNULL COMMENT'專(zhuān)輯',

  `playcount` int(11) DEFAULT'0' COMMENT'點(diǎn)播次數(shù)',

  `status` int(11) DEFAULT'0' COMMENT'狀態(tài),是否刪除',

  PRIMARY KEY (`id`),

  KEY`IDX_artist` (`artist`),

  KEY`IDX_album` (`album`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='歌曲列表';

-- ------------------------------ Records of song_list-- ----------------------------INSERT INTO song_listVALUES ('1','Good Lovin\' Gone Bad','Bad Company','0','0','Straight Shooter','453','0');INSERT INTO song_listVALUES ('2','Weep No More','Bad Company','0','0','Straight Shooter','280','0');INSERT INTO song_listVALUES ('3','Shooting Star','Bad Company','0','0','Straight Shooter','530','0');INSERT INTO song_listVALUES ('4','大象','李志','0','0','1701','560','0');INSERT INTO song_listVALUES ('5','定西','李志','0','0','1701','1023','0');INSERT INTO song_listVALUES ('6','紅雪蓮','洪啟','0','0','紅雪蓮','220','0');INSERT INTO song_listVALUES ('7','風(fēng)柜來(lái)的人','李宗盛','0','0','作品李宗盛','566','0');

-- ------------------------------ Table structure for `stu`-- ----------------------------DROP TABLE IF EXISTS`stu`;CREATE TABLE `stu` (

  `id` int(10)NOT NULL DEFAULT'0',

  `name` varchar(20) DEFAULTNULL,

  `age` int(10) DEFAULTNULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ------------------------------ Records of stu-- ----------------------------

-- ------------------------------ Table structure for `tbl_proc_test`-- ----------------------------DROP TABLE IF EXISTS`tbl_proc_test`;CREATE TABLE `tbl_proc_test` (

  `id` int(11)NOT NULL AUTO_INCREMENT,

  `num` int(11) DEFAULTNULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8;

-- ------------------------------ Records of tbl_proc_test-- ----------------------------INSERT INTO tbl_proc_testVALUES ('11','1');INSERT INTO tbl_proc_testVALUES ('12','2');INSERT INTO tbl_proc_testVALUES ('13','6');INSERT INTO tbl_proc_testVALUES ('14','24');INSERT INTO tbl_proc_testVALUES ('15','120');INSERT INTO tbl_proc_testVALUES ('16','720');INSERT INTO tbl_proc_testVALUES ('17','5040');INSERT INTO tbl_proc_testVALUES ('18','40320');INSERT INTO tbl_proc_testVALUES ('19','362880');INSERT INTO tbl_proc_testVALUES ('20','3628800');INSERT INTO tbl_proc_testVALUES ('21','1');INSERT INTO tbl_proc_testVALUES ('22','2');INSERT INTO tbl_proc_test <

網(wǎng)頁(yè)題目:數(shù)據(jù)庫(kù)MYSQL學(xué)習(xí)系列二
本文鏈接:http://muchs.cn/article16/piopgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、靜態(tài)網(wǎng)站電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司