国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實用數(shù)據(jù)庫開發(fā)實踐MySQL——數(shù)據(jù)模型

這篇具有很好參考價值的文章主要介紹了實用數(shù)據(jù)庫開發(fā)實踐MySQL——數(shù)據(jù)模型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

第1關(guān) 關(guān)系模型

關(guān)系型數(shù)據(jù)模型

關(guān)系模型基本術(shù)語

關(guān)系模型的數(shù)據(jù)操縱與完整性約束

數(shù)據(jù)操縱

完整性約束

關(guān)系模型優(yōu)缺點

優(yōu)點

缺點

實驗

頭歌實驗代碼

第2關(guān) 層次模型

層次型數(shù)據(jù)模型

層次模型的數(shù)據(jù)操縱與完整性約束

數(shù)據(jù)操縱

完整性約束

層次模型優(yōu)缺點

優(yōu)點

缺點

層次模型轉(zhuǎn)化為關(guān)系模型

頭歌實驗代碼

第3關(guān) 網(wǎng)狀模型

網(wǎng)狀數(shù)據(jù)庫模型

網(wǎng)狀型數(shù)據(jù)模型

網(wǎng)狀模型的數(shù)據(jù)操縱與完整性約束

數(shù)據(jù)操作

完整性約束條件

網(wǎng)狀模型優(yōu)缺點

優(yōu)點

缺點

網(wǎng)狀模型與層次模型

網(wǎng)狀模型轉(zhuǎn)化為關(guān)系模型

編程要求

頭歌實驗代碼


第1關(guān) 關(guān)系模型

數(shù)據(jù)庫數(shù)據(jù)模型通??煞譃槿N:關(guān)系模型、層次模型網(wǎng)狀模型。

關(guān)系型數(shù)據(jù)模型

二維表表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱之為關(guān)系數(shù)據(jù)模型。

關(guān)系型數(shù)據(jù)模型對應(yīng)的數(shù)據(jù)庫自然就是關(guān)系型數(shù)據(jù)庫了,這是目前應(yīng)用最多的數(shù)據(jù)庫。

關(guān)系模型基本術(shù)語

在關(guān)系模型種有以下術(shù)語:

  • 關(guān)系:一個關(guān)系對應(yīng)通常說的一張表。

  • 元組:表中的一行即為一個元組。

  • 屬性:表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。

  • 碼:也稱碼鍵,表中的某個屬性組,它可以唯一確定一個元組。

  • 域:是一組具有相同數(shù)據(jù)類型的值的集合,屬性的取值范圍來自某個域。

  • 分量:元組中的一個屬性值。

  • 關(guān)系模型:對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,…,屬性 n)

注意:關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件。最基本的規(guī)范條件:關(guān)系的每一個分量必須是一個不可分的數(shù)據(jù)項,不允許表中還有表。

關(guān)系模型的數(shù)據(jù)操縱與完整性約束

  • 數(shù)據(jù)操縱

關(guān)系模型的數(shù)據(jù)操縱主要包括查詢、插入、刪除和更新數(shù)據(jù),它的數(shù)據(jù)操縱是集合操作,操作對象和操作結(jié)果都是關(guān)系,如關(guān)系代數(shù)。

  • 完整性約束

數(shù)據(jù)及其聯(lián)系所具有的制約和依賴規(guī)則,保證數(shù)據(jù)的正確性、有效性和相容性

關(guān)系必須滿足實體完整性、參照完整性和用戶定義完整性約束

