Oracle学习笔记(3)——表

认识表:

表都会存放在Oracle数据库的表空间里面,表是存储数据的基本单位。也就是说我们要把我们的数据存储在表中。

在Oracle数据库中表是一个二维结构(行和列)。

表,有一些约定:
1、每一列数据必须具有相同数据类型。
2、列名唯一。
3、每一行数据的唯一性

数据类型:

  • 字符型
    • CHAR(n)、NCHAR(n)  : NCHAR(n)采用Unicode编码,一般用于存储汉字的比较多。CHAR(n)中n最大值为2000,NCHAR(n)中n最大值为1000
    • VARCHAR2(n)、NVARCHAR2(n):可变长度的数据类型。NVARCHAR2(n)采用Unicode编码,一般用于存储汉字的比较多。VARCHAR2(n)中n最大值为4000,NVARCHAR2(n)中n最大值为2000
  • 数值型
    • NUMBER(p,s):很常用。p有效数字,s小数点后的位数。eg:NUMBER(5,2):有效数字5为,保留2位小数,如123.45
    • FLOAT(n)
  • 日期型
    • DATE:很常用。DATE类型表示范围:公元前4712年1月1日到公元9999年12月31日。DATE可以直接精确到秒
    • TIMESTAMP:时间戳类型
  • 其他类型
    • BLOB:能够存放4GB的数据,以二进制的形式存放。
    • CLOB:能够存放4GB的数据,以字符串的形式存放。

管理表:

  • 创建表:
要求:同一个用户(用户:指登录Oracle数据库的那个用户)下,要求表名是唯一的。
语法:
CREATE TABLE table_name
(
column_name datatype , ...
)
练习:创建用户信息表:
所需字段:       编号    用户名    密码   邮箱   注册时间
创建表:
create table userinfo
(
id number(6,0),
username varchar2(20),
userpwd varchar2(20),
email varchar2(30),
regdate date
);
查看表结构:
desc userinfo
Oracle学习笔记(3)——表_第1张图片
Oracle学习笔记(3)——表_第2张图片

  • 修改表:
修改表结构,而不是修改表里面的数据。
  • 添加字段
    • ALTER TABLE table_name ADD column_name datatype;
    • 向userinfo表中添加 remarks 字段
      • alter table userinfo add remarks varchar2(500);
                   Oracle学习笔记(3)——表_第3张图片
  • 更改字段数据类型(最好在表中没有数据的情况下修改)
    • ALTER TABLE table_name MODIFY column_name datatype;
    • 将userinfo表中 remarks 字段的长度变为400
      • alter table userinfo modify remarks varchar2(400);
    • 将userinfo表中 userpwd 字段的类型更改为数值型
      • alter table userinfo modify userpwd number(6,0);
                           
                           Oracle学习笔记(3)——表_第4张图片
  • 删除字段
    • ALTER TABLE table_name DROP COLUMN column_name;
    • 删除userinfo表中 remarks 字段
      • alter table userinfo drop column remarks;
Oracle学习笔记(3)——表_第5张图片
  • 修改字段名
    • ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
      • 将userinfo表中 email字段的名字改为new_email;
        • alter table userinfo rename column email to new_email;
    Oracle学习笔记(3)——表_第6张图片
  • 修改表名
    • RENAME table_name TO new_table_name;
      • 将userinfo表名更改为new_userinfo
        • rename userinfo to new_userinfo;
Oracle学习笔记(3)——表_第7张图片
  • 删除表:
方法一:TRUANCATE TABLE table_name;
删除表中的全部数据,不删除表及其表的结构。比DELETE删除的速度快。
Oracle学习笔记(3)——表_第8张图片
                    方法二: DROP TABLE table_name;
                    删除表中的数据及整个表的结构。
    
操作表中的数据:
添加数据:
  • INSERT语句
    • INSERT INTO table_name(column1,column2,...) values (value1,value2,...);
  • 操作实例
    • 向表中所有字段添加值
    • 向表中指定字段添加值
      • insert into userinfo(id,username,userpwd) values(2,'yyy','123');
    • Oracle学习笔记(3)——表_第9张图片


  • 向表中添加默认值
    • 创建表的时候,给字段添加默认值
      • create table userinfo1(id number(6,0),regdate date defalut sysdate);
      • insert into userinfo1 values(1);报错,没有足够的值。
      • insert into userinfo1(id) values(1);正确
    • Oracle学习笔记(3)——表_第10张图片
  • 修改已创建的表,设置某些字段的默认值
    • alter table userinfo modify email default '无';
Oracle学习笔记(3)——表_第11张图片
  • 复制表数据
    • 在建表时复制
      • CREATE TABLE table_new AS SELECT column1,...|* FROM table_old;
        • create table userinfo_new as select * from userinfo;复制全部字段数据
        • create table userinfo_new1 as select id,username from userinfo;复制部分字段数据
      • Oracle学习笔记(3)——表_第12张图片
  • 在添加时复制
    • INSERT INTO table_new [(column1,...)] SELECT column1,... | * FROM table_old;
      • insert into userinfo_new select * from userinfo;
      • insert into userinfo_new (id,username) select id,username from userinfo;
修改数据:
  • UPDATE语句
    • UPDATE table_name SET column1=value1,... [WHERE conditions];
  • 操作实例
    • 无条件更新
      • update userinfo set userpwd='111111';
      • update userinfo set userpwd='111',email='[email protected]';
    • 有条件更新
      • update userinfo set userpwd='123456' where username='xxx';
Oracle学习笔记(3)——表_第13张图片
Oracle学习笔记(3)——表_第14张图片
删除数据:
  • DELETE语句
    • DELETE FROM table_name [WHERE conditions];
  • 操作实例
    • 无条件删除
      • create table testde1 as select * from userinfo;首先创建一个测试删除表testdel
      • delete from testdel;
    • 有条件删除
      • delete from userinfo where username='yyy';
Oracle学习笔记(3)——表_第15张图片

你可能感兴趣的:(oracle)