1.Oracle中常見的數據類型分類:(A) 1.number(x,y) 數字類型,x表示最大長度,y表示精度對應java中除char外所有基本數據類型(byte、short、int、long、float、double、boolean) 2.varchar2(x) 可變字元串,x表示最大長度。對應j ...
1.Oracle中常見的數據類型分類:(A)
1.number(x,y) 數字類型,x表示最大長度,y表示精度
對應java中除char外所有基本數據類型(byte、short、int、long、float、double、boolean)
2.varchar2(x) 可變字元串,x表示最大長度。對應java中String
3.char(x) 定長字元串,x表示最大長度。 對應java中String
4.long 長字元串,最大2G。對應java中String
5.Date,日期(年月日時分秒)對應java.sql.Date和java.sql.Time
6.TIMESTAMP 時間戳,精確到微秒 對應javal.sql.Timestamp
2.DDL的概念:(C)
數據定義語言DDL( Data definition language ):是SQL語言的一個分類,用於對資料庫對象(表、視圖、序列等)進行創建、修改、刪除等操作。
通過以下幾個關鍵字實現:
CREATE(新建)、 ALTER(修改) DROP(刪除) RENAME(重命名) TRUNCATE(截斷)
3.create關鍵字:(A)
3.1 作用:
用於創建資料庫對象(表、視圖、序列等)。
3.2 語法:
語法1:create table 表名(列1 數據類型, 列2 數據類型,...,列N 數據類型)
例:
--直接創建一張新的表 create table t_user (id number,username varchar2(30),password varchar2(30));
語法2:create table 表名 as 子查詢
例:
--創建一個表查詢結果的複製表 --因為where條件1=2始終不成立,所以只複製表結構 create table t_emp as (select * from emp where 1=2); --如需複製整張表不寫where子句即可
4.alter 關鍵字:(A)
4.1 作用:
用於修改資料庫對象(表、視圖、序列等)。
4.2 語法:
alter table 表名 [modify/add/drop] (列 數據類型)
modify:修改/add:增加/drop:刪除
例:
--modif 一般用於修改列的數據類型或長度 alter table t_emp modify (ename varchar2(10)); --add 用於添加列 alter table t_emp add(phone varchar2(11)); --drop 用於刪除列,因為刪除不用管數據類型,所以不用指定數據類型 alter table t_emp drop(phone);
5.drop 關鍵字
5.1作用:
用來刪除資料庫的對象(表,視圖,序列,索引等)
5.2語法:
drop table 表名
例:
drop table t_emp;
6.視圖:(B)
6.1 概念:
視圖(view),也稱虛表, 不占用物理空間,這個也是相對概念,因為視圖本
身的定義語句還是要存儲在數據字典里的。視圖只有邏輯定義。每次使用
的時候, 重新執行調用視圖定義語句中的SQL語句。
6.2 作用:
將一些查詢複雜的SQL語句變為視圖,便於查詢。
6.3 語法:
create [or replace] view v$_name
as 子查詢
[with read only]
or replace:覆蓋原有視圖,一般不添加
with read only:只讀,一般建議添加
6.4需要註意的點:
1.視圖也可以從視圖中產生
2.我們把用於產生視圖的表稱之為基表
3.我們對視圖進行數據修改就是對基表進行數據修改,反之亦然
4.不能對多張表的數據,通過視圖進行修改。
7.序列(B)
7.1 概念:
序列是oracle中專有的對象,它用來產生一個自動遞增的數列。
7.2創建序列的語法:
create sequence 序列名
increment by n --每次遞增n
start with m --從m開始
例:
--從1開始每次遞增1 create sequence seq_emp_temp increment by 1 start with 1
7.3 使用序列:
序列名.nextval :下一個值
序列名.currval : 當前值
例:
insert into emp_temp(empno) values(seq_emp_temp.nextval)