正規化 資料庫表的建立 修改和約束設定

2021-10-05 19:12:44 字數 2081 閱讀 4502

建立表修改表結構

約束constraint

解決資料冗餘的問題

確保每列保持原子性

如果資料庫表中的所有字段值都是不可分解的原子值,就滿足了第一正規化。

確保表中的每列都和主鍵相關,而不能只於主鍵的某一部分相關。

主要是在聯合主鍵的情況下。

每一列都與主鍵直接相關,而不能與主鍵簡介相關。

新建表時,指定的表名必須不存在,否則出錯。

/**

create table [schema.]table

(column datatype [default expr] , …

);**/

create

table student(

stu_id number(10)

,name varchar2(20)

,age number(3)

,hiredate date

,grade varchar2(10)

default1,

classes varchar2(10)

,email varchar2(50)

);-- 插入資料

insert

into student values

(20191109

,'zhangsan',22

,to_date(

'2019-11-09'

,'yyyy-mm-dd'),

'2',

'1',

'[email protected]'

);

新增列

--再新增表的列的時候,不能允許設定成not null

alter

table student add address varchar2(

100)

;

刪除列

alter

table student drop

column address;

修改字段

alter

table student modify

(email varchar2(

100)

);

重新命名表

rename student to stu;
刪除表

drop

table stu;

新增外來鍵

-- add constraint  新增約數  (名稱)

alter

table student add

constraint fk_0001 foreign

key(deptno)

references dept(deptno)

;

外來鍵刪除

有三個方式:

restrict:只有當依賴表中沒有乙個外來鍵與要刪除的主表中的主鍵值相對應是,才能刪除。

casade:將依賴表中所有與外鍵值與主表中眼刪除的主鍵值相對應的記錄一起刪除

set null:將依賴表中所有與主表中被刪除的主鍵值相對應的外鍵值設為空值。

分為五大類:

not null: 非空約束,插入資料的時候某些列不允許為空

unique key:唯一鍵約束,可以限定某乙個列的值是唯一的,唯一鍵的列一般被用作索引列。

primary key:主鍵:非空且唯一,任何一張表一般情況下最好有主鍵,用來唯一的標識一行記錄,

foreign key:外來鍵,當多個表之間有關聯關係(乙個表的某個列的值依賴與另一張表的某個值)的時候,需要使用外來鍵

check約束:可以根據使用者自己的需求去限定某些列的值

資料庫基礎之正規化和約束介紹

一.資料庫中的正規化 正規化,英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法,以下就是對這三個正規化的基本介紹 第一正規...

MySQL建立資料庫及表和約束語句

建立資料庫 建立資料庫 create database ifnot exists shopping default charset utf8 collate utf8 general ci 建立表,不加任何約束 create table aaa u id int u name varchar 20 ...

關於資料庫的索引和約束

1.主鍵約束 primary key 1 主鍵用於唯一地標識表中的每一條記錄,可以定義一列或多列為主鍵。2 是不可能 或很難 更新 3 主鍵列上沒有任何兩行具有相同值 即重複值 不允許空 null 4 主健可作外健,唯一索引不可 2.唯一性約束 unique 1 唯一性約束用來限制不受主鍵約束的列上...