Oracle数据库学习之数据类型和表的操作「建议收藏」

2022-09-27 10:50:35 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君

Oracle的数据类型:

字符型数据类型

  • char
  • varchar
  • varchar2
  • long
  • 这几个字段之间的区别:char的长度是固定的,而varchar2的长度是可以变化的。也就是char(20)和varchar2(20)都存储”abc”,char是占用20个字符的,而varchar2是占用3个字符空间的。但是char的效率要高与varchar。这也就是平时说的以空间换效率。如果有一行经常被修改,而且每次修改的长度不相同,这回引起行迁移的问题,是数据库设计进来避免的问题,这时候就用char代理varchar2会更好。
  • 一般情况下使用varchar2

数值型:

  • number(<p>,<s>)
  • Integer
  • float
  • 一般使用number

日期类型:

date 默认格式为:DD-MON-YY

timestamp,date的扩展。

常用date

代码语言:javascript复制
--创建一张学生表(学生号,学生姓名,学生姓名,学生地址)
create table tab_stu(
       stu_id number,
       stu_name varchar2(10),
       stu_gender varchar2(10),
       stu_address varchar2(20)
);

LOB类型(存储大数据)

  • BLOB Binary Large Object 4G,二进制的大数据
  • CLOB Charset Large Object 4G 字符类型的大数据
  • 都不太使用

数据库表的命名规则:

  • 必须以字母开头。
  • 字符长度在1-30之间。
  • 只能包含A-Z,a-z,0-9,_,$和#
  • 被同一个用户拥有的对象不能有重复的名字。
  • 不能是Oracle服务器保留字。

SQL语句的分类:

  • DDL(Data Define Language 数据库定义语句)语句
    • 也就是对表的一些定义。例如 :create ,drop,alter等。
  • DML(Data Mainpulation Language 数据库操作语句)语句
    • 也就是Select,insert,update,delete等。
  • DCL(Data Control Language 数据库控制语句)语句
    • Grant(授权),Revoke(取消授权)
  • TCL(Transaction Control Language 事务控制语言)
    • savePoint(保存点)
    • rollback(回滚)
    • commit(提交)

表的创建和修改表结构:

创建一张表:

代码语言:javascript复制
--创建一张学生表(学生号,学生姓名,学生姓别,学生地址)
create table tab_stu(
       stu_id number,
       stu_name varchar2(10),
       stu_gender varchar2(10),
       stu_address varchar2(20)
);

修改表,添加字段:

代码语言:javascript复制
--修改表
--在学生表增加一个字段,学生出生日期
alter table tab_stu
add date_birth date;

修改表,将地址长度增加到50

代码语言:javascript复制
--修改表
--将地址修改成50长度
alter table tab_stu
modify stu_address varchar2(50);

修改表,删除一个字段

代码语言:javascript复制
--修改表
--删除date_birth字段
alter table tab_stu
drop column date_birth;

修改表,修改字段的名称

代码语言:javascript复制
--修改表
--修改stu_address为stu_add
alter table tab_stu
rename column stu_address
to stu_add;

修改表,修改表的名称

代码语言:javascript复制
--修改表
--修改表的名称为tab_student
rename tab_stu to tab_student; 

添加注释和查看注释

代码语言:javascript复制
--查看当前用户拥有表
select * from user_tables;
--查看注释,查看有注释的表
select * from user_tab_comments where comments is not null;
--查看注释,查看有注释的字段
select * from user_col_comments where comments is not null;

删除表和恢复表

代码语言:javascript复制
--删除表
drop table tab_stu;
--恢复表,Oracle10g之后才有
flashback table tab_stu to before drop;

彻底删除表

代码语言:javascript复制
--彻底删除表
drop table tab_stu purge;

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179218.html原文链接:https://javaforall.cn

0 人点赞