目錄
一主要數據類型,創建表格
- varchar -- 存放定長的字符數據,最長2000個字符;
- varchar2 -- 存放可變長字符數據,最大長度爲4000字符。
- CLOB文本類型的數據
- BLOB一般用來存放除文本類型的數據
- 創建表格
-- 創建表格 create table person( pid number(20), pname varchar(10) );
二.修改表結構
- 1.添加一列
-- 增加一列 alter table person add gender number(1);
- 2.修改列類型
-- 修改表字段類型,char表示固定長度類型 alter table person modify gender char(1);
- 3.修改列名稱
-- 修改列名稱 alter table person rename column gender to sex;
- 4.刪除一列
-- 刪除一列 alter table person drop column sex;
5.注意:如果要修改多列需使用括號
-- 修改多列類型 alter table person modify (pid number(12),PNAME VARCHAR2(11)); --添加多列 alter table test add (pid int, PNAME int); --刪除多列 alter table test drop (pid,PNAME);
三.數據的增刪改
注意:髒數據產生情況
- 1.添加一條記錄
-- 添加一條數據 insert into person(pid,pname) values(2,'張三'); -- 在java中connection事務是自動提交,此時並沒有工具爲我們自動提交 -- 如果不寫提交,此時爲髒數據 commit; -- 一般來說主鍵字段都是由序列自動生成的,不需要我們制定 -- 文章下方有序列的基本介紹
- 2.修改一條記錄
-- 修改一條數據 update person set pname = '李四' where pid=1; commit;
- 3.刪除操作
- A.刪除全部記錄
-- 刪除表中全部記錄,這表語句等同於一條一條記錄刪除 delete table person;
- B.刪除表結構
-- 刪除表結構 drop table person;
- C.先刪除表結構,在創建表結構
-- 等同於刪除表中全部記錄 -- 數據量大的情況下,並且在表中帶有索引的情況下,該操作效率其高。 -- 根據索引的特性,查詢快,刪除慢。 truncate table PERSON; -- 以上是正常情況 -- 不正常情況報錯:ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效 -- 解決方法如下: select session_id from v$locked_object; -- 根據查詢到的session_id獲取sid SELECT sid, serial#, username, osuser FROM v$session where sid = 142; -- 根據查詢到的sid和serial殺死服務 ALTER SYSTEM KILL SESSION '142,38'; --問題解決
四.序列的使用(主鍵賦值)
- 1.序列的基本介紹
-- 序列的基本使用和介紹 -- 序列主要用於id字段的自增長使用 -- 創建序列,該序列與數據表格無緊密的關係,只有邏輯關係 -- 所以只要看得出是該表格的序列即可 create sequence s_person; -- 以下爲創建序列後產生的文件
- 2.查看序列方式
-- 序列不屬於任何表格,但是可以和表格邦定。 -- 序列默認是從1開始,然後遞增。 -- 可以通過以下方式查看序列 select s_person.nextval from dual; select s_person.currval from dual; --上面的使用順序必須要正確,因爲currval表示返回當前值,但是不使用nextval是沒有值的 -- nextval從1開始遞增 -- dual:虛表,只是爲了補全語法而存在,比如上方語法根本沒有要查詢的表格,但是form字段必須要有。
- 如果先使用currval就會報錯(我這是plsql亂碼原因
- 3.完整的使用方式
-- 創建序列 create sequence s_person; -- 使用序列插入數據 insert into person(pid,pname) values(s_person.nextval,'王武'); -- 提交 commit;
4.創建序列其他擴展屬性介紹
‘[]’中括號表示可選可不選
INCREMENT BY n:每次遞增的數量,默認1
START WITH n:從哪個數量開始
MAXVALUE/MINVALUE n|NOMAXVALUE:最大值和最小值
CYCLE|NOCYCLE:表示遞歸的數據循環(這個基本不會用的,id就是爲了保證唯一,不可以循環)
CACHE n|NOCACHE:緩存,設置的n表示會在遞歸到之前先緩存多少數值
五.scott用戶介紹
- scott用戶中數據不是很多也不是很複雜,但是可以模擬各種情況
- 1.解鎖scott用戶
-- 解鎖scott用戶 alter user scott account unlock; -- 修改scott用戶密碼(其他用戶也可以使用該語句修改密碼,但是權限要足夠) alter user scott identified by tiger; -- 登陸scott用戶