關(guān)系模型優(yōu)缺點

  • 優(yōu)點

  1. 結(jié)構(gòu)簡單,都是一些表格的框架,實體的屬性是表格中列的條目,實體之間的關(guān)系也是通過表格的公共屬性表示,結(jié)構(gòu)簡單明了。

  2. 存取路徑對用戶而言是完全隱蔽的,使程序和數(shù)據(jù)具有高度的獨立性,其數(shù)據(jù)語言的非過程化程度較高。

  3. 操作方便,操作的基本對象是集合而不是某一個元祖。

  4. 有堅實的數(shù)學(xué)理論做基礎(chǔ),包括邏輯計算、數(shù)學(xué)計算等。

  • 缺點

  1. 查詢效率低,關(guān)系數(shù)據(jù)模型提供了較高的數(shù)據(jù)獨立性和非過程化的查詢功能(查詢的時候只需指明數(shù)據(jù)存在的表和需要的數(shù)據(jù)所在的列,不用指明具體的查找路徑),因此加大了系統(tǒng)的負擔(dān)。

  2. 由于查詢效率較低,因此需要數(shù)據(jù)庫管理系統(tǒng)對查詢進行優(yōu)化,加大了 DBMS 的負擔(dān)。

use mydb;

實驗

例如以學(xué)生選課系統(tǒng)為例進行說明:

學(xué)生選課系統(tǒng)的實體包括:學(xué)生、教師、課程;其聯(lián)系一般為學(xué)生與課程之間是一種多對多的關(guān)系,教師與課程之間是多對多的關(guān)系。學(xué)生可以同時選擇多門課程,一門課程也可以同時被多個學(xué)生同時選擇;一位教師可以教授多門課程,一門可能可以由多個教師教授。因此他們之間的聯(lián)系如下:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

將該 E-R 圖映射為關(guān)系數(shù)據(jù)模型中的表格如下:

  • 學(xué)生
  • 課程
  • 教師
  • 選課
  • 教課

從中我們可以觀察到學(xué)生與課程之間的聯(lián)系以及教師和課程之間的多對多聯(lián)系都被映射成了表格。其中選課表中的 stu_id 和 course_id 分別是引用學(xué)生表和課程表的 course_id 的外鍵,教課表也是如此。

編程要求

編寫 SQL 語句,將 E-R 圖 轉(zhuǎn)換成二維表,創(chuàng)建這些轉(zhuǎn)換的表。 E-R 圖如下:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

說明:一共涉及五張表,將表明分別確定為t_player(參賽選手表)、t_school(參賽學(xué)校表)、t_product(參賽作品表)、t_player_product(參賽選手與作品聯(lián)系表)和t_school_player(參賽選手與學(xué)校聯(lián)系表),創(chuàng)表時除兩張關(guān)聯(lián)表外,各字段順序按照圖中標(biāo)簽順序擬定,字段類型除編號、學(xué)號、得分、電話、大小為int(11),其他字段皆為varchar(32)。

兩張關(guān)聯(lián)表字段順序如下:

  • t_player_product
字段 說明
p_id 選手編號
pr_id 作品編號
pr_grade 作品成績
grade_rates 獲獎等級
  • t_school_player
字段 說明
s_name 學(xué)校名稱
p_id 選手編號

頭歌實驗代碼

#請在此添加實現(xiàn)代碼
########## Begin ##########
#在mydb庫中創(chuàng)建表
create table t_player(
    p_id int(11) NOT NULL,
    p_name varchar(32) NOT NULL,
    p_sex varchar(32) NOT NULL,
   p_num int(11) NOT NULL,
   p_email varchar(32) NOT NULL,
   PRIMARY KEY (p_id) 
);
create table t_school(
    s_name varchar (32) NOT NULL,
    s_address varchar(32) NOT NULL,
    s_telephone int(11) NOT NULL,
    s_email varchar (32) NOT NULL,
    PRIMARY KEY (s_name)
);
create table t_product(
    pr_id int(11) NOT NULL,
    pr_name varchar(32) NOT NULL,
    pr_kind varchar(32) NOT NULL,
    pr_link varchar(32) NOT NULL,
    pr_size int(11) NOT NULL,
    PRIMARY KEY (pr_id)
);
create table t_player_product(
    p_id int(11) NOT NULL,
    pr_id int(11) NOT NULL,
    pr_grade int(11) NOT NULL,
    grade_rates varchar(11) NOT NULL,
    CONSTRAINT fk_player_product1 FOREIGN KEY t_player_product(p_id) REFERENCES t_player(p_id),
    CONSTRAINT fk_player_product2 FOREIGN KEY t_player_product(pr_id) REFERENCES t_product(pr_id)
);
create table t_school_player(
    s_name varchar(32) NOT NULL,
    p_id int(11) NOT NULL,
   CONSTRAINT fk_school_stu1 FOREIGN KEY t_school_player(s_name) REFERENCES t_school(s_name),
    CONSTRAINT fk_school_stu2 FOREIGN KEY t_school_player(p_id) REFERENCES t_player(p_id)
);
########## End ##########

