-- 主鍵約束:PRIMARY KEY=不重複+不為NULL;
-- (列級約束條件)
CREATE TABLE dept_dylan (
dept_id NUMBER (2) PRIMARY KEY,
dept_name VARCHAR (20),
dept_location VARCHAR (40)
);
-- 資料準備
INSERT INTO dept_dylan
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan
VALUES
(10, 'market', 'shenzhen');
-- 表級約束條件:建議約束命名規則:表名_列名_約束條件的型別
CREATE TABLE dept_dylan2(
dept_id NUMBER (2),
dept_name VARCHAR (20),
dept_location VARCHAR (40),
constraint dept_dylan2_pk PRIMARY KEY (dept_id)
);
-- 資料準備
INSERT INTO dept_dylan2
VALUES
(10, 'developer', 'beijing');
INSERT INTO dept_dylan2
VALUES
(10, 'market', 'shenzhen');
SELECT
*
FROM
dept_dylan2;
-- 非空約束( not null , 簡稱 NN ) ** 非空約束只能定義在列級
CREATE TABLE student_dylan (
id NUMBER (4) PRIMARY KEY,
NAME VARCHAR (10) NOT NULL,
age NUMBER (3)
);
INSERT INTO student_dylan
VALUES
(1, 'zhangwei', 20);
INSERT INTO student_dylan
VALUES
(2, 'zhangwei', 19);
INSERT INTO student_dylan
VALUES
(3, NULL, 19);
SELECT
*
FROM
student_dylan;
-- 給非空約束命名
DROP TABLE student_dylan;
CREATE TABLE student_dylan (
id NUMBER (4) PRIMARY KEY,
name VARCHAR (10) constraint student_dylan_name_nn NOT NULL,
age NUMBER (3)
);
-- 檢視可以使用 CREATE OR REPLACE 來建立或覆蓋,並可查詢檢視的定義。
CREATE
OR REPLACE VIEW v_emp_count AS SELECT
dept_test_id,
count(*) emp_num,
sum(salary) sum_s,
avg(IFNULL(salary, 0)) avg_s,
max(salary) max_s,
min(salary) min_s
FROM
emp_test
GROUP BY
dept_test_id;
SELECT
*
FROM
v_emp_count;
-- 索引 Index *
-- index :用來提高查詢效率的機制
-- 全表掃描方式( Full Table Scan ):查詢效率極低
-- 索引查詢:比全表掃描快
-- 索引的結構:資料+地址( 如:張三+Room203 )
-- 注意:對亍資料變更頻繁(DML 操作頻繁)的表 , 索引會影響查詢效能
-- 自勱建立索引:
-- 如果資料表有 PK/Unique 兩種約束 , 索引自勱建立 , 除此以外 , 索引必須手勱建立
-- 自定義索引語法:
-- create index 索引名 on 表名(列名) ;
-- 表的主鍵和唯一約束條件 , 會自動建立索引
create table student_ning7(
id INT(4),
name char(20),
email char(40),
constraint stu_n7_id_pk primary key(id),
constraint stu_n7_email_uk unique(email)
)
create index idx_stu7_name
on student_ning7(name) ;
select * from student_ning7
where name = 'zhangsan' ;複製程式碼
【從零開始學習Oracle資料庫】(5)約束檢視與索引
相關文章
- 【從零開始學習 MySql 資料庫】(5) 約束檢視與索引MySql資料庫索引
- 【從零開始學習Oracle資料庫】(2)函式Oracle資料庫函式
- 【從零開始學習Oracle資料庫】(1)建表與簡單查詢Oracle資料庫
- 【從零開始學習Oracle資料庫】(4)建立表與增刪改和資料庫事務Oracle資料庫
- 【從零開始學習 MySql 資料庫】(2) 函式MySql資料庫函式
- 從零開始學習時空資料視覺化(序)視覺化
- 【從零開始學習 MySql 資料庫】(1) 建表與簡單查詢MySql資料庫
- 【從零開始學習Oracle資料庫】(3)函式與子查詢和連線查詢Oracle資料庫函式
- 從零開始學習KafkaKafka
- 從零開始學習機器學習機器學習
- 從零開始學習laravelLaravel
- 資料視覺化Seaborn從零開始學習教程(三) 資料分佈視覺化篇視覺化
- 大資料學習路線(自己制定,從零開始)大資料
- Oracle約束的學習與測試Oracle
- oracle學習筆記(十四) 資料庫物件 索引 檢視 序列 同義詞Oracle筆記資料庫物件索引
- 從零開始實現資料庫自動化巡檢(一)資料庫
- 從零到一的 React 學習與實踐資料索引React索引
- 從零開始學機器學習——準備和視覺化資料機器學習視覺化
- 資料視覺化Seaborn從零開始學習教程(一) 風格選擇視覺化
- oracle學習筆記——檢視、索引Oracle筆記索引
- eclipse學習從零開始Eclipse
- 從零開始學習Git--遠端倉庫Git
- Oracle資料庫開發——表(資料完整性約束)Oracle資料庫
- 從零開始JAVA資料結構學習筆記(一)Java資料結構筆記
- 【從零開始學爬蟲】採集收視率排行資料爬蟲
- 【從零開始學習 MySql 資料庫】(3) 函式與子查詢和連線查詢MySql資料庫函式
- SQL Server實戰三:資料庫表完整性約束及索引、檢視的建立、編輯與刪除SQLServer資料庫索引
- 資料視覺化Seaborn從零開始學習教程(二) 顏色調控篇視覺化
- 資料庫系統原理(四)——檢視與索引資料庫索引
- 從零開始學 Oracle 練習題答案(9-10)Oracle
- 從零開始學習 Go ——安裝Go
- 30天從零開始學習SwiftSwift
- 從零開始學習C++(0)C++
- Oracle約束enable validate時資料檢查Oracle
- 《從零開始學Swift》學習筆記(Day48)——型別檢查與轉換Swift筆記型別
- 資料庫常用約束資料庫
- mysql資料庫約束MySql資料庫
- 學用計算機從零開始 G.盲人資料庫(轉)計算機資料庫