Oracle数据表的操作(CREATE TABLE、INSERT、UPDATE、DELETE)

  • Post author:
  • Post category:其他



表的创建


1、表建立的简单的语法

CREATE TABLE 表名称(
       字段名称1 字段类型 [default],
       字段名称2 字段类型 [default],
       ......
       字段名称3 字段类型 [default]

其中【default】是可选条目,default后面可以指定默认的值,意思是当你使用insert插入数据的时候,如果没有指定这一列的值,就会插入default后面的默认值。

2、表复制的简单语法

CREATE TABLE 表名称 AS (子查询)

如果现在子查询些的是:select * from emp,表示将表结构和表内容一起复制

如果现在子查询些的是:select * from emp where 1=2,加入了一个永远不可能成立的条件,则此时表示的是只复制表结构,但是不复制表里边的数据

表的删除

DROP TABLE 表名称;


二、


1、创建学生表

CREATE TABLE STUDENT(
      sid       NUMBER,
      sname     VARCHAR2(20) ,
      sage      NUMBER DEFAULT 20,
      sbirthday DATE,
      saddress  VARCHAR2(200)
);

2、插入数据

begin
--指定所有列以及所有列的值
  insert into student (sid, sname, sage, sbirthday, saddress) values (1, '张三', 10, to_date('1994-01-20', 'yyyy-mm-dd'), '北京');
--指定部分列以及部分列的值(sage没有指定,,但是创建表的时候指定了DEFAULT 20,所以数据插入完成后,李四的年龄应该为20.)
  insert into student (sid, sname, sbirthday, saddress) values (2, '李四', to_date('1994-05-01', 'yyyy-mm-dd'), '上海');
--不指定列的时候values需要指定所有的列值,否则报错
  insert into student values (3, '王五',30,to_date('1994-05-01', 'yyyy-mm-dd'), '广州');
--将emp表中的empno,ename列的数据查询出来插入到student表的sid,sname列,注意如果不加条件的话,插入的是所有数据
  insert into student (sid,sname) select empno,ename from emp;
--上例中的emp表也可以变成一个子查询
  insert into student (sid,sname) select empno,ename from (select * from emp);
  commit;
end;

3、更新数据

注意:更新数据一定要指定条件,否则就会更新此表里边的所有数据

--更新张三的年龄为20
update student set sage=20 where sname='张三';
--设置saddress字段的内容为sid和sname的拼接
update student set saddress=sid||sname
--设置saddress字段的内容为sid和sname的拼接,并以+分割
update student set saddress=sid||'+'||sname

4、删除数据

注意:删除数据也要指定条件,否则会删除掉所有的数据

delete from student where sname='张三';



版权声明:本文为matchbox1234原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。