第2關(guān) 層次模型

層次型數(shù)據(jù)模型

層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,層次數(shù)據(jù)庫系統(tǒng)采用層次模型作為數(shù)據(jù)的組織方式。它采用樹形結(jié)構(gòu)來表示各類實體以及實體間的聯(lián)系。

其實層次數(shù)據(jù)模型就是的圖形表示就是一個倒立生長的樹,由基本數(shù)據(jù)結(jié)構(gòu)中的樹(或者二叉樹)的定義可知,每棵樹都有且僅有一個根節(jié)點,其余的節(jié)點都是非根節(jié)點。每個節(jié)點表示一個記錄類型對應(yīng)與實體的概念,記錄類型的各個字段對應(yīng)實體的各個屬性。各個記錄類型及其字段都必須記錄。

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

上圖中,R1、R2 等表示實體類型,也叫做結(jié)點,每個實體類型可包含若干個屬性,也叫做字段。R1 結(jié)點和 R2 結(jié)點之間的關(guān)系叫做實體間聯(lián)系。R1 結(jié)點叫做根結(jié)點,R2 結(jié)點和 R3 結(jié)點叫做 R1 結(jié)點的子節(jié)點。R1 結(jié)點叫做 R2 結(jié)點的雙親結(jié)點。沒有子結(jié)點的結(jié)點也叫做葉結(jié)點,如 R3 、R4和 R5。

以學(xué)校某個系的組織結(jié)構(gòu)為例:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

  • 實體系是根結(jié)點,由系編號和系名2個屬性(字段)組成。它有兩個子結(jié)點,分別是教研室實體和學(xué)生實體。

  • 實體教研室是系的子結(jié)點,它由教研室編號和教研室名2個屬性(字段)組成。

  • 實體學(xué)生是系的子結(jié)點,它由學(xué)號、姓名和成績這3個屬性(字段)組成,由于它沒有子結(jié)點,所以也叫葉結(jié)點。

  • 實體教師是教研室的子結(jié)點,它由教師編號、教師姓名和研究方向組成,由于它沒有子結(jié)點,所以也叫葉結(jié)點。

層次模型的數(shù)據(jù)操縱與完整性約束

  • 數(shù)據(jù)操縱

層次模型的數(shù)據(jù)操縱主要有查詢、插入、刪除和更新,進行插入、刪除、更新操作時要滿足其完整性約束條件。

  1. 無相應(yīng)的雙親結(jié)點值就不能插入子女結(jié)點值

  2. 如果刪除雙親結(jié)點值,則相應(yīng)的子女結(jié)點值也被同時刪除

  3. 更新操作時,應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性

  • 完整性約束

  1. 數(shù)據(jù)及其聯(lián)系所具有的制約和依賴規(guī)則

  2. 保證數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和相容性

  3. 通過指針維護父子關(guān)系

層次模型優(yōu)缺點

  • 優(yōu)點

  1. 層次模型的數(shù)據(jù)結(jié)構(gòu)比較簡單清晰

  2. 查詢效率高,性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型

  3. 層次數(shù)據(jù)模型提供了良好的完整性支持

  • 缺點

  1. 結(jié)點之間的多對多聯(lián)系表示不自然

  2. 對插入和刪除操作的限制多,應(yīng)用程序的編寫比較復(fù)雜

  3. 查詢子女結(jié)點必須通過雙親結(jié)點

  4. 層次命令趨于程序化???

