一.创建表

商品种类表

drop table category

create table category(

cid number(4) primary key,

cname varchar2(100),

cdesc varchar2(400)

)

二.常见的字段类型5种

1. varchar2(20) 可变长度字符串 最长为20个字节 如果不够20个字节

例如插入 ‘aaa‘ 只占3个字节 解决空间 查询的时候效率低

最长 4k

2. char(20) 定长字符串

如果该字段插入的值 不到20个字节 也会占用20个字节的空间 浪费空间 查询效率高

最长 2k

3. long 变长字符串

2gb

4. number(8,3) 数值类型

5. date 日期类型

create table 表名(

字段 字段类型 约束

)

6种约束

一. 主键约束

primary key

create table category(

cid number(4) primary key, --字段级约束

cname varchar2(100),

cdesc varchar2(400)

)

特点: 非空且唯一, 使用主键来标示唯一的一条记录

每张表都要有一个主键

使用主键是为了保证 实体完整性... 数据应该是完整的

*如何创建组合主键

create table category(

cid number(4),

cname varchar2(100),

cdesc varchar2(400),

constraint pk_cname_cdesc primary key(cname,cdesc) --表级约束

)

2. 非空约束

not null

create table category(

cid number(4) primary key,

cname varchar2(100),

cdesc varchar2(400) not null

)

3. 唯一约束

unique

create table category(

cid number(4) primary key,

cname varchar2(100) unique,

cdesc varchar2(400)

)

4. 检查性约束

check

create table student(

sno varchar2(10) primary key,

name varchar2(20),

age number(3),

constraint check_age check(age>=0 and age<=120)

)

5. 默认约束

默认值 某个字段设置了默认约束以后 不插入任何值 取的是默认值

default

create table student(

sno varchar2(10) primary key,

name varchar2(20),

age number(3),

grade number(1) default 1,

constraint check_age check(age>=0 and age<=120)

)

--grade字段不插入值 默认是1

insert into student(sno,name,age) values(‘2‘,‘赵英龙‘,22)

insert into student(sno,name,age) values(‘2‘,‘赵英龙‘,22,null);--插入null就是null

6. 外键约束

主键约束是为了保证数据的 实体完整性

外键约束是为了保证数据的 参照完整性

create table product(

pid number(10) primary key,

pname varchar2(50),

pdesc varchar2(500),

cid number(4),

constraint fk_product_cid_category_cid foreign key(cid) references category(cid)

)

(1) 向从表中插入数据的时候 需要先从主表中检查一下 有没有与之对应的记录

如果有 可以插入,如果主表中没有与之对应的记录 无法插入

违反完整性约束条件 未找到父项关键字

(2) 从主表中删除记录的时候,需要先从 从表中查找有没有与之对应的记录 如果有则不能删除。

delete from category where cid=1

违反完整性约束条件 已找到子记录

如果想删除cid为1的商品种类 需要先把从表中(product表) cid为1的记录都删除 才可以删主表的记录

**************************************级联删除***********************************************

--级联删除

create table product(

pid number(10) primary key,

pname varchar2(50),

pdesc varchar2(500),

cid number(4),

constraint fk_product_cid_category_cid foreign key(cid) references category(cid) on delete cascade

)

删除cid=1的商品种类时 会级联把 cid为1的product记录也删除

oracle 创建表中又有表,oracle创建表相关推荐

  1. 《Oracle SQL疑难解析》——1.6 批量地从一个表中复制数据到另一个表

    本节书摘来自异步社区出版社<Oracle SQL疑难解析>一书中的第1章,第1.6节,作者: [美]Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以 ...

  2. oracle复制另一个字段,【学习笔记】Oracle存储过程 表中列不同时动态复制表中数据到另一个表中...

    天萃荷净 分享一篇关于Oracle存储过程实现表之间数据复制功能.两表中列不同,动态的将一表中的数据复制到另一个表中案例 因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复 ...

  3. 如何更新mysql数据库字段_如何使用MySQL一个表中的字段更新另一个表中字段

    1,修改1列 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2,修改多个列 update ...

  4. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  5. 点滴积累【C#】---检验编号在本表中自动生成,与其他表无关

    检验编号在本表中自动生成,与其他表无关 效果: 描述:在本表中自动生成编号,与其他表无关. 调用: 1 protected void Page_Load(object sender, EventArg ...

  6. java实现将A表数据转移到B表_解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表(merge into)...

    作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table-name] [rename your table h ...

  7. oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同...

    使用场景:知道某个字段的值(例如:"张三"),需要查询在其他某个表中有没有相同的值,常用于搜索关联表等. 对于oracle数据库: Pl\sql没有搜索功能,需借助存储过程,完成搜 ...

  8. oracle表中怎么去重复,oracle去掉表重复数据

    今天在做项目过程中,碰到数据库表存在重复记录,显示的时候需要去掉重复的数据.想了老半天,最终用rank() over (partition by 分组字段 order by 排序字段 顺序) 解决了此 ...

  9. 创建商品表中插入一条数据/图书表中新增一条记录/学生表中,要求查询姓张,并且年龄在18到25岁之间的学生/查询article文章表

    在以上创建的商品表中插入一条数据:名称为"学生书包".价格18.91.库存101.描述为空 在图书表中新增一条记录:Java核心技术.作者"Cay S. Horstman ...

  10. 以A表中的值快速更新B表中记录的方法

    1.问题描述 有两张表,A表记录了某些实体的新属性,B表记录了每个实体的旧属性,现在打算用A中的属性值去更新B中相同实体的旧属性,如下图所示: 类似这样的需求,怎样做比较高效呢? 2.制作模拟数据   ...

最新文章

  1. C语言中positive用法,sprintf - C语言库函数
  2. Centos6.5搭建java开发环境
  3. 分级加权打分算法 java_推荐算法炼丹笔记:令人着迷的时间动态CF算法
  4. redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍
  5. java编程打印以下图形,分享java打印简单图形的实现代码
  6. linux中的ip地址范围,linux – ip地址范围参数
  7. 计算机网络上机作业,204计算机网络上机大作业.docx
  8. 路飞学城Python-Day75
  9. CentOS配置snmp
  10. android与php登录,Android开发中使用PHP服务器怎么实现一个登录功能
  11. 方正伪GBK(字体名称中有GBK且字数不足21003)字体列表及使用注意事项
  12. SANYUKI:净化空气,顺便美颜?
  13. b站会员转正自动答题
  14. 多线程写法 与老虎机的制作
  15. unity水特效与标准资源包的下载导入
  16. 晚风心里吹-粤语歌词谐音
  17. 趣味题系列(6):帽子戏法
  18. storm mysql trident_Storm入门(十三)Storm Trident 教程
  19. 不会就要问,求大神解决一下安装linux不认内置硬盘的问题
  20. 什么是mysql存储过程_mysql 存储过程

热门文章

  1. WPF的自定义控件 依赖属性,DependencyProperty 路由事件RoutedEvent
  2. mysql复制的配置
  3. Less 命令技巧,从底部网上看
  4. Python这么热,要不要追赶Python学习热潮?
  5. Mac及Xcode常用快捷键
  6. ubuntu12.04安装及配置过程详解1
  7. php中OpenFlashChart使用之线性图表使用例子
  8. NSubstitute完全手册(八)替换返回值
  9. Javascript中大括号“{}”的多义性
  10. 最近面试,笔试题中的一道sql题