Oracle 创建表详解(create table)

(4) 2024-04-26 14:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Oracle 创建表详解(create table),希望能够帮助你!!!。

文章目录

  • 1 概述
  • 2 语法
    • 2.1 创建表 create table
    • 2.2 修改表 alter table
    • 2.3 删除表 drop table
    • 2.4 清空表 truncate table
    • 2.5 查询表、列、备注信息
  • 3 扩展
    • 3.1 Oracle 范式详解(3NF)
    • 3.2 Oracle 约束详解(constraints)

1 概述

1. 表:用于 '存储数据' -- 是我们最常见的数据库对象
2. 表设计注意事项
   (1) 表设计时,尽量遵从 '第三范式(3NF)'
   (2) 名称不能超过 30 个字符  -- 超过会报错
   (3) 名称只能以 '字母' 大头,可由'数字''_''$''#' 组成

 
 
 
 

2 语法

2.1 创建表 create table

-- 创建表: student_info 属主: scott (默认当前用户)
create table scott.student_info (
  sno         number(10) constraint pk_si_sno primary key,
  sname       varchar2(10),
  sex         varchar2(2),
  create_date date
);
-- 添加注释
comment on table scott.student_info is '学生信息表';
comment on column scott.student_info.sno is '学号';
comment on column scott.student_info.sname is '姓名';
comment on column scott.student_info.sex is '性别';
comment on column scott.student_info.create_date is '创建日期';
-- 语句授权,如:给 hr 用户下列权限
grant select, insert, update, delete on scott.student_info to hr;

 
 
 
 

插入验证数据:

-- 插入
insert into scott.student_info (sno, sname, sex, create_date)
values (1, '张三', '男', sysdate);
insert into scott.student_info (sno, sname, sex, create_date)
values (2, '李四', '女', sysdate);
insert into scott.student_info (sno, sname, sex, create_date)
values (3, '王五', '男', sysdate);
-- 修改
update scott.student_info si
   set si.sex = '女'
 where si.sno = 3;
-- 删除 
delete scott.student_info si where si.sno = 1; 
-- 提交
commit; 
-- 查询
select * from scott.student_info;

 
 
 
 

2.2 修改表 alter table

1. '增加' 一列或者多列
   alter table scott.student_info add address varchar2(50);
   alter table scott.student_info add (id_type varchar2(2), id_no varchar2(10));
2. '修改' 一列或者多列
   (1) 数据类型
   alter table scott.student_info modify address varchar2(100);
   alter table scott.student_info modify (id_type varchar(20), id_no varchar2(20));
   (2) 列名
   alter table scott.student_info rename column address to new_address;
   (3) 表名
   alter table scott.student_info rename to new_student_info ;
   alter table scott.new_student_info rename to student_info;   
3. '删除' 一列或者多列,删除多列时,不需要关键字 column
   alter table scott.student_info drop column sex;
   alter table scott.student_info drop (id_type, id_no);

 
 
 
 

2.3 删除表 drop table

-- 删除表结构
drop table scott.student_info;

 
 
 
 

2.4 清空表 truncate table

-- 清空表数据
truncate table scott.student_info;

 
 
 
 

2.5 查询表、列、备注信息

权限从大到小: 'dba_xx' > all_xx > user_xx ('dba_xx' DBA 用户才有权限)
1. 查询表信息       select * from dba_tables; -- all_tables、user_tables
2. 查询表的备注信息  select * from dba_tab_comments;
3. 查询列信息       select * from dba_tab_cols t order by t.column_id;
4. 查询列的备注信息  select * from dba_col_comments;

 
 
 
 

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复