層次模型轉(zhuǎn)化為關(guān)系模型

關(guān)系模型是現(xiàn)在數(shù)據(jù)庫的主流模型,要想把層次模型轉(zhuǎn)化為關(guān)系模型,只需把層次模型中的各個實體通過外鍵關(guān)聯(lián)即可。

現(xiàn)有一個層次模型如下:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

該層次模型有三個實體,分別是系、教研室和學(xué)生。我們可以把它轉(zhuǎn)化為如下圖的關(guān)系模型:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

可以看出轉(zhuǎn)化為關(guān)系模型后,依舊有3個實體,各實體之間通過系編號這一屬性形成關(guān)聯(lián),這一屬性體現(xiàn)在建表語句中就是添加外鍵。

編程要求

編寫 SQL 語句,將指定的層次模型轉(zhuǎn)換為相應(yīng)的關(guān)系模型后創(chuàng)建表并插入數(shù)據(jù)。具體要求如下:

  • 層次模型圖

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

將學(xué)生表命名為 student,教研室表命名為 edu,院系表命名為 dept,職工表命名為 emp。其中表中字段解釋如下:

字段名 建表用字段名
系號 dept_id
系名 dept_name
地址 addr
教研室號 edu_id
教研室名 edu_name
學(xué)號 student_id
姓名 student_name
年級 level_class
職工號 emp_id
姓名 emp_name
職稱 title

注意:創(chuàng)表時外鍵字段名和主鍵字段名一致

插入數(shù)據(jù)如下圖:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

頭歌實驗代碼

#請在此添加實現(xiàn)代碼
########## Begin ##########
#在mydb庫中創(chuàng)建表并插入數(shù)據(jù)
CREATE TABLE dept (
    dept_id CHAR (3) PRIMARY KEY,
    dept_name VARCHAR (20) NOT NULL,
    addr VARCHAR (100)
);
CREATE TABLE edu (
    edu_id CHAR (3) PRIMARY KEY,
    edu_name VARCHAR (20),
    dept_id CHAR (3),
    FOREIGN KEY (dept_id) REFERENCES dept (dept_id)
);
CREATE TABLE student (
    student_id CHAR (10) PRIMARY KEY,
    student_name VARCHAR (10),
    level_class CHAR (3),
    dept_id CHAR (3),
    FOREIGN KEY (dept_id) REFERENCES dept (dept_id)
);
CREATE TABLE emp (
    emp_id CHAR (10) PRIMARY KEY,
    emp_name VARCHAR (10),
    title VARCHAR (10),
    edu_id CHAR (3),
    dept_id CHAR (3),
    FOREIGN KEY (edu_id) REFERENCES edu (edu_id),
    FOREIGN KEY (dept_id) REFERENCES dept (dept_id)
);
INSERT INTO dept VALUES ('D02', '計算機', 'R1101');
INSERT INTO edu VALUES ('R01', '數(shù)據(jù)庫', 'D02'),
                ('R02', '網(wǎng)絡(luò)', 'D02'),
                ('R03', '人工智能', 'D02');
INSERT INTO student VALUES ('S0012', '王明','G1','D02'),
                            ('S0020', '鄭直','G2', 'D02'),
                   ('S0199', '周密','G3', 'D02');
INSERT INTO emp VALUES ('E1101', '何璧','教授','R01', 'D02'),
                ('E3721', '劉新','講師','R01', 'D02'),
                ('E1234', '王思','教授','R03', 'D02'),
                ('E3722', '付弈','助教','R03', 'D02');
########## End ##########

第3關(guān) 網(wǎng)狀模型

網(wǎng)狀數(shù)據(jù)庫模型

