LeetCode-2024 考試的最大困擾度
資料庫管理系統(DBMS)
是一種操作和管理資料庫的大型軟體,用於建立,使用和維護資料庫。大部分 DBMS 提供資料定 義語言 DDL (Data Definition Language)和資料操作語言 DML
儲存模型
-
關係型資料庫:關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織
-
非關係型資料庫
SQL語言
命令分類操作
-
DDL:資料定義語 表管理命令: create:建立;drop:刪除;alter:修改;rename: 重新命名; truncate:截斷
-
DML:資料管理語 欄位管理命令: insert:插入;delete:刪除;update:更新;select:查詢
-
DQL:資料查詢語
-
DML:資料管理語
-
-
DCL:資料控制語 命令:grant:授權;revoke:回收權利;commit:提交事務;rollback:回滾事務
表結構
SELECT
條件查詢 : select 要查詢的資料 from 資料來源 where 行過濾條件 order by 排序欄位1,排序欄位2...;執行流程 : from --> where --> select -> order by
條件判斷運算子 : = < > <= >= != <> 條件連線符 : and or not 區間判斷 : 條件1 and 條件2 | between 值1 and 值2(相當於>=與<=)
偽列 : 真實不存的,可以是表示式,整數,字串
虛表 : dual
排序: order by 排序欄位1 desc降序|asc升序預設,排序欄位2注意:資料來源可以為表也可以為結果集.空值不能用=號來做比較,要用is來比較
-
select:查詢
select * from emp;--查詢表中所有欄位
--執行流程: from --> select
-
distinct 去重
select distinct deptno from emp;--對結果多條相同資料進行去重
-
as 取別名
select ename 員工姓名,sal "empSal",sal*12 as "年 薪" from emp e;--as可以省略
-
nvl(值1,值2) 處理null值
select ename,sal,comm,nvl(comm,0)+1 from emp;--值1為null輸出值2,不為null輸出值1
-
in(值列表)
SELECT * FROM EMP WHERE SAL IN (1500, 2000, 2500, 5000);--匹配值列表
-
escape('A'):將某一字元定義為轉意字元
-
like 模糊匹配查詢(%為任意個數任意字元,_一個任意字元)
select * from emp where ename like '%A%%' escape('A');--將A定義為轉意字元
-
exists (結果集)
select *
from emp e
where exists (select deptno, dname
from dept d
where dname in ('SALES', 'ACCOUNTING')
and e.deptno != d.deptno);
子查詢
查詢語句巢狀查詢語句 當條件與要查詢的資料在不同的資料來源,而兩個資料來源之間存在一定的關聯方式,可以子查詢中轉查詢
-- 查詢工資比SMITH高的同一部門的員工資訊
SELECT *
FROM EMP
WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME = 'SMITH')
AND DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'SMITH');
SELECT SAL FROM EMP WHERE ENAME = 'SMITH';--子
SELECT DEPTNO FROM EMP WHERE ENAME = 'SMITH';--子
函式
內建函式
自定義函式
-
單行函式:一條記錄返回一條結果 -- trunc 取整
select ename,trunc(months_between(sysdate,hiredate)) from emp;
日期物件與日期字串之間相互轉換
select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select sysdate,to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;
--to_date
select sysdate,to_date('2022年02月23日','yyyy"年"mm"月"dd"日"') from dual;