表的管理
常用數據類型: 文本、二進制類型: char(size) 定長 最大2000字符 建議數據長度固定時使用,因為固定長度比較,存取速度比varchar快 varchar2(size) 變長 最大4000字符 建議數據長度不固定時使用,因為長度不固定,變長比varchar定長更節約內存空間 nchar(size) unicode編碼類型 定長 最大2000字符 nvarchar2(size) unicode編碼類型 變長 最大4000字符 unicode編碼類型,一個漢字占用一個字符空間;而char類型占兩個字符空間 ctob(character large object) 字符型大對象 最大8tb blob(binary large object) 二進制數據 可以存放圖片/音頻 最大8tb 一般除非是對文件的安全性要求特別高。否則是不會直接將文件存放到數據庫中,一般存放文件對應鏈接 數值類型: number(p, s) p 整數位(1~38); s 小數位(-84~127) 數據范圍:-1.0e-130 ~ 1.0e+126 日期類型: date 默認格式:dd-mon_yyyy timestamp(n) n表示指定秒的小數位。(0~9)。取0時與date等價
(n) n表示指定秒的小數位。(0~9)。取0時與date等價1、創建表
基本語法:
create table table_name( 列1 數據類型1, 列2 數據類型2, 列3 數據類型3 );
2、修改表
基本語法:
-- 增加字段 alter table table_nameadd (column_name datatype); -- 修改字段 alter table table_namemodify (column_name datatype); -- 刪除字段 alter table table_namedrop column (column); -- 修改表名 rename table_name to newt_able_name; -- 刪除表 drop table table_name;
3、表數據的操作1. 增加
insert into table [(column [,column…])] values (value [,value…]);
數據類型相同;數據大小在范圍內;中的數據位置與列的位置對應;空值不指定或用null;字符、日期在單引號內
2. 刪除
delete from table [where definition] truncate table table [where definition]
如果沒有where條件,則會刪除表中所有數據
刪除操作針對數據行,如果想刪除指定行的某一列。可以使用語句選擇行的將該字段置空刪除操作只針對表中數據,不刪除表本身。如果需要刪除表,則使用drop table語句。
幾種刪除的特點:
:刪除表中數據;不破壞表結構;保存刪除記錄;刪除后可以回滾;執行速度較慢
:刪除表中數據;不破壞表結構;不保存刪除記錄;刪除后無法恢復;執行速度較快
drop:刪除表中數據;刪除表結構
語句的回滾:
語句在刪除記錄操作后可以使用 關鍵字進行回滾oracle查詢某列最大值,即數據恢復。
但是,前提是需要使用 關鍵字設置保存點。
sql> select * from students; id name age ------------------------------------ 01 zhangsan 10 sql> savepoint point01; savepoint created sql> delete from students where name='zhangsan'; 1 rows deleted sql> select * from students; id name age ------------------------------------ sql> rollback to point01;
rollback complete sql> select * from students; id name age ------------------------------------ 01 zhangsan 10
3. 修改
update table set column_name1=expr1[, column_name expr2…] [where definition];
set 語句指定需要更新的列名和要更新的值(可以使用表達式oracle查詢某列最大值,即數學函數等)
如果沒有where條件,則會更新整個表
4. 查詢
select [distinct] * | {column1, column2...}from table;
:去除重復數據; *:
*:查詢所有列 以上操作時經常用到的幾點: 1. 設置列的別名時。可以直接在列名后跟別名,也可以使用列名 as 別名。別名可以不帶引號,也可以帶雙引號,但較新版本的oracle中不允許帶單引號。 2. 巧用 nvl 函數處理 null 值問題。基本用法: nvl(column, default)。意為:當column為null時,返回default,否則返回column本身。 3. 常用 || 拼接字符串。 4. to_char(data, format)。日期的格式轉換。 以:5-may-2018為例。 to_char(data, 'yyyy-mm-dd') --> 2018-05-01 to_char(data, 'yyyy') --> 2018 to_char(data, 'yyyy-mm') --> 2018-05 5. like 模糊查詢。 % 表示任意個字符 _ 表示一個字符 6. in(value1, value2, value3,...) 條件滿足其中任意一種 7. is null 是否為空。 8. order by 對結果進行排序 desc 降序 高-->低 asc 升序 低-->高 (默認)