當前位置:首頁 » 編程語言 » sql資料庫中表與表之間的關系
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql資料庫中表與表之間的關系

發布時間: 2022-06-11 02:43:29

1. sql 資料庫表與表之間數據關聯的一些概念問題。

1.資料庫是如何通過 ID 來查到 Loginfo 的 ?
select Loginfo from A inner join b on a.id=b.logid where id=?

2.如果要通過 ID 查詢 Loginfo 應該用什麼語句資料庫會返回:
這樣的結果呢?
select ID,Name,Address,Phone,Logid,Loginfo
from A inner join b on a.id=b.logid where id=?

3.為什麼要做很多張表相互關聯?直接把所有信息都做成一張表不好嗎?
這個建幾張表看情況的。 比如用戶表 很多地方要用到,那麼就得單獨出來建一張表。其他表只要存用戶ID 和用戶表關聯 就能找到用戶信息。

2. SQL資料庫裡面怎樣設置表與表之間的關聯

設置關聯的兩表或者多表、通過外鍵關聯、外鍵欄位是從表中的欄位、外鍵(foreign
key)欄位需要在主表做主鍵(primary
key)、
比如
學生表(學號
主鍵,姓名)
主表
課程表(課號
主鍵,課名)
主表
選了表(學號
外鍵,
課號
外鍵,成績)
從表
這樣三個表就關聯了、記住建表順序、先主表、再從表
然後可以使用代碼或者圖形界面管理器創建外鍵、創建完就關聯了
外鍵的取值必須是主鍵的值

3. SQL資料庫中表與表之間的關聯怎麼建立

1、在資料庫窗口中,單擊「創建」中「表格」中的「表設計」,打開表設計窗口。

4. 如何用Sql語句獲取資料庫中表與表之間的關系

MS—SQL
用企業管理器有新建關系圖,選中所有表。就行了

或用Visio連接資料庫,選擇反向工程

5. mysql資料庫表之間是怎麼關聯的請詳解

left join

join

主外鍵是兩種對表的約束。

例如:

學生表student(學號(id),姓名(name),性別(sex))

表內有:1,aa,女

課程表subject(課程編號(id),課程名(name))

表內有:1,語文

成績表grade(成績編號(id),學號(stu_id),課程號(sub_id),成績(grade))

表內有:1,1,1,90

成績表的學號就是學生表的學號相對應,並且為學生表的主鍵,這樣就稱成績表中的學號是學生表的外鍵,同理,成績表中的課程號是課程表的外鍵。

select * from student as s inner join subject as su on su.stu_id=s.id inner join grade as g on g.sub_id=su.id where 1.

(5)sql資料庫中表與表之間的關系擴展閱讀:

注意事項

SQL 連接(JOIN) 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同欄位。連接的結果可以在邏輯上看作是由SELECT語句指定的列組成的新表。

左連接與右連接的左右指的是以兩張表中的哪一張為基準,它們都是外連接。外連接就好像是為非基準表添加了一行全為空值的萬能行,用來與基準表中找不到匹配的行進行匹配。

假設兩個沒有空值的表進行左連接,左表是基準表,左表的所有行都出現在結果中,右表則可能因為無法與基準表匹配而出現是空值的欄位。

不同的 SQL JOIN可以使用的不同的 SQL JOIN 類型:

INNER JOIN:如果表中有至少一個匹配,則返回行

LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行

RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行

FULL JOIN:只要其中一個表中存在匹配,則返回行(MySQL不支持FULL JOIN)

例如:

mysql> select * from access_log;

+-----+---------+-------+------------+

| aid | site_id | count | date |

+-----+---------+-------+------------+

| 1 | 1 | 45 | 2016-05-10 |

| 2 | 3 | 100 | 2016-05-13 |

| 3 | 1 | 230 | 2016-05-14 |

| 4 | 2 | 10 | 2016-05-14 |

| 5 | 5 | 205 | 2016-05-14 |

| 6 | 4 | 13 | 2016-05-15 |

| 7 | 3 | 220 | 2016-05-15 |

| 8 | 5 | 545 | 2016-05-16 |

| 9 | 3 | 201 | 2016-05-17 |

+-----+---------+-------+------------+

9 rows in set

6. SQL資料庫怎麼樣用命令建庫及表,還有怎麼樣建立表之間的聯系

create database student charset=utf8;

use student;
create table S(
s_id int primary key,
name varchar(20),
sex char(2),
brith datetime,
department varchar(20)

);
create table C(
c_id int primary key,
course varchar(20),
class_hour int

);
create table SC(
s_id int,
c_id int,
score int

);
SC表是中間表,多對多的關系,一個學生可以選修多門課程,一個課程可以被多個學生選修
建立外鍵,但是真實的系統當中可以不建立外鍵,只建立主鍵,只在查表當中關聯查詢鍵
alter table SC constraint FK_sID foreign key(s_id) references S(s_id); 中間表外鍵引用主表的主鍵
alter table SC constraint FK_cID foreign key(c_id) references C(c_id);
表關聯查詢 某某同學,某某課程,分數是多少

