久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何使用SQL構建一個關系數據庫

137次閱讀
沒有評論

共計 3624 個字符,預計需要花費 10 分鐘才能閱讀完成。

本篇文章給大家分享的是有關如何使用 SQL 構建一個關系數據庫,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

使用 SQL 構建一個關系數據庫比你想的更容易。

使用 SQL 構建數據庫比大多數人想象得要簡單。實際上,你甚至不需要成為一個有經驗的程序員就可以使用 SQL 創建數據庫。在本文中,我將解釋如何使用 MySQL 5.6 來創建簡單的關系型數據庫管理系統(RDMS)。在開始之前,我想順便感謝一下 SQL Fiddle,這是我用來運行腳本的工具。它提供了一個用于測試簡單腳本的有用的沙箱。

在本教程中,我將構建一個使用如下實體關系圖(ERD)中顯示的簡單架構的數據庫。數據庫列出了學生和正在學習的課程。為了保持簡單,我使用了兩個實體(即表),只有一種關系和依賴。這兩個實體稱為 dbo_students 和 dbo_courses。

數據庫的多樣性是一對多的,因為每門課程可以包含很多學生,但每個學生只能學習一門課程。

關于術語的快速說明:

一張表稱為一個實體。

一個字段稱為一個屬性。

一條記錄稱為一個元組。

用于構建數據庫的腳本稱為架構。

構建架構

要構建數據庫,使用 CREATE TABLE 表名 命令,然后定義每個字段的名稱和數據類型。數據庫使用 VARCHAR(n)(字符串)和 INT(n)(整數),其中 n 表示可以存儲的值的長度。例如 INT(2) 可以是 01。

這是用于創建兩個表的代碼:

CREATE TABLE dbo_students( student_id INT(2) AUTO_INCREMENT NOT NULL, student_name VARCHAR(50), course_studied INT(2), PRIMARY KEY (student_id)); CREATE TABLE dbo_courses( course_id INT(2) AUTO_INCREMENT NOT NULL, course_name VARCHAR(30), PRIMARY KEY (course_id));

NOT NULL 意味著字段不能為空,AUTO_INCREMENT 意味著當一個新的元組被添加時,ID 號將自動生成,是對先前存儲的 ID 號加 1,以強化各實體之間的完整參照性。PRIMARY KEY 是每個表的惟一標識符屬性。這意味著每個元組都有自己的不同的標識。

關系作為一種約束

就目前來看,這兩張表格是獨立存在的,沒有任何聯系或關系。要連接它們,必須標識一個外鍵。在 dbo_students 中,外鍵是 course_studied,其來源在 dbo_courses 中,意味著該字段被引用。SQL 中的特定命令為 CONSTRAINT,并且將使用另一個名為 ALTER TABLE 的命令添加這種關系,這樣即使在架構構建完畢后,也可以編輯表。

以下代碼將關系添加到數據庫構造腳本中:

ALTER TABLE dbo_studentsADD CONSTRAINT FK_course_studiedFOREIGN KEY (course_studied) REFERENCES dbo_courses(course_id);

使用 CONSTRAINT 命令實際上并不是必要的,但這是一個好習慣,因為它意味著約束可以被命名并且使維護更容易?,F在數據庫已經完成了,是時候添加一些數據了。

將數據添加到數據庫

INSERT INTO 表名 是用于直接選擇要添加哪些屬性(即字段)數據的命令。首先聲明實體名稱,然后聲明屬性,下邊是添加到實體的數據,從而創建一個元組。如果指定了 NOT NULL,這表示該屬性不能留空。以下代碼將展示如何向表中添加記錄:

INSERT INTO dbo_courses(course_id,course_name)VALUES(001, Software Engineering INSERT INTO dbo_courses(course_id,course_name)VALUES(002, Computer Science INSERT INTO dbo_courses(course_id,course_name)VALUES(003, Computing  INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(001, student1 ,001);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(002, student2 ,002);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(003, student3 ,002);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(004, student4 ,003);

現在數據庫架構已經完成并添加了數據,現在是時候在數據庫上運行查詢了。

查詢

查詢遵循使用以下命令的集合結構:

SELECT  attributes FROM  entity WHERE  condition

要顯示 dbo_courses 實體內的所有記錄并顯示課程代碼和課程名稱,請使用 *。這是一個通配符,它消除了鍵入所有屬性名稱的需要。(在生產數據庫中不建議使用它。)此處查詢的代碼是:

SELECT *FROM dbo_courses

此處查詢的輸出顯示表中的所有元組,因此可顯示所有可用課程:

| course_id | course_name ||-----------|----------------------|| 1 | Software Engineering || 2 | Computer Science || 3 | Computing |

在后面的文章中,我將使用三種類型的連接之一來解釋更復雜的查詢:內連接、外連接和交叉連接。

這是完整的腳本:

CREATE TABLE dbo_students( student_id INT(2) AUTO_INCREMENT NOT NULL, student_name VARCHAR(50), course_studied INT(2), PRIMARY KEY (student_id)); CREATE TABLE dbo_courses( course_id INT(2) AUTO_INCREMENT NOT NULL, course_name VARCHAR(30), PRIMARY KEY (course_id)); ALTER TABLE dbo_studentsADD CONSTRAINT FK_course_studiedFOREIGN KEY (course_studied) REFERENCES dbo_courses(course_id); INSERT INTO dbo_courses(course_id,course_name)VALUES(001, Software Engineering INSERT INTO dbo_courses(course_id,course_name)VALUES(002, Computer Science INSERT INTO dbo_courses(course_id,course_name)VALUES(003, Computing  INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(001, student1 ,001);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(002, student2 ,002);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(003, student3 ,002);INSERT INTO dbo_students(student_id,student_name,course_studied)VALUES(004, student4 ,003); SELECT *FROM dbo_courses

SQL 并不困難;我認為它比編程簡單,并且該語言對于不同的數據庫系統是通用的。 

以上就是如何使用 SQL 構建一個關系數據庫,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計3624字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 东至县| 南澳县| 桐柏县| 六安市| 龙游县| 红桥区| 南开区| 辰溪县| 田阳县| 通州市| 榆中县| 寻乌县| 新龙县| 漳平市| 唐山市| 六安市| 金阳县| 鞍山市| 新宁县| 淳化县| 五大连池市| 瓦房店市| 林州市| 大化| 巍山| 贡山| 安多县| 鲁甸县| 泾阳县| 冷水江市| 金乡县| 饶平县| 广昌县| 西丰县| 泽普县| 万州区| 双鸭山市| 西乌| 长泰县| 长治市| 赤壁市|