1. 程式人生 > >向Oracle表中的新增資料

向Oracle表中的新增資料

一 INSERT語句 INSERT INTO table_name (column1,column2...) VALUES(value1,value2,...) 二 例項 1、向表中所有欄位新增值
  1. SQL> desc userinfo
  2. 名稱是否為空?型別
  3. -----------------------------------------------------------------------------
  4. ID NUMBER(6)
  5. USERNAME VARCHAR2
    (20)
  6. USERPWD VARCHAR2(20)
  7. EMAIL VARCHAR2(30)
  8. REGDATE DATE
  9. SQL> insert into userinfo
  10. 2 values(1,'xxx','123','[email protected]',sysdate);
  11. 已建立1行。
  12. SQL>select*
    from userinfo;
  13. ID USERNAME USERPWD
  14. --------------------------------------------------
  15. EMAIL REGDATE
  16. --------------------------------------------
  17. 1 xxx 123
  18. [email protected].com 25-6-17
2、向表中指定欄位新增值
  1. SQL> insert
    into userinfo (id,username,userpwd)
  2. 2 values(2,'yyy','123');
  3. 已建立1行。
  4. SQL>select username,userpwd from userinfo;
  5. USERNAME USERPWD
  6. ----------------------------------------
  7. xxx 123
  8. yyy 123
3、在建立表時向表中新增預設值
  1. SQL> create table userinfo1
  2. 2(id number(6,0),
  3. 3 regdate date default sysdate);
  4. 表已建立。
  5. SQL> insert into userinfo1
  6. 2 values(1);
  7. insert into userinfo1
  8. *
  9. 1行出現錯誤:
  10. ORA-00947:沒有足夠的值
  11. SQL> insert into userinfo1(id)
  12. 2 values(1);
  13. 已建立1行。
  14. SQL>select*from userinfo1;
  15. ID REGDATE
  16. ------------------------
  17. 125-6-17
4、修改表,新增預設值
  1. SQL> alter table userinfo
  2. 2 modify email default'無';
  3. 表已更改。
  4. SQL> insert into userinfo(id)
  5. 2 values(3);
  6. 已建立1行。
  7. SQL>select id,email from userinfo;
  8. ID EMAIL
  9. ----------------------------------------
  10. 1 [email protected].com
  11. 2
  12. 3
  13. SQL> insert into userinfo(id,email)
  14. 2 values(4,'aa');
  15. 已建立1行。
  16. SQL>select id,email from userinfo;
  17. ID EMAIL
  18. ----------------------------------------
  19. 1 [email protected].com
  20. 2
  21. 3
  22. 4 aa
三 複製表資料 1、在建表時複製 CREATE TABLE table_new AS SELECT column1,...|* FROM table_old 複製所有的欄位
  1. SQL> create table userinfo_new
  2. 2as
  3. 3select*from userinfo;
  4. 表已建立。
  5. SQL> desc userinfo_new
  6. 名稱是否為空?型別
  7. -----------------------------------------------------------------------------
  8. ID NUMBER(6)
  9. USERNAME VARCHAR2(20)
  10. USERPWD VARCHAR2(20)
  11. EMAIL VARCHAR2(30)
  12. REGDATE DATE
  13. SQL>select*from userinfo_new;
  14. ID USERNAME USERPWD
  15. --------------------------------------------------
  16. EMAIL REGDATE
  17. --------------------------------------------
  18. 1 xxx 123
  19. [email protected].com 25-6-17
  20. 2 yyy 123
  21. 3
  22. ID USERNAME USERPWD
  23. --------------------------------------------------
  24. EMAIL REGDATE
  25. --------------------------------------------
  26. 4
  27. aa
複製部分欄位
  1. SQL> create table userinfo_new1
  2. 2as
  3. 3select id,username from userinfo;
  4. 表已建立。
  5. SQL>select*from userinfo_new1;
  6. ID USERNAME
  7. ------------------------------
  8. 1 xxx
  9. 2 yyy
  10. 3
2、在新增時複製 複製時,新表必須已經存在。 INSERT INTO table_new [(column1,...)] SELECT column1,...|* FROM table_old
  1. SQL> insert into userinfo_new
  2. 2select*from userinfo;
  3. 已建立4行。
  4. SQL>select id from userinfo_new
  5. 2;
  6. ID
  7. ----------
  8. 1
  9. 2
  10. 3
  11. 4
  12. 1
  13. 2
  14. 3
  15. 4
  16. 已選擇8行。
  17. SQL> insert into userinfo_new(id,username)
  18. 2select id ,username from userinfo;
  19. 已建立4行。
  20. SQL>select id ,username from userinfo_new;
  21. ID USERNAME
  22. ------------------------------
  23. 1 xxx
  24. 2 yyy
  25. 3
  26. 4
  27. 1 xxx
  28. 2 yyy
  29. 3
  30. 4
  31. 1 xxx
  32. 2 yyy
  33. 3
  34. ID USERNAME
  35. ------------------------------
  36. 4