對于層次和非層次結(jié)構(gòu)的事物都能比較自然的模擬,在關(guān)系數(shù)據(jù)庫出現(xiàn)之前網(wǎng)狀 DBMS (數(shù)據(jù)庫任務(wù)組)要比層次 DBMS 用得普遍。

網(wǎng)狀型數(shù)據(jù)模型

用有向圖表示實體和實體間聯(lián)系的數(shù)據(jù)結(jié)構(gòu)模型稱為網(wǎng)狀數(shù)據(jù)模型。

網(wǎng)狀模型是一種比層次模型更具普遍性的結(jié)構(gòu)。滿足下面兩個條件的基本層次聯(lián)系的集合稱為網(wǎng)狀數(shù)據(jù)模型:①允許一個以上的結(jié)點無雙親;②一個結(jié)點可以有多于一個的雙親。

下圖即是一個簡單的網(wǎng)狀模型例子:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

層次模型中子女結(jié)點與雙親結(jié)點的聯(lián)系是唯一的,而在網(wǎng)狀模型中,這種關(guān)系可以不唯一。因此節(jié)點之間的對應(yīng)也就是 m:n 的關(guān)系,從而克服了層次狀數(shù)據(jù)模型的缺點。

下面以學(xué)生和課程之間的關(guān)系為例:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

以課程和學(xué)生之間的關(guān)系來說,他們是一種 m:n 的關(guān)系,也就是說一個學(xué)生能夠選修多門課程,一門課程也可以被多個學(xué)生同時選修。

網(wǎng)狀模型的數(shù)據(jù)操縱與完整性約束

  • 數(shù)據(jù)操作

主要包括查詢、插入、刪除和更新。具體如下:

  1. 進行插入操作時,允許插入尚未確定雙親結(jié)點值的子結(jié)點值。如可增加一名尚未分配到某個教研室的新老師,也可增加一些剛來報到還未分配宿舍的學(xué)生。

  2. 進行刪除操作時,允許只刪除雙親結(jié)點值。如可刪除一個教研室,而該科研室所有教師的信息仍保留在數(shù)據(jù)庫中。

  3. 修改數(shù)據(jù)時,可直接表示非樹狀結(jié)構(gòu),而無須像層次模型那樣增加冗余結(jié)點,因此修改操作時只需要指定更新記錄即可。

  4. 進行更新操作時只需更新指定記錄即可。

  • 完整性約束條件

一般來說,網(wǎng)狀模型沒有層次模型那樣嚴格的完整性約束條件,但具體的網(wǎng)狀數(shù)據(jù)庫系統(tǒng)(如 DBTG)對數(shù)據(jù)操作都加了一些限制,提供了一定的完整性約束。DBTG 在模式 DDL 中提供了定義 DBTG 數(shù)據(jù)庫完整性的若干概念和語句,主要有:

  1. 支持記錄碼的概念,碼是唯一標(biāo)識記錄的數(shù)據(jù)項的集合。

  2. 保證一個聯(lián)系中雙親記錄和子記錄之間是一對多的聯(lián)系。

  3. 可以支持雙親記錄和子記錄之間某些約束條件。如有些子記錄要求雙親記錄存在才能插入,雙親記錄刪除時也連同刪除。

