SQL語句分為以下三種類型:
- DML:Data manipulation Language數據操作語言
- DDL:Data Definition Language數據定義語言
- DCL:Data ControlLanguage數據控制語言
DML用于查詢與修改數據記錄,包括如下SQL語句:
- INSERT:添加數據到數據庫中
- UPDATE:修改數據庫中的數據
- DELETE:刪除數據庫中的數據
- SELECT:查詢數據
SELECT是SQL語言的基礎,最為重要
DDL用于定義數據庫中的結構。比如創(chuàng)建、修改或刪除出具庫對象,包括如下SQL語句:
- CREATE TABLE:創(chuàng)建數據庫表
- ALTER TABLE:更改表結構、添加、刪除、修改列長度
- DROP TABLE:刪除表
- CREATE IINDEX:在表上建立索引
- DROP INDEX:刪除索引
DCL用來控制數據庫的訪問,寶庫如下SQL語句:
- GRANT:授予訪問權限
- REVOKE:撤銷訪問權限
- COMMIT:提交事務處理
- ROLLBACk:事務處理回退
- SAVEPOINT:設置保存點
- LOCK:對數據庫的特定部分進行鎖定
注意
- SQL 語言大小寫不敏感
- SQL 可以寫在一行或多行
- 關鍵字不能被縮寫也不能分行
- 各子句一般要分行寫。
- 使用縮進提高語句的可讀性
算數運算符
數字和日期使用的算術運算符
“+” 加
“-” 減
“*” 乘
“/” 除
操作符優(yōu)先級
“*” “/” “+” “-”
- 乘除的優(yōu)先級高于加減。
- 同一優(yōu)先級運算符從左向右執(zhí)行。
- 括號內的運算先執(zhí)行。
列的別名
- 重命名一個列
- 便于計算
- 緊跟列名,也可以在列名和別名之間家關鍵字“AS”,別名使用雙引號,以便于在別名中包含空格或特殊的字符并區(qū)分大小寫
連接符
- 把列與列,列與字符連接在一起
- 用“||”表示
-
可以用來“合成”列
如:select last_name ||'`s email is'||eaail(他的email是:)
圖片.png
字符串
- 字符串可以是SELECT列表中的一個字符,數字,日期
- 日期和字符只能在單引號中出現(xiàn)
- 每當返回一行時,字符串被輸出一次
重復行
默認情況下,查詢會返回全部行,包括重復行。
去除重復行命令:distinct
如 select distinct departmant_is from emplayees

SQL和SQL*Plus的區(qū)別
| SQL | SQL*Plus |
|---|---|
| 一種語言 | 一種環(huán)境 |
| ANSI標準 | Oracle的特性之一 |
| 關鍵字不能縮寫 | 關鍵字可以縮寫 |
| 使用語句控制數據庫中的表的定義信 息和表中的數據 | 命令不能改變數據庫中的數據的值 |
| 集中運行 |
SQL*Plus
使用SQL*Plus可以:
- 描述表結構
- 編輯SQL語句
- 執(zhí)行SQL語句
- 將SQL保存在文件中并將SQL語句執(zhí)行結果保存在文件中
- 在保存的文件中執(zhí)行語句
- 將文本文件裝入SQL*Plus編輯窗口
顯示表結構
如:DESCRIBE employees

第一章 基本SQL- SELECT語句
- 對于日期型數據,做*,/運算不合法
- 包含空值的數學表達式的值都為空值
- 別名使用雙引號
- Oracle中連接字符串使用“||”,而不是Java中的“+”
- 日期和字符只能在單引號中出現(xiàn),輸出last_name`s email EMAIL FROM employees
- distinct 關鍵字,一下語法錯誤
select last_name,distinct department_id from employees
練習
1、SQLPLUS命令可以控制數據庫嗎?不能
2、下面的語句是否可以執(zhí)行成功
select last_name,job_id,salary as sal from employees
可以
3、下面的語句書否可以執(zhí)行成功
select * from employees
可以 查詢表中所有列
4、找出下面語句中的錯誤
select employee_id,last_name,salary12 “ANNUAL SALARY” FROME employees;
標點符號需要是英文格式下的
5、顯示表departments的結構,并查詢其中的全部數據
desc department
select * from departments;
6、顯示出來employees中的全部job_id(不能重復)
select distinct job_id from employees
7、顯示出表employees的全部列,各個列之間用逗號連接,列頭顯示成OUT_PUT
SELECT employees_id ||','|| last_name||','||salary "OUT_PUT"
FROM employees
