JAVAWEB学习笔记--Day3
生活随笔
收集整理的這篇文章主要介紹了
JAVAWEB学习笔记--Day3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
約束
數據庫設計
案例
約束
1.約束的概念和分類:
- 約束是作用于表中列上的規則,用于限制加入表的數據
- 約束得遜在保證了數據庫中數據的正確性,有效性和完整性
2.約束的分類
| 約束名稱 | 描述 | 關鍵字 |
| 非空約束 | 保證列中所有數據不能有null值 | NOT NULL |
| 唯一約束 | 保證列中所有數據各不相同 | UNIQUE |
| 主鍵約束 | 主鍵是一行數據的唯一標識,要求非空且唯一 | PRIMARY KEY |
| 檢查約束 | 保證列中的值滿足某一條件 | CHECK |
| 默認約束 | 保存數據是,未指定值采用默認值 | DEFAULT |
| 外鍵約束 | 外鍵用來讓兩個表的數據之間建立鏈接,保證數據的一致性和完整性 | FOREIGN KEY |
tips:MySQL不支持檢查約束
CREATE TABLE emp (id INT PRIMARY KEY auto_increment, -- 員工id,主鍵且自增長ename VARCHAR (20) NOT NULL UNIQUE, -- 員工姓名,非空且唯一joindate DATE NOT NULL, -- 入職日期,非空salary DOUBLE (7, 2) NOT NULL, -- 工資,非空bonus DOUBLE (7, 2) DEFAULT 0 -- 獎金,如果沒有默認是0 );外鍵約束
語法:
? ? ? ? 1.添加約束
-- 創建表時添加外鍵約束 create table 表名(列名 數據類型,…[constraint] [外鍵名稱] foreign key (外鍵列名) references 主表(主表列名); );-- 建完表后添加外鍵約束 alter table 表名 add constraint 外鍵名稱 foreign key (外鍵字段名稱) references 主表名稱(主表列名稱);? ? ? ? 2.刪除外鍵
alter table 表名 drop foreign key 外鍵名稱;數據庫設計
1.軟件研發步驟:
需求分析 --> 設計 --> 編碼 --> 測試 --> 安裝部署
?2.數據庫設計概念:
- 數據庫設計就是根據業務系統的具體需求,結合我們所選用的DBMS,為這個業務系統構造出最優的數據存儲模型
- 建立數據庫中的表結構以及表與表之間的關聯關系的過程
- 有哪些表,表里有哪些字段,表和表之間有什么關系
3.數據庫設計的步驟
表關系:
- 一對一:如用戶和用戶詳情
- 一對多(多對一):如部門和員工
- 多對多:如商品和訂單
表關系之一對多:
實現方式:在多的一方建立外鍵,指向一的一方的主鍵
表關系之多對多:
一個商品對應多個訂單,一個訂單包含多個商品
實現方式:建立第三張中間表,中間表至少包含兩個外鍵,分別關聯兩方主鍵
代碼實現:
-- 訂單表 CREATE TABLE tb_order (id INT PRIMARY KEY auto_increment,payment DOUBLE (10, 2),payment_type TINYINT,STATUS TINYINT );-- 商品表 CREATE TABLE tb_goods (id INT PRIMARY KEY auto_increment,title VARCHAR (100),price DOUBLE (10, 2) );-- 訂單商品中間表 CREATE TABLE tb_order_goods (id INT PRIMARY KEY auto_increment,order_id INT,goods_id INT,count INT );-- 添加外鍵 ALTER TABLE tb_order_goods add CONSTRAINT fk_order_id FOREIGN KEY(order_id) REFERENCES tb_order(id); ALTER TABLE tb_order_goods add CONSTRAINT fk_goods_id FOREIGN KEY(goods_id) REFERENCES tb_goods(id);表關系之一對一:
一對一關系多用于表拆分,將一個實體中經常使用的字段放一張表,不經常使用的字段放另一張表,用于提升查詢性能
多表查詢:
笛卡爾積:取A,B集合所有組合情況
多表查詢:從多張表查詢數據
? ? ? ? 連接查詢:
????????????????內連接:相當于查詢A B交際數據
? ? ? ? ? ? ? ? 外連接:
? ? ? ? ? ? ? ? ? ? ? ? 左外連接:相當于查詢A表所有數據和交集部分數據
? ? ? ? ? ? ? ? ? ? ? ? 右外連接:相當于查詢B表所有數據和交集部分數據
? ? ? ? ?子查詢:
1.概念:查詢中嵌套查詢,稱嵌套查詢為子查詢
2.子查詢根據查詢結果不同,作用不同:
- 單行單列:作為條件值,使用 = ! = > <?等進行條件判斷 SELECT 字段列表 FROM 表 WHERE 字段名 = (子查詢);
- 多行單列:作為條件值,使用in等關鍵字進行條件判斷 SELECT 字段列表 FROM 表 WHERE 字段名 IN (子查詢);
- 多行多列:作為虛擬表 SELECT 字段列表 FROM (子查詢) WHERE 條件;
案例
總結
以上是生活随笔為你收集整理的JAVAWEB学习笔记--Day3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动驾驶公司Torc与NXP达成合作,研
- 下一篇: 轿子vs.小汽车和电话vs.跟班