網(wǎng)狀模型優(yōu)缺點

  • 優(yōu)點

  1. 網(wǎng)狀數(shù)據(jù)模型可以很方便的表示現(xiàn)實世界中的很多復(fù)雜的關(guān)系。

  2. 修改網(wǎng)狀數(shù)據(jù)模型時,沒有層次狀數(shù)據(jù)模型的那么多的嚴格限制,可以刪除一個節(jié)點的父節(jié)點而依舊保留該節(jié)點;也允許插入一個沒有任何父節(jié)點的節(jié)點,這樣的插入在層次狀數(shù)據(jù)模型中是不被允許的,除非是首先插入的是根節(jié)點。

  3. 實體之間的關(guān)系在底層中可以借由指針指針實現(xiàn),因此在這種數(shù)據(jù)庫中的執(zhí)行操作的效率較高。

  • 缺點

  1. 網(wǎng)狀數(shù)據(jù)模型的結(jié)構(gòu)復(fù)雜,使用不易,隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)結(jié)構(gòu)越來越復(fù)雜,數(shù)據(jù)的插入、刪除牽動的相關(guān)數(shù)據(jù)太多,不利于數(shù)據(jù)庫的維護和重建。

  2. 網(wǎng)狀數(shù)據(jù)模型數(shù)據(jù)之間的彼此關(guān)聯(lián)比較大,該模型其實一種導(dǎo)航式的數(shù)據(jù)模型結(jié)構(gòu),不僅要說明要對數(shù)據(jù)做些什么,還說明操作的記錄的路徑。

  3. DDL、DML語言復(fù)雜,用戶不容易使用。

  4. 記錄之間聯(lián)系是通過存取路徑實現(xiàn)的,用戶必須了解系統(tǒng)結(jié)構(gòu)的細節(jié)。

網(wǎng)狀模型與層次模型

網(wǎng)狀模型與層次模型之間的區(qū)別:

  1. 網(wǎng)狀模型允許多個結(jié)點沒有雙親結(jié)點

  2. 網(wǎng)狀模型允許結(jié)點有多個雙親結(jié)點

  3. 網(wǎng)狀模型允許兩個結(jié)點之間有多種聯(lián)系(復(fù)合聯(lián)系)

  4. 網(wǎng)狀模型可以更直接地描述現(xiàn)實世界

  5. 層次模型實際上是網(wǎng)狀模型的一個特例

網(wǎng)狀模型轉(zhuǎn)化為關(guān)系模型

網(wǎng)狀模型轉(zhuǎn)化成關(guān)系模型只需將其網(wǎng)狀模型節(jié)點之間指針描述的聯(lián)系在關(guān)系模型中使用外鍵描述即可。

仍使用上面示例中學(xué)生和課程間聯(lián)系的網(wǎng)狀模型,我們將它轉(zhuǎn)化為關(guān)系模型后如下圖:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

編程要求

編寫 SQL 語句,將指定的網(wǎng)狀模型轉(zhuǎn)換為相應(yīng)的關(guān)系模型后創(chuàng)建表,并向表中插入數(shù)據(jù)。具體要求如下:

  • 網(wǎng)狀模型圖

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫

將學(xué)生表命名為 t_student,課程表命名為 t_course,關(guān)系表命名為 t_relation,表種各字段如下:

字段名稱 備注 類型
s_id 學(xué)號 varchar(32)
s_name 學(xué)生姓名 varchar(32)
s_class 年級 varchar(32)
c_id 課程號 varchar(32)
c_name 課程名 varchar(32)
c_creadit 學(xué)分 int(3)
grade 成績 varchar(32)

學(xué)生信息和課程信息如下:

s_id s_name s_class
S1 張樂 大一
S2 王沖 大二
S3 翠花 大一
c_id c_name c_creadit
C1 數(shù)據(jù)庫 45
C2 python 30

t_relation 表的插入數(shù)據(jù)如下圖:

mysql數(shù)據(jù)模型,數(shù)據(jù)庫原理,mysql,數(shù)據(jù)庫開發(fā),數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-733225.html

頭歌實驗代碼