select S.name , C.course , SC.score

from S , C , SC

where S.s_id=SC.s_id and C.c_id=SC.c_id;

7. SQL資料庫中怎麼建立兩個表之間的關系

一對一:在這種關系中,關系表的每一邊都只能存在一個記錄。每個數據表中的關鍵字在對應的關系表中只能存在一個記錄或者沒有對應的記錄。這種關系和一對配偶之間的關系非常相似——要麼你已經結婚,你和你的配偶只能有一個配偶,要麼你沒有結婚沒有配偶。大多數的一對一的關系都是某種商業規則約束的結果,而不是按照數據的自然屬性來得到的。如果沒有這些規則的約束,你通常可以把兩個數據表合並進一個數據表,而且不會打破任何規范化的規則。 一對多:主鍵數據表中只能含有一個記錄,而在其關系表中這條記錄可以與一個或者多個記錄相關,也可以沒有記錄與之相關。這種關系類似於你和你的父母之間的關系。你只有一位母親,但是你母親可以有幾個孩子。 多對多:兩個數據表裡的每條記錄都可以和另一個數據表裡任意數量的記錄(或者沒有記錄)相關。例如,如果你有多個兄弟姐妹,這對你的兄弟姐妹也是一樣(有多個兄弟姐妹),多對多這種關系需要引入第三個數據表,這種數據表稱為聯系表或者連接表,因為關系型系統不能直接實現這種關系。 建立關系在開始著手考慮建立關系表之間的關系之前,你可能需要對數據非常熟悉。只有在熟悉數據之後,關聯會比你剛開始的時候更明顯。你的資料庫系統依賴於在兩個數據表中找到的匹配值來建立關系。如果在資料庫系統中發現了一個匹配值,系統將從兩個數據表中提取數據並創建一個虛擬的記錄。例如,你可能想要查看某個特定的作者所寫的全部書籍,在本文中,系統將從「Books」和「Authors」這兩個數據表中查找相關的匹配值。需要注意的是,在大多數情況下,查詢的結果是動態的,這意味著對這條虛擬記錄所做的任何改動都將可能作用到底層的數據表上,這一點是非常重要的。 進行匹配的值都是主鍵和外鍵的值。(關系模型不要求一個關系必須對應的使用一個主鍵來確定。你可以使用數據表中的任何備選關鍵字來建立關系,但是使用主鍵是大家都已經接受的標准。)主鍵(primary key)唯一的識別表中的每個記錄。而外鍵(foreign key)只是簡單的將一個數據表中的主鍵存放在另外一個數據表中。同樣地,對於你來說也不需要做太多的工作——只是簡單地將主鍵加到關系表中,並將其定義為外鍵。 唯一需要注意的是,外鍵欄位的數據類型必須和主鍵的數據類型相同。但是有些系統可以允許這條規則有一個例外,它允許在數字和自動編號(autonumbering)欄位(例如在SQL伺服器系統中訪問Identity和AutoNumber)之間建立關系。此外,外鍵的值可以是空(Null),盡管強烈建議在沒有特別原因的情況下,不要讓外鍵為空。你有可能永遠都不會有機會來使用需要這項功能的資料庫。

8. SQL查詢語句問題 一個資料庫兩個表之間的關系問題

select
*
from
aa
where
pid
in
(select
pid
from
opendatasource(
'sqloledb',
'data
source=ip/servername;user
id=登陸名;password=密碼').bb的資料庫.dbo.bb
where
use='false')
這樣!!!在aa的庫里操作
需要將ip/servername,登陸名\密碼,bb的資料庫添上,還有你使用use關鍵字?使用的時候可能會提示錯誤你吧use加上[],以上在sqlserver2000是可以運行的!

9. 如何設置SQL資料庫表與表的關聯關系

如果是 父子關系, 或者 一對多 關系。

可以通過 創建外鍵的方式, 在 父表 與 子表之間, 創建一個關聯關系。

例如:

-- 創建測試主表. ID 是主鍵.
CREATE TABLE test_main (
id INT NOT NULL,
value VARCHAR(10),
PRIMARY KEY(id)
);

-- 創建測試子表.
CREATE TABLE test_sub (
id INT NOT NULL,
main_id INT ,
value VARCHAR(10),
PRIMARY KEY(id)
);

-- 插入測試主表數據.
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');

-- 插入測試子表數據.
INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');

SQL> -- 創建外鍵(默認選項)
SQL> ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;

Table altered.

SQL>
SQL> -- 測試刪除主表數據. 將出錯 ORA-02292: 違反完整約束條件
SQL> DELETE
2 test_main
3 WHERE
4 ID = 1;
DELETE
*
ERROR at line 1:
ORA-02292: integrity constraint (HR.MAIN_ID_CONS) violated - child record found

10. SQL 資料庫表的關系問題

建立三個表就可以了啊,,一個表存放一條記錄的那個表,第二個表記錄多條記錄的那個表,第三個表維護兩者的主鍵關系。