聲明:以下內容是自己跟着教學視屏學習之后整理而來(主要是自用),如有侵權請告知,將盡快刪除。
一、索引
1. 概述:
數據庫對象之一
索引用於提高查詢效率
索引的內建工作對用戶是透明的,由數據庫自行維護,我們只需要指定是否添加索引。
索引是為表中字段添加的。當一個字段經常出現在WHERE中作為過濾條件,或 ORDER BY 或 DISTINCT中時可以為其添加索引以提高查詢效率。
2.索引的使用
(1) 單一索引
--創建索引 CREATE INDEX idx_emp_ename_ning ON emp(ename)
SELECT ename,job,deptno FROM emp_ning WHERE ename='惜月'
(2) 復合索引:基於多個列的索引
CREATE INDEX idx_emp_job_sal_ning ON emp_ning(job,sal)
SELECT empno,ename,sal,job FROM emp_ning ORDER BY job,sal
(3)創建基於函數的索引
--在emp表的ename列上執行大小寫無關的搜索 CREATE INDEX emp_ename_upper_idx_ning ON emp_ning(UPPER(ename))
SELECT * FROM emp_ning WHERE UPPER(ename)='惜月'
(4) 修改和刪除索引
a.重建索引:如果經常在索引列上執行DML操作,需要定期重建索引 ALTER INDEX idx_emp_ename_ning REBUILD
b.刪除索引 DROP INDEX idx_emp_ename_ning
二、結構化查詢語言
參考文檔:https://www.cnblogs.com/pinnsvin/p/5528272.html
結構化查詢語言(sql)可以分為:
a. 數據定義語言(DDL)
b. 操縱語言(DML)
c. 事物控制語言(TCL)
d. 數據查詢語言(DQL)
e. 數據控制語言(DCL)
1. 數據定義語言(DDL, Data Definition Language)
DDL作用是增刪該數據庫對象
語法:
a. CREATE:創建數據庫對象(數據庫對象主要包括:用戶、數據庫、表、視圖、存儲過程、存儲函數、觸發器、索引等);
CREATE TABLE employee_baobao( id NUMBER(4), name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE, salary NUMBER(6,2), job VARCHAR2(30), deptno NUMBER(2) );
b. ALTER:修改數據庫對象;
ALTER TABLE myemp_baobao ADD( hiredate DATE DEFAULT SYSDATE ) DESC myemp_baobao
b. DROP:刪除數據庫對象
DROP TABLE employee_baobao
2 . 數據查詢語言(DQL,Data Query Language)
主要是一些查詢的sql語句。
語法:
select * from t1
3.數據操縱語言(DML, Data Manipulation Language)
主要是修改表中數據的一些sql語句。
語法結構:
a. INSERT
INSERT INTO myemp_baobao (id,name,job,salary) VALUES (1,'JACK','MANAGER',5000)
b. UPDATE
update t_f_prj set f_name = 'xxx' where pk_id = '123'
c. DELETE
delete from t1 where pk_id = '123';
4.數據控制語言(DCL, Data Control Language)
主要是用來對數據庫權限進行控制。由 GRANT 和 REVOKE 兩個指令組成。
a.DCL:控制用戶的訪問權限;
b. GRANT:授權語句,對應的是REVOKE(撤銷授權語句)。