#請在此添加實現(xiàn)代碼
########## Begin ##########
CREATE TABLE t_student (
    s_id VARCHAR(32) NOT NULL,
    s_name VARCHAR(32) NOT NULL,
    s_class VARCHAR(32),
    PRIMARY KEY (s_id)
);
CREATE TABLE t_course (
    c_id VARCHAR(32) NOT NULL,
    c_name VARCHAR(32) NOT NULL,
    c_creadit INT(3),
    PRIMARY KEY (c_id)
);
CREATE TABLE t_relation (
    s_id VARCHAR(32) NOT NULL,
    c_id VARCHAR(32) NOT NULL,
    grade VARCHAR(32) NOT NULL,
    CONSTRAINT fk_1 FOREIGN KEY t_relation(s_id) REFERENCES t_student(s_id),
    CONSTRAINT fk_2 FOREIGN KEY t_relation(c_id) REFERENCES t_course(c_id)
);
INSERT INTO t_student VALUES("S1","張樂","大一"),("S2","王沖","大二"),("S3","翠花","大一");
INSERT INTO t_course VALUES("C1","數(shù)據(jù)庫",45),("C2","python",30);
INSERT INTO t_relation VALUES("S1","C1","A"),
                             ("S1","C2","A"),
                             ("S2","C1","B"),
                             ("S2","C2","A-"),
                             ("S3","C1","C");
########## End ##########

