数据库多对多关系示例 - 使用sqlite演示
多對多,可以理解為是一對多和多對一的組合;要實現多對多,一般都需要有一張中間表(也叫關聯表),將兩張表進行關聯,形成多對多的形式;
例如:
? ? 老師表、班級表、課程表,中間表為:課程表;
如果sqlite數據庫不顯示列頭;見此;
https://blog.csdn.net/bcbobo21cn/article/details/111122445
?
張老師教一班和二班的語文;
趙老師教一班的物理和二班的數學;
這樣就形成多對多;
?
Microsoft Windows [版本 6.1.7601]
Copyright (c) 2010 Microsoft Corporation. ?All rights reserved.
S:\sqlite>sqlite3 test.db
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .databases
seq ?name ? ? ? ? ? ? file
--- ?--------------- ?----------------------------------------------------------
0 ? ?main ? ? ? ? ? ? S:\sqlite\test.db
sqlite> create table teachers(tid int, tname varchar(50));
sqlite> insert into teachers values (1, '張老師'), (2, '趙老師');
sqlite> select * from teachers;
1|張老師
2|趙老師
sqlite> create table classes (cid int, cname varchar(50));
sqlite> insert into classes values (1, '一班'), (2, '二班');
sqlite> .header on
sqlite> select * from classes;
cid|cname
1|一班
2|二班
sqlite> create table courses (courid integer PRIMARY KEY autoincrement, tid int,
?cid int, courname varchar(50));
sqlite> insert into courses values (1, 1, '語文');
Error: table courses has 4 columns but 3 values were supplied
sqlite> insert into courses values (null, 1, 1, '語文');
sqlite> insert into courses values (null, 1, 2, '語文')_;
Error: near "_": syntax error
sqlite> insert into courses values (null, 1, 2, '語文');
sqlite> insert into courses values (null, 2, 1, '物理');
sqlite> insert into courses values (null, 2, 2, '數學');
sqlite> select * from courses;
courid|tid|cid|courname
1|1|1|語文
2|1|2|語文
3|2|1|物理
4|2|2|數學
sqlite> SELECT T1.courid, T2.tname, T1.cid, T3.cname, T1.courname FROM courses A
S T1, teachers AS T2, classes AS T3 WHERE T1.tid=T2.tid AND T1.cid=T3.cid;
courid|tname|cid|cname|courname
1|張老師|1|一班|語文
2|張老師|2|二班|語文
3|趙老師|1|一班|物理
4|趙老師|2|二班|數學
sqlite> SELECT T1.tid, T2.tname, T1.cid, T3.cname, T1.courname FROM courses AS T
1, teachers AS T2, classes AS T3 WHERE T1.tid=T2.tid AND T1.cid=T3.cid;
tid|tname|cid|cname|courname
1|張老師|1|一班|語文
1|張老師|2|二班|語文
2|趙老師|1|一班|物理
2|趙老師|2|二班|數學
sqlite>
?
?
總結
以上是生活随笔為你收集整理的数据库多对多关系示例 - 使用sqlite演示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 11三个新特性的简单使用 - s
- 下一篇: C# mschart 控件的基本使用和图