1.建立用戶信息表
創(chuàng)新互聯(lián)長(zhǎng)期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為宣威企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站制作,宣威網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
create table userinfo(id int(4) not null primary key, name varchar(20) not null unique key)engine=innodb default charset=utf8;
2.建立好友關(guān)系表
create table friend(uid int(4) not null, foreign key(uid) references
userinfo(id),fid int(4) not null, foreign key(fid) references
userinfo(id),unique key(uid,fid))engine=innodb default charset=utf8;
3.追加測(cè)試數(shù)據(jù)(滿足uidfid條件)
insert userinfo values(1111---9999,'namea---namei’);
insert friend values(1111,4444---6666);
insert friend values(5555,6666---9999);
4.查詢好友(5555的好友)
select * from friend where uid=5555 or fid=5555;
+-------+------+
| uid | fid |
+-------+------+
| 1111 | 5555 |
| 5555 | 6666 |
| 5555 | 7777 |
| 5555 | 8888 |
| 5555 | 9999 |
+-------+--------+
5.問(wèn)題:
5.1.userinfo中的id和name不為null,且不可重復(fù):table設(shè)計(jì)可以做到
5.2.friend中的uid和fid均不為null,且都來(lái)自于userinfo的id:table設(shè)計(jì)可以實(shí)現(xiàn)
5.3.(uid,fid)組合不可重復(fù):table設(shè)計(jì)可以完成
5.4.好友關(guān)系的表達(dá)時(shí),(1111,5555)和(5555,1111)有冗余,也會(huì)出現(xiàn)(1111,1111)這樣的數(shù)據(jù):這個(gè)在table設(shè)計(jì)實(shí)現(xiàn)比較麻煩,需要在程序?qū)用鎸?shí)現(xiàn),也即增加限制條件uidfid即可
6.結(jié)果:
table設(shè)計(jì)達(dá)不到要求,或者較難達(dá)到要求時(shí),可以在程序?qū)用嬗枰詮浹a(bǔ)。
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è)置
最簡(jiǎn)單的創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)的語(yǔ)句
在 MySQL 中創(chuàng)建一個(gè)名為 test_db 的數(shù)據(jù)庫(kù)。在 MySQL 命令行客戶端輸入 SQL 語(yǔ)句CREATE DATABASE test_db;即可創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),輸入的 SQL 語(yǔ)句與執(zhí)行結(jié)果如下。
mysql CREATE DATABASE test_db;
Query OK, 1 row affected (0.12 sec);
“Query OK, 1 row affected (0.12 sec);”提示中,“Query OK”表示上面的命令執(zhí)行成功,“1 row affected”表示操作只影響了數(shù)據(jù)庫(kù)中一行的記錄,“0.12 sec”則記錄了操作執(zhí)行的時(shí)間。
若再次輸入CREATE DATABASE test_db;語(yǔ)句,則系統(tǒng)會(huì)給出錯(cuò)誤提示信息,如下所示:
mysql CREATE DATABASE test_db;
ERROR 1007 (HY000): Can't create database 'test_db'; database exists
提示不能創(chuàng)建“test_db”數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)已存在。MySQL 不允許在同一系統(tǒng)下創(chuàng)建兩個(gè)相同名稱的數(shù)據(jù)庫(kù)。
可以加上IF NOT EXISTS從句,就可以避免類似錯(cuò)誤,如下所示:
mysql CREATE DATABASE IF NOT EXISTS test_db;
Query OK, 1 row affected (0.12 sec)
1、下載mysql,安裝,然后打開(kāi)cmd,cd到mysql所在的目錄,然后輸入mysqld啟動(dòng)mysql服務(wù)器
2、查看當(dāng)前所有的數(shù)據(jù)庫(kù) : show databases;
3、創(chuàng)建數(shù)據(jù)庫(kù) : create database 數(shù)據(jù)庫(kù)名稱; (這里創(chuàng)建了test_db數(shù)據(jù)庫(kù),然后用1命令查看所有數(shù)據(jù)庫(kù))
4、這里數(shù)據(jù)庫(kù)創(chuàng)建完畢了,接下來(lái)就是創(chuàng)建數(shù)據(jù)庫(kù)表,比如我們?cè)趖est_db中創(chuàng)建一個(gè)為tb_user的表,該表包含字段email ,password
5、切換當(dāng)前數(shù)據(jù)庫(kù)到test_db
命令 use test_db;
6、
dc2ed6aa12228bee31bb96dc0507652.png
7、創(chuàng)建表TB_USER ,創(chuàng)建成功后用show tab