到了這里,關(guān)于實用數(shù)據(jù)庫開發(fā)實踐MySQL——數(shù)據(jù)模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python+django+mysql項目實踐二(前端及數(shù)據(jù)庫)

    python+django+mysql項目實踐二(前端及數(shù)據(jù)庫)

    Pycharm 開發(fā)環(huán)境 Django 前端 MySQL 數(shù)據(jù)庫 Navicat 數(shù)據(jù)庫管理 添加模板 在templates下創(chuàng)建 views文件中添加 在setting文件中進行配置 在Terminal輸入命令下發(fā)指令

    2024年02月14日
    瀏覽(23)
  • Python數(shù)據(jù)庫編程全指南SQLite和MySQL實踐

    本文分享自華為云社區(qū)《Python數(shù)據(jù)庫編程全指南SQLite和MySQL實踐》,作者: 檸檬味擁抱。 首先,我們需要安裝Python的數(shù)據(jù)庫驅(qū)動程序,以便與SQLite和MySQL進行交互。對于SQLite,Python自帶了支持;而對于MySQL,我們需要安裝額外的庫,如 mysql-connector-python 。 SQLite是一種輕量級的

    2024年03月28日
    瀏覽(37)
  • MySQL數(shù)據(jù)庫 3.內(nèi)部數(shù)據(jù)模型

    MySQL數(shù)據(jù)庫 3.內(nèi)部數(shù)據(jù)模型

    ? 關(guān)系型數(shù)據(jù)庫是建立在關(guān)系模型基礎(chǔ)上,由多張相互連接的二維表組成的數(shù)據(jù)庫。 關(guān)系型數(shù)據(jù)庫是一種使用關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)以 二維表 的形式存儲,一張表代表一種數(shù)據(jù)實體或關(guān)系。每行數(shù)據(jù)都包含了實體或關(guān)系的屬性信息,每列則代表一個屬性。

    2024年02月07日
    瀏覽(17)
  • MySQL基礎(chǔ)——數(shù)據(jù)模型·數(shù)據(jù)庫操作

    MySQL基礎(chǔ)——數(shù)據(jù)模型·數(shù)據(jù)庫操作

    ?? 作者:小劉在C站 ?? 個人主頁: 小劉主頁 ?? 每天分享云計算網(wǎng)絡(luò)運維課堂筆記,努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 樹高千尺,落葉歸根人生不易,人間真情 目錄 1.數(shù)據(jù)模型 2. SQL 2.1 SQL通用語法 2.3 DDL 2.3.1 數(shù)據(jù)庫操作 1). 查

    2024年02月06日
    瀏覽(24)
  • QT的mysql(數(shù)據(jù)庫)最佳實踐和常見問題解答

    QT的mysql(數(shù)據(jù)庫)最佳實踐和常見問題解答

    涉及到數(shù)據(jù)庫,首先安利一個軟件Navicat Premium,用來查詢數(shù)據(jù)庫很方便? QMysql驅(qū)動是Qt SQL模塊使用的插件,用于與MySQL數(shù)據(jù)庫進行通信。要編譯QMysql驅(qū)動,您需要滿足以下條件: 您需要安裝MySQL的客戶端庫和開發(fā)頭文件,這些文件通常隨MySQL的安裝程序一起提供,或者可以從

    2024年02月12日
    瀏覽(46)
  • MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    作者簡介:一名云計算網(wǎng)絡(luò)運維人員、每天分享網(wǎng)絡(luò)與運維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個人主頁:網(wǎng)絡(luò)豆的主頁?????? 目錄 前言 一.客戶端連接MySQL 二. 數(shù)據(jù)模型 1.關(guān)系型數(shù)據(jù)庫(RDBMS) 2.數(shù)據(jù)模型 三.SQL 1.SQL通用語法 2.SQL分類 3.數(shù)據(jù)庫操作 1). 查

    2024年02月06日
    瀏覽(25)
  • 【數(shù)據(jù)庫遷移系列】使用pgloader將數(shù)據(jù)從MySQL遷移到openGauss的最佳實踐

    【數(shù)據(jù)庫遷移系列】使用pgloader將數(shù)據(jù)從MySQL遷移到openGauss的最佳實踐

    數(shù)據(jù)庫遷移是實際工作中經(jīng)常遇到的問題,比如由于磁盤空間、業(yè)務(wù)性能、項目改造等等原因,有從甲服務(wù)器遷移到乙服務(wù)器,從A種數(shù)據(jù)庫遷移到B種數(shù)據(jù)庫,從源路徑遷移到另一個目標(biāo)路徑、同一個機器下從一個用戶遷移到另一個用戶等各種場景,有時需要整個數(shù)據(jù)庫所有

    2024年02月02日
    瀏覽(47)
  • 數(shù)據(jù)庫開發(fā)-MySQL

    數(shù)據(jù)庫開發(fā)-MySQL

    下面我們就正式的進入到SQL語句的學(xué)習(xí),在學(xué)習(xí)之前先給大家介紹一下我們要開發(fā)一個項目,整個開發(fā)流程是什么樣的,以及在流程當(dāng)中哪些環(huán)節(jié)會涉及到數(shù)據(jù)庫。 需求文檔: 在我們開發(fā)一個項目或者項目當(dāng)中的某個模塊之前,會先會拿到產(chǎn)品經(jīng)理給我們提供的頁面原型及

    2024年02月07日
    瀏覽(23)
  • 09 數(shù)據(jù)庫開發(fā)-MySQL

    09 數(shù)據(jù)庫開發(fā)-MySQL

    數(shù)據(jù)庫 :英文為 DataBase,簡稱DB,它是存儲和管理數(shù)據(jù)的倉庫。 數(shù)據(jù)庫管理系統(tǒng) :DataBase Management System (DBMS),操縱和管理數(shù)據(jù)庫的大型軟件。 SQL : S tructured Q uery L anguage,簡稱SQL,結(jié)構(gòu)化查詢語言,它是操作關(guān)系型數(shù)據(jù)庫的編程語言,定義了一套操作關(guān)系型數(shù)據(jù)庫的統(tǒng)一標(biāo)

    2024年02月11日
    瀏覽(18)
  • MySQL的基本概念(數(shù)據(jù)庫類、數(shù)據(jù)模型、服務(wù)啟動與連接)

    MySQL的基本概念(數(shù)據(jù)庫類、數(shù)據(jù)模型、服務(wù)啟動與連接)

    目錄 數(shù)據(jù)庫基礎(chǔ) DB和DBMS 數(shù)據(jù)庫的類型 RDBMS的結(jié)構(gòu) Windows系統(tǒng)下MySQL的服務(wù)啟動與連接 服務(wù)啟動 客戶端連接 Linux下MySQL的安裝和配置 安裝MySQL并啟動服務(wù) 通過遠程連接此數(shù)據(jù)庫 什么是DB 將大量的數(shù)據(jù)保存起來,通過計算機加工而成的可以進行高效訪問的數(shù)據(jù)集合就成為數(shù)據(jù)庫

    2024年02月15日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包