dql 語言
1 編寫基本 select 語句
select 語句的作用是從資料庫中返回資訊。
1.1select 語句作用
1.1.1列選擇(投影操作)
能夠使用 select 語句的列選擇功能選擇表中的列,這些列是我們想要用查詢返回 的。當我們查詢時,可在選擇查詢的表中指定的列。
1.1.2行選擇(選擇操作)
能夠使用 select 語句的行選擇功能選擇表中的行,這些行是我們想要用查詢返回 的。能夠使用不同的標準限制所看見的行。
1.1.3連線(多表操作)
能夠使用 select 語句的連線功能來集合資料,這些資料雖然被儲存在不同的表中, 但是我們可以通過連線查詢到該資料。
1.2select 語句基本結構
select*|fromtable; select 確定哪些列。 from 確定哪張表。
1.2.1基本 select 語句
在最簡單的形式中,select 語句必須包含下面的內容: 乙個 select 子句,指定被顯示的列 乙個 from 子句,指定表,該錶包含 select 子句中的字段列表
1.2.2在語法中
select 是乙個或多個欄位的列表 * 選擇所有的列 distinct 關鍵字表示禁止重複 column|expression 選擇指定的字段或表示式 alias 給所選擇的列不同的標題 fromtable 指定包含列的表
1.3選擇操作(投影操作)
1.3.1選擇所有列
select*fromtable;
1.3.2選擇指定的列
selectcolumnname,columnname fromtable;
1.4sql 語句語法要求
•sql 語句對大小寫不敏感 •sql 語句可以寫成一行或多行 • 關鍵字不能簡寫或分開折行 • 子句通常放在不同的行 • 縮排用於增強可讀性
1.5select 語句中的算術表示式
用算術運算子建立數字和日期資料的表示式。(±*/) 注意:如果對日期進行計算,我們只能對 date 和 timestamp 資料型別使用加和 減操作。
1.5.1運算子的優先順序
• 乘法和除法比加法和減法的優先順序高 • 相同優先順序的運算子從左到右計算 • 圓括號用於強制優先計算,並且使語句更清晰
1.5.2示例
計算 employees 表中的員工全年薪水加 100 以後的薪水是多少? select employee_id , first_name ,salary *12 +100 from employees;
計算 employees 表中的員工薪水加 100 以後的全年薪水是多少? select employee_id,first_name ,(salary+100)*12 from employees;
1.6定義空值
空值是乙個未分配的、未知的,或不適用的值 空值不是 0,也不是空格
1.6.1空值
如果一行中的某個列缺少資料值,該值被置為空值。空值和 0 或者空格不相同。0 是 乙個數字,而空格是乙個字元。任何資料型別的列都可以包含空值。可是,某些約束,如, notnull 和 primarykey,防止在列中使用空。
1.6.2算術表示式中的空值
包含空值的算術表示式計算結果為空。
1.6.3示例
select last_name ,12salarycommission_pct from employees;
1.7定義列別名
列別名: • 改變列標題的名字 • 緊跟在列名後面 – 在列名和別名之間可以有選項 as 關鍵字 • 如果別名中包含有空格、或者特殊字元、或者大小寫敏感,要求用雙引號
在 select 列表中的列名後面指定別名,列名和別名之間用空格分開。預設情況下, 別名標題用大寫字母顯示。如果別名中包含空格或者特殊字元(例如 # 或 &),或者 大小寫敏感,將別名放在雙引號 (「」) 中。
1.7.1示例
查詢 employees 表中的 last_name,commission_pct 並將佣金列名改為 comm。 方式一:select last_name ,commission_pct as comm from employees; 方式二:select last_name name ,commission_pct comm from employees;
計算所有員工的全年薪水,將列名修改」annualsalary」。 方 式 一:select last_name name ,12salary as 「annual salary」 from employees; 方式二: selectlast_namename,12salary"annualsalary"fromemployees;
1.8連字運算子
連字運算子: • 連線列或者字串到其它的列 • 用兩個豎線表示 (||) • 構造乙個字元表示式的合成列
我們能夠用連字運算子 (||) ,進行列與列之間、列與算術表示式之間或者列與常數值 之間的連線,來建立乙個字元表示式。連字運算子兩邊的列被合併成乙個單個的輸出列。
1.8.1示例
將 employees 表中的 last_name 和 job_id 合併到乙個單個的輸出列中,並且指定 列別名 employees。 select last_name || job_id as 「employee」 from employees;
1.9文字字串
文字字串是包含在 select 列表中的乙個字串,乙個數字或者乙個日期 • 日期和字元的文字字串值必須用單引號括起來 • 每個文字字串在每行輸出一次
文字字串不是列名或別名。對每個返回行列印一次。任意格式文字的文字字串能夠 被包含在查詢結果中,並且作為 select 列表中的列處理。日期和字元文字 必須 放在單 但引號 (』』) 中;數字不需要。
1.9.1示例
顯示所有雇員的名字和工作**,使用 isa 鏈結查詢結果。列標題用 employee details。 select last_name || 』 is a 』 || job_id as 「employee details」 from employees;
1.10去除重複行
在 select 語句中用 distinct 關鍵字除去相同的行。為了在結果中除去相同的行, 在 select 子句中的 select 關鍵字後面緊跟 distinct 關鍵字。
1.10.1 示例
在 employees 表中查詢 department_id 並去除重複資料。 select distinct department_id from employees;
1.11基本 select 語句小節練習
1.11.1 在下面的語句中有 4 個編碼錯誤,你能找出他們嗎?
selectemployee_id,last_name salx12annualsalary fromemployees;
答案:1 在 employees 表中沒有 sal 列,應該是 salary。 2 乘法運算子是「*」而不是「x」。 3 如果別名中包含空格,則需要在別名兩側新增雙引號。 4 在 last_name 後少乙個逗號。
1.11.2 顯示 departments 表的結構。選擇表中的所有數
據。答案:顯示表結構: desc departments; 查詢所有資料:select * from departments;
1.11.3 建立乙個查詢,顯示每個雇員的 last name, job code, hiredate, 和 employee 號,employee 號顯示在第一列, 給 hire_date 列指定乙個別名 startdate 。
答案:selectemployee_id,last_name,job_id,hire_date startdatefrom employees;
1.11.4 建立乙個查詢從 employees 表中顯示唯一的工作
**。答案:select distinct job_id from employees;
1.11.5 顯示 last_name,用 job_id 連線,用逗號和空格分開, 用 employeeandtitle 作為列名。
答案:select last_name || ', 』 ||job_id from employees;
SQL語言基礎(2)
from子句指定需要進行資料查詢的表,檢視等資料來源,用逗號分隔。from子句還可以指定資料表或檢視之間的連線型別,型別取決於on子句中指定的連線條件。t sql可以支援在from子句中指定除資料表或檢視外的其他物件構成派生表。例如 select emp.員工編號,emp.員工姓名,sp.部門名稱 ...
SQL語言基礎
1.集合的操作 union 將多個查詢結果相加形成乙個結果集。將第乙個查詢中的所有行與第2個查詢中的所有行相加,並消除其中相同的行形成乙個集合。intersect 處理多個查詢結果的交集。2.新增 刪除字段 alter table user add pwd varchar2 10 alter tab...
SQL語言基礎
sql語言基礎 一 sql語言概述 sql語言 是一種結構化查詢語言,是一種用於關係式資料庫中定義和操縱資料的語言。也可以形象的 理解為使用者和資料庫進行交流的語言。被大多數關係式資料庫,如oracle,mysql資料庫所採用。二 sql語言的模式與物件 1 模式 模式是資料庫物件的集合,是資料庫中...