Oracle基础-管理表与操作表数据

管理表与操作表的数据

  • 认识表
  • 表字段的数据类型
  • 创建表
  • 修改表
  • 删除表
  • 表 - 添加数据
  • 表 - 复制数据
  • 表 - 修改数据
  • 表 - 删除数据

认识表

  • 基本存储单位
  • 二维结构
  • 行(记录)和列(域或者字段)

约定

  • 每一列数据必须具有相同的数据类型
  • 列名唯一
  • 每一行数据的唯一性

表字段的数据类型

  • 字符型
  1. CHAR(n)、NCHAR(n) 不可变长度类型
    NCHAR是按照Unicode格式存放数据
    CHAR的n最大值为2000、NCHAR的n最大值为1000
  2. VARCHAR2(n)、NVARCHAR2(n) 可变长度类型
    VARCHAR2的n最大值为4000、NVARCHAR2的n最大值为2000
  • 数值型
  1. NUMBER(p,s) p是有效数字,s是小数点后的位数
    例如NUMBER(5,2)是指有效数字5位,保留2位小数,如123.45
  2. FLOAT(n)
  • 日期型
  1. DATE 范围:公元前4712年1月1号到公元9999年12月31号,精确到秒
  2. TIMESTAMP: 精确到毫秒
  • 其他类型
  1. BOLB:二进制存放,最大4G
  2. CLOB :字符存放,最大4G

创建表

  • 所需字段
  • 字段的数据类型

语法
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
);

修改表

  • 添加字段
    ALTER TABLE table_name ADD column_name datatype;
    例:ALTER TABLE userinfo ADD remarks varchar2(500);

  • 更改字段数据类型
    ALTER TABLE table_name MODIFY column_name datatype;
    可以同时修改数据类型和长度
    例:ALTER TABLE userinfo MODIFY remarks varchar2(400);
    ALTER TABLE userinfo MODIFY userpwd number(6,0);

  • 删除字段
    ALTER TABLE table_name DROP COLUMN column_name;
    例:ALTER TABLE userinfo DROP COLUMN remarks;

  • 修改字段名
    ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
    例:ALTER TABLE userinfo RENAME COLUMN email TO new_email;

  • 修改表名
    RENAME table_name TO new_table_name;
    例:RENAME userinfo TO new_userinfo;

删除表

  • TRUNCATE TABLE table_name;
    删除表的全部数据,并没有将表删除;也叫截断表。
  • DROP TABLE table_name;
    删除表的全部数据和表自身。
    例:DROP TABLE new_userinfo;

表 - 添加数据

INSERT语句
INSERT INTO table_name (column1,column2…) VALUES(value1,value2…);
注:value的数量和数据类型需要和column指定的要一致

  • 向表中所有字段添加值
    INSERT INTO userinfo VALUES(1,‘xxx’,‘123’,‘[email protected]’,sysdate);
  • 向表中指定的字段添加值
    INSERT INTO userinfo VALUES(2,‘yyy’,‘123’);
  • 向表中添加默认值
    CREATE TABLE table_name
    (
    column_name datatype DEFAULT xxx ,…
    );
    例子:
    CREATE TABLE userinfo1(
    id number(6,0),
    regdate date DEFAULT sysdate
    );

表 - 复制数据

在建表时复制
CREATE TABLE table_new AS SELECT column1,xxx FROM table_old;

注:其中column是需要复制的字段
例子:
CREATE TABLE userinfo_new AS SELECT * FROM userinfo;
CREATE TABLE userinfo_new1 AS SELECT id,username FROM userinfo;

在添加时复制
INSERT INTO table_new [(column1,…)] SELECT column1,… FROM table_old;
其中table_new表需要存在,然后将table_old表的数据追加到table_new上

例子:
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’;

表 - 删除数据

DELETE语句
DELETE FROM table_name [WHERE conditions];

  • 无条件删除
    DELETE userinfo;

  • 有条件删除
    DELETE userinfo WHERE username=‘yyy’;

你可能感兴趣的:(Oracle)