Oracle基础(三):表的管理

来源:互联网 发布:北京智慧沃家组合优化 编辑:程序博客网 时间:2024/06/13 18:54

一、数据的存储方式——表


二、数据类型
1、char(size)
1)存放字符串,最大 2000 个字符,是定长。
2)实例:
  • name  char(32) : 
    • name 这列最多只能放 32个 字符
    • 超过,就报错;如果不够,则使用空格补上
3)注意:定长
  • select name ,dump(name) from dev_user;
  • dump:显示列内容具体内容



2、varchar2(size)
1)最大 4000 个字符,是变长。
2)实例
  • name varchar2(16)
    • name 这列最多只能放 16 字符
    • 超过,就报错;如果不够,其余的空间会回收
3)注意:
  • 数据的长度是固定的,使用char,存取的速度会很快。
    • 原因在于,char是定长的,每次比较都是按定义的大小比较。
    • varchar2 是变长,大小不固定只能一个一个比较。
  • 数据长度变化的,使用 varchar2 。

3、nchar 与 nvarchar 是 unicode 编码存放
1)char 和 varchar 存放中文时,一个中文占 2 个字符空间。
2)nchar nvarchar   存放中文时,一个中文占 1 个字符空间。

4、clob
1)字符型大数据对象,最大是8TB
2)变长。

5、blob :二进制数据,可以存放图片/声音
  • 其实这些不会直接存数据库,只会存路径,然后去这个路径取。

6、数字型:Number(p,s)
1)表示:整数与小数
  • p:有效整数位,1~38。从左到右,第一个非0的数。
  • s:小数位,-86~-127。负数即保存到具体的整数位,如-1,保存到十位。
  • 变长,存储1~22个字节
  • number(5) == number(5,0)
2)实例:
  • number(5,2):5位有效位,2位小数。
    • 范围:-999.99~999.99
    • 如果数值超出了位数限制,就会被截取多余的位数。(四舍五入)
      • 575.314 -->575.31
      • 575.316 -->575.32 
  • number(5):5位整数
7、日期类型:Date 和 Timestamp
1)date:包含年月日和时分秒
  • 默认格式:day-mon-year
  • 自定义函数:使用 to_date() 函数
2)邮戳:timestamp(n):
  • 当你对数据进行更新的时候,会自动更新日期。(人,修改名字,生日变化修改)

三、建表
1、语法:
  • create table 表名 (列名 number(4),列名 varchar2(20), 列名 date)
2、实例:
  • 创建学生表 与 班级表



四、修改表
1、操作表名
1)修改表名称
  • 语法:
    • ALTER TABLE table1 RENAME TO table2;
  • 实例:
    • ALTER TABLE dev_class RENAME TO dev_class2;--修改班级表名
2、操作表列
1)添加列
  • 语法:
    • alter table table1 add (user_number VARCHAR2(2) ;
  • 实例:
    • alter table dev_student add class_id number ;--学生表添加班级号
2)删除列
  • 语法:
    • ALTER TABLE table1 DROP COLUMN user_number;
  • 实例:
    • ALTER TABLE dev_student DROP COLUMN FELLOWSHIP;--删除学生表的 fellowship 列
3)修改列的名称
  • 语法:
    • ALTER TABLE table1 RENAME COLUMN TO b;
  • 实例:
    • ALTER TABLE dev_student RENAME COLUMN name TO stu_name;--修改学生姓名列
4)修改列的类型
  • 语法:
    • ALTER TABLE MODIFY(B not null);
  • 实例:
    • ALTER TABLE dev_student MODIFY(name varchar2(30));--学生姓名 变成 varchar2(30)
3、操作注释
1)添加表注释
  • 语法:
    • comment on table table1 is '公司机构团单基础表';
  • 实例:
    • comment on table dev_student is '学生表';
2)添加列注释
  • 语法:
    • comment on column table1.base_id is '基础ID';
  • 实例:
    • comment on column dev_student.id is '学号';
4、其他
1)查看表结构
  • 语法:
    • desc 表名
  • 实例
    • desc dev_student;
2)删除表
  • 语法:
    • drop table 表名;
  • 实例
    •  drop table dev_student;

五、表的CRUD
1、Insert语句
1)语法:
  • insert into 表名 (列名,列名...) values(值,值...)
2)注意点
  • 类型相同
  • 位置对应
  • 字符需要加单引号
  • 日期类型注意转换格式,加单引号。
  • 如果给没个列都添加值,可以省略列名。
3)实例:
  •  insert into dev_student (id, name, sex, birthday, resume, class_id)
    • values (7369, 'SMITH', '男', to_date('17-12-1990', 'dd-mm-yyyy'), null, 1234);
2、Update语句
1)语法:
  •  UPDATE 表名 SET 列=exprl【WHERE 条件】
  • where 条件不加,则全表更新。
2)实例
  •  UPDATE dev_student a SET a.resume='简历' ;
3、Delete语句
1)语法:
  • delete from 表名 【where 条件】;
  • where 条件不加,则全表删除。
  • 不能删除某一列的值,只能使用update
2)实例: DELETE FROM dev_student a WHERE a.id='73694';
3)比较注意
  • delete 
    • 写日志,可以恢复。
    • 如savepoint aa; rollback to aa;
  • truncate table 表名
    • 删除表中的所有记录,表结构还在。不写日期,无法找回删除的记录。

4、Select语句
  •  SELECT * FROM dev_student ;

0 0