oracle学习笔记系列------oracle 基本操作之表的增删改查
?
--創建一個表 CREATE TABLE employee_souvc(id NUMBER(4),name VARCHAR2(20),gender CHAR(1),birth DATE,salary NUMBER(6,2),job VARCHAR2(30),deptno NUMBER(2) );?
?
--DESC table_name:查看表結構,看到表的列的名字,以及對應的類型,長度等 DESC employee_souvc;?
?
--DROP TABLE table_name 刪除一張表的語法 DROP TABLE employee_souvc;?
?
--DEFAULT 關鍵字 用于為給定的列(字段)設置默認值 --數據庫中字段無論是什么類型,默認值都是NULL,若使用DEFAULT指定了默認值,則使用指定的。 --NOT NULL約束 在創建表的時候可以為列添加非空約束,被約束的列在插入數據時必須給值。此列不允許為空。CREATE TABLE employee_souvc(id NUMBER(4),name VARCHAR2(20) NOT NULL,gender CHAR(1) DEFAULT 'M',birth DATE,salary NUMBER(6,2),job VARCHAR2(30),deptno NUMBER(2) );?
?
--RENAME old_name TO new_name 修改表名 --需要注意:新的表名不能是數據庫中現有的表 RENAME employee_souvc TO emp_souvc;?
?
--修改表:為表添加新的字段(列),總是在表的最后一列追加 --sysdate是一個日期的值,表示當前系統時間。 ALTER TABLE emp_souvc ADD (hiredate DATE DEFAULT sysdate);?
?
--從表中刪除一列 ALTER TABLE emp_souvc DROP (hiredate);?
?
--修改表中現有的列 ALTER TABLE emp_souvc MODIFY (job VARCHAR2(40) DEFAULT 'CLERK' );?
修改表字段時的注意事項:
1:盡量不修改字段類型。
2:字段長度盡量不要減少。
3:修改后的字段,只對新插入的數據產生影響,修改字段前的所有數據不影響。
?
--DML操作,向表中插入數據 INSERT INTO emp_souvc(id,name,salary) VALUES(1,'boss',1500);?
INSERT語句是向表中插入數據
INSERT語句指定的列對應的值會被插入到表中沒有列舉的列會插入NULL,但是,若該列有設置默認值(DEFAULT關鍵字設置的),那么就插入設置的默認值。
若某列為NOT NULL,執行INSERT語句時又沒有指定該列,那么插入會拋出違反為空約束的異常
執行INSERT語句時,若沒有指定插入任何列,那么就是全列插入,注意,給的值順序必須與表中列的順序完全一致,并且不能忽略任何一個列的值
?
?
--查詢表數據 SELECT * FROM emp_souvc;?
INSERT INTO emp_souvc(id,name,salary) VALUES(2,'tom',2500);INSERT INTO emp_souvc(id,name,salary) VALUES(3,'JERRY',3500);--事務控制: --用于提交事務。 COMMIT; --用于回滾事務。那么本次事務中所有的增刪改操作全部失效。 ROLLBACK;?
?
--TO_DATE()函數 --TO_DATE('2009-09-01','YYYY-MM-DD');INSERT INTO emp_souvc (id,name,birth) VALUES(1,'jack',TO_DATE('1990-09-01','YYYY-MM-DD'));SELECT * FROM emp_souvc;?
?
--修改表中的數據 UPDATE emp_souvc SET job='MANAGER' WHERE salary=3500;?
注意:通常情況下,更改表時,要添加WHERE來指定過濾條件,若不指定WHERE則是全表修改通常不會這樣做。
?
--從表中刪除數據 DELETE FROM emp_souvc WHERE name='tom';SELECT * FROM emp_souvc;刪除數據時更要注意,添加WHERE.否則是全表刪除。
?
TRUNCATE TABLE emp_souvc; SELECT * FROM emp_souvc;?
?
?
--序列的創建
create sequence seq_newsId increment by 1 start with 1 maxvalue 999999999;
--得到序列的SQL語句
select seq_newsid.nextval from sys.dual;
--刪除序列的SQL
DROP SEQUENCE seq_newsId;
?
轉載于:https://www.cnblogs.com/liuhongfeng/p/5294183.html
總結
以上是生活随笔為你收集整理的oracle学习笔记系列------oracle 基本操作之表的增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 辅助判卷程序项目的扩展--自动出题
- 下一篇: linux内核分析——扒开系统调用的三层