MySQL創(chuàng)建關(guān)聯(lián)表可以理解為是兩個(gè)表之間有個(gè)外鍵關(guān)系,但這兩個(gè)表必須滿足三個(gè)條件
創(chuàng)新新互聯(lián),憑借十年的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上1000家案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)公司。
1.兩個(gè)表必須是InnoDB數(shù)據(jù)引擎
2.使用在外鍵關(guān)系的域必須為索引型(Index)
3.使用在外鍵關(guān)系的域必須與數(shù)據(jù)類型相似
下面分別建兩個(gè)表來(lái)說(shuō)明一下:
Create TABLE IF NOT EXISTS `books` (
`book_id` smallint(6) NOT NULL auto_increment COMMENT ‘書(shū)籍編號(hào)',
`book_name` char(20) NOT NULL COMMENT ’書(shū)名‘,
`book_pic` varchar(200) NOT NULL COMMENT ’封面‘,
`book_author` char(20) NOT NULL COMMENT ’作者‘,
`book_pub` char(40) NOT NULL COMMENT ’出版社‘,
`book_sort` char(6) NOT NULL COMMENT ’分類‘,
`book_owner` char(6) default NULL COMMENT ’所有者‘,
`book_borrower` char(7) default NULL COMMENT ’借閱者‘,
`book_borrower_time` date default NULL COMMENT ’借閱時(shí)間‘,
PRIMARY KEY (`book_id`),
INDEX (book_borrower))
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=5 ;
Create TABLE IF NOT EXISTS `parts` (
`part_id` smallint(6) NOT NULL COMMENT ’成員編號(hào)‘,
`part_name` varchar(6) NOT NULL COMMENT ’成員名‘,
`part_mail` varchar(50) NOT NULL COMMENT ’郵箱‘,
`part_pass` varchar(20) NOT NULL COMMENT ’密碼‘,
PRIMARY KEY (`part_id`),
FOREIGN KEY(part_name) REFERENCES books(book_borrower) on delete cascade on update cascade)
分析一下books表和parts表,創(chuàng)建他們的關(guān)聯(lián),我用了books表的book_borrower字段 創(chuàng)建表時(shí)索引并選擇InnoDB為表引擎。而parts表即part_name字段為外鍵,關(guān)聯(lián)到books表的book_borrower字段。注意兩 個(gè)字段分別是char和varchar都是字符串類型。on delete cascade意思為當(dāng)books表有相關(guān)記錄刪除時(shí),那parts表也會(huì)跟著刪除相關(guān)聯(lián)的記錄。
CREATE DATABASE cookbook; 創(chuàng)建一個(gè)叫“cookbook”的數(shù)據(jù)庫(kù)
USE cookbook; 使用cookbook這個(gè)數(shù)據(jù)庫(kù)
CREATE TABLE limbs (thing VARCHAR(20),legs INT,arms INT); 創(chuàng)建表“l(fā)imbs”其中包括thing,legs,aems 字段
創(chuàng)建表的命令是 CREATE TABLE 表名稱
后面括號(hào)里的內(nèi)容是表中字段的屬性
方法如下:
1、首先打開(kāi)Mysql命令行編輯器,連接Mysql數(shù)據(jù)庫(kù);
2、使用所要操作的數(shù)據(jù)庫(kù),先顯示一下數(shù)據(jù)庫(kù)中的表;
3、顯示一下表結(jié)構(gòu),了解一下表中的列;
4、向表插入數(shù)據(jù),insert into 表名 (列名) values (值);
5、查詢表可以看到所插入的數(shù)據(jù),select * from 表名;
6、可以再插入一個(gè)數(shù)據(jù),顯示一下。
擴(kuò)展資料:
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的?RDBMS?(Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件。
MySQL是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
由于其社區(qū)版的性能卓越,搭配?PHP?和?Apache?可組成良好的開(kāi)發(fā)環(huán)境。
與其他的大型數(shù)據(jù)庫(kù),例如?Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。
Linux作為操作系統(tǒng),Apache?或Nginx作為?Web?服務(wù)器,MySQL 作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開(kāi)人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP“或“LNMP”組合。
MyISAMMySQL 5.0 之前的默認(rèn)數(shù)據(jù)庫(kù)引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務(wù)
InnoDB事務(wù)型數(shù)據(jù)庫(kù)的首選引擎,支持ACID事務(wù),支持行級(jí)鎖定, MySQL 5.5 起成為默認(rèn)數(shù)據(jù)庫(kù)引擎
BDB源 自 Berkeley DB,事務(wù)型數(shù)據(jù)庫(kù)的另一種選擇,支持Commit 和Rollback 等其他事務(wù)特性
Memory所有數(shù)據(jù)置于內(nèi)存的存儲(chǔ)引擎,擁有極高的插入,更新和查詢效率。但是會(huì)占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會(huì)在 MySQL 重新啟動(dòng)時(shí)丟失
Merge將一定數(shù)量的 MyISAM 表聯(lián)合而成一個(gè)整體,在超大規(guī)模數(shù)據(jù)存儲(chǔ)時(shí)很有用
Archive非常適合存儲(chǔ)大量的獨(dú)立的,作為歷史記錄的數(shù)據(jù)。因?yàn)樗鼈儾唤?jīng)常被讀取。Archive 擁有高效的插入速度,但其對(duì)查詢的支持相對(duì)較差
Federated將不同的 MySQL 服務(wù)器聯(lián)合起來(lái),邏輯上組成一個(gè)完整的數(shù)據(jù)庫(kù)。非常適合分布式應(yīng)用
Cluster/NDB高冗余的存儲(chǔ)引擎,用多臺(tái)數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大,安全和性能要求高的應(yīng)用
CSV: 邏輯上由逗號(hào)分割數(shù)據(jù)的存儲(chǔ)引擎。它會(huì)在數(shù)據(jù)庫(kù)子目錄里為每個(gè)數(shù)據(jù)表創(chuàng)建一個(gè) .csv 文件。這是一種普通文本文件,每個(gè)數(shù)據(jù)行占用一個(gè)文本行。CSV 存儲(chǔ)引擎不支持索引。
BlackHole:黑洞引擎,寫(xiě)入的任何數(shù)據(jù)都會(huì)消失,一般用于記錄 binlog 做復(fù)制的中繼
EXAMPLE 存儲(chǔ)引擎是一個(gè)不做任何事情的存根引擎。它的目的是作為 MySQL?源代碼中的一個(gè)例子,用來(lái)演示如何開(kāi)始編寫(xiě)一個(gè)新存儲(chǔ)引擎。同樣,它的主要興趣是對(duì)開(kāi)發(fā)者。EXAMPLE 存儲(chǔ)引擎不支持編索引。
另外,MySQL 的存儲(chǔ)引擎接口定義良好。有興趣的開(kāi)發(fā)者可以通過(guò)閱讀文檔編寫(xiě)自己的存儲(chǔ)引擎。
參考資料來(lái)源:百度百科:mySQL
1、打開(kāi)Navicat for MySQL,找到要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)中數(shù)據(jù)表
2、接著我們?cè)凇氨怼鄙厦鎲螕羰髽?biāo)右鍵,然后點(diǎn)擊“新建表”
3、然后,右邊就會(huì)出現(xiàn)設(shè)計(jì)表的界面,這里可以設(shè)置表的字段名,類型,長(zhǎng)度以及是否為null等
4、設(shè)計(jì)完數(shù)據(jù)表之后,點(diǎn)擊“保存”按鈕就OK了。
5、我們?cè)谄渲休斎氡砻忘c(diǎn)擊確定就可以了,表名可以根據(jù)自己的需求來(lái)設(shè)置
SELECT
a.xxx,
b.xxx
FROM A AS a Inner Join B AS b ON a.reid = b.reid
where ....
order by ...
mysql 兩個(gè)表中的信息關(guān)聯(lián)起來(lái)使用方法:
1、創(chuàng)建主表:
create table UserInfo(
UserID int identity(1,1) primary key, --遞增主鍵
UserAccounts varchar(20),
UserName varchar(20),
UserPwd varchar(10));
2、創(chuàng)建附表(含外鍵)
create table News(
NewsID int identity(1,1) primarykey,
UserID int,
NewsTitle varchar( 50 ),
NewsRelease varchar( 200 ),
NewsReleaseTime datetime,
FOREIGN KEY (UserID) REFERENCES UserInfo(UserID)); --外鍵約束
如果附表已存在,但沒(méi)外鍵,可采用以下方法:
alter table profession add constraint fk_prov_id foreign key(prov_id) references province(prov_id) on update cascade on delete cascade;