datagrip怎么查看表结构_[基础篇]-数据库-03-数据库的基本操作2-管理表结构

本文介绍了如何在Datagrip中管理Oracle数据库的表结构,包括创建用户、理解表结构和数据类型、新建表、修改表结构、清空表、删除表、更改对象名称以及约束的管理。内容涵盖了CREATE TABLE语句、ALTER TABLE操作、约束的类型如主键、唯一键、非空、外键和检查约束,并提供了多个案例分析和SQL参考。
摘要由CSDN通过智能技术生成

数据库的基本操作2-管理表结构

管理表结构(DDL)

1.创建自己的用户

/*
  创建自己的普通用户
  a.拥有管理员权限管理员,以管理员身份登录
  b.创建自己的用户(设置用户名、密码)
  c.赋予普通用户权限
  管理员登录选择’sysdba‘
  普通用户登录选择’normal‘
*/
--以管理员身份登录,创建新用户,并赋予用户权限
create user hzgg identified by "hzgg"
grant connect,resource to hzgg
--回收权限
revoke connect,resource from hzgg
--删除用户
drop user hzgg cascade

2.表结构和数据类型

选中指定的表,右键选择查看,能够查阅到有关表格的详细信息

7515341b18c8c360f3a9be929a574618.png

数据类型

描述

2335d68caec136917cf2d3284b30635e.png

3.新建表(Create Table)

建表规则

表名和列名

  • 必须以字母开头
  • 必须是1-30个字符
  • 只能包含A-Z a-z _$ 和#
  • 不能和用户定义的其他对象重名
  • 不能是oracle 的关键字
  • Oracle默认存储都是大写的

3903a117a03c469d5294f8f2b719b799.png

CREATE TABLE 语句语法

b444da2a3071d16c9ac41ea1fdbb3be0.png
  • 必须指定:
    • 表名
    • 列名, 数据类型, 数据类型的大小
  • 要求必须具备以个资源才可以建表:
    • CREATE TABLE权限
    • 存储空间
create table student(
     sid number(10),        --学生id
     sname varchar2(20),    --学生姓名
     address varchar2(30),  --学生地址
     note1 varchar2(200),   --冗余字段1
     note2 varchar2(200)    --冗余字段2
     );
select * from student;

115455093b872ed7f61d0186c4a2e0e8.png

使用子查询创建表

  • 使用 AS subquery 选项,将创建表和插入数据结合起来

9e47f5db68efbcab330001c5eed4cd1c.png
  • 指定的列和子查询中的列要一一对应
  • 通过列名和默认值定义列
  • 使用子查询创建表举例

--利用现有的表创建新的表(用于屏蔽原有表的部分信息,亦可用视图实现)

create table mytable
as
select s.sid,s.sname,s.address
from student s;
select * from mytable;

556def43f8021a648e8a36b8ba4ca612.png

4.修改表结构(Alter Table)

4.1语法说明

de3723ed32cc93fc829d8be7f74ac126.png

4.2示例

追加一个新列

--1.增加新的列
alter table student add(password varchar2(20));

修改一个列

--2.修改一个已有的列(此处的修改仅仅只是修改列的数据类型)
alter table student add(descr varchar2(20));
alter table student modify(descr varchar2(100));
--修改列的名称(涉及重命名)
alter table student rename column note1 to email;

删除一个列

--3.删除一个列
alter table student drop column note2;

5.清空表(Truncate)

Truncate关键字删除表中所有的数据,释放表空间,但表依然存在的

--4.清空表的数据(只是清空数据,而不删除表的结构)
--insert into mytable  values(1,'小李','杭州');
--形式1:truncate table 表名
truncate table mytable;
select * from mytable;
--形式2:delete 表名
delete mytable;

6.删除表(Drop Table)

drop关键字实现的是将数据和表结构都删除掉,且所有的涉及到的索引全部被删除

truncate清空表仅仅是清空数据 表结构依然存在。清空表的时候,所有运行的相关事务都会被自动提交

--5.删除表(删除表的数据、表的结构、表的索引)
drop table mytable;

7.改变对象的名称

  • 执行RENAME语句改变表, 视图, 序列, 或同义词的名称
  • 必须是对象的拥有者
--重命名表、序列、视图、或是同义词
rename student to stu;

8.约束

约束说明

  • 约束是表一级的限制
  • 如果存在依赖关系 约束可防止错误数据的删除
  • 约束的类型
  • Primary key 主键约束
  • Unique key 唯一约束
  • Not null 非空约束
  • Foreign key 外键约束
  • Check 检查约束
  • 约束的规则:
  • 用户可以自定义约束,使用 oracle server的sys_cn格式命名
  • 约束创建的时机
  • 创建表的时候,同时创建约束
  • 表结构创建完成后, 再去添加约束
  • 约束可以定义在列一级,或者是表一级
  • 通过数据字典查询约束
  • 约束按照定义位置划分
    • 表级约束: 可以将定义完成表之后再去定义约束,同时可以在多个字段上定义
    • 列级约束: 在定义表的时候就必须定义,这个约束只能定义在一个字段上
  • 约束定义名称格式

非空约束     NN_表名_列名
  唯一约束     UK_表名_列名
  主键约束     PK_表名
  外键约束     FK_表名_列名
  条件约束     CK_表名_列名
  默认约束     DF_表名_列名

约束案例分析

  • 主键约束Primary key
  • 主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符
  • (主键约束要求对应列满足非空、唯一两个条件)
  • 主键约束可以是列级约束,也可以是表级约束
  • 唯一约束Unique key
  • 唯一性约束唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的
  • 唯一性约束可以是表级约束,也可以是列级约束 ,可以在定义表的时候定义约束,也可以定义完成后再定义约束,并且可以同时在多个字段上定义
  • 非空约束Not null
  • 非空约束只能是列级约束,只能在定义表的时候去定义 并且不能同时定义在多个字段上
  • 外键约束Foreign key
  • 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的
  • 外键约束可以是列级约束,也可以是表级约束
  • 检查约束Check
  • 检查约束是列级约束,也是表级约束 定义每一行必须满足check 的条件

案例分析1

创建表格

/*
   创建teacher表:
   tid   教师id         -- 主键  
   tname 教师姓名       --not null
   t_birthday 教师生日  
   要求定义t_birthday不为空,约束名称为t_birthday_nn
*/
create table teacher(
       tid number(10) primary key,  --主键
       tname varchar2(20) not null, --非空
       t_birthday date constraint t_birthday_nn not null
 --为列t_birthday创建非空约束,约束名称为t_birthday_nn
);
select * from teacher;

845478c0d879500603066bf6bfff80e1.png

查看当前创建的约束,可以通过指令查看,也可直接查看创建的表的相关信息

方式1:通过查询数据字典进行查阅-->“user_constranits”

--查阅数据字典,查看相应的索引
--1.查询当前用户定义的所有约束:user_constrains
select *
from user_constraints
where table_name = 'TEACHER';
--p:主键约束
--R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值