建表

1.建表语句语法
create table [schema.]table_name(
字段名 字段类型 [默认值] [列级约束],
字段名 字段类型 [默认值] [列级约束],
字段名 字段类型 [默认值] [列级约束],
....
[表级约束], [表级约束], [表级约束]
);

2.schema
用来指定表创建到哪个用户下
创建s_test表到lucy用户下?
create table lucy.s_test(...);
此操作需要权限。
create table 表名(..);
不加Schema默认创建到当前用户下

3.命名规则
1)必须以字母开头
2)长度必须在1-30个字符之间
3)必须以字母、数字、下划线、$、#组成
4)表名不可重复
5)不能使用oracle中的保留字

4.oracle中的数据类型
1)字符串类型
varchar 可变长字符串
任何一个数据库中都可以使用的可变长字符串
varchar2 可变长字符串
是oracle特有的可变长字符串
比较节省内存
检索效率较低
适用于字段值长度不定或差距较大的字段
比如:备注
char(长度) 不可变长字符串
浪费内存
检索效率很高
适用于长度固定的字段 例如:电话 身份证号
cell_phone char(11)
clob 大数据字符串 2GB

在不同的字段类型存储'Hello'字符串,
所占用内存空间如下:
varchar2(10) 占用5个内存
char(10) 占用10个内存

2)数值类型
number 定义一个整数类型字段
number(p,s) 定义一个小数字段
p:总长度 s:小数点后的位数
整数位数 = p - s
number(p) 定义一个定长的整数类型
例如:number(10)最大可存储的数字为9999999999。

有一个字段要求整数部分9位,小数部分3位,
A. number(9,3)
b. number(12,3)
c. number(6,3)
3)日期类型
date
4)二进制类型
blob
保存二进制数据。例如,向数据库中保存图片、音乐、视频等。

5.默认值
1)默认值的作用:
当某个字段配置了默认值之后,
如果插入数据时未向该字段插入数值,
则会自动取默认值作为该条数据的该字段值。

2)语法:
字段名 字段类型 default 默认值
例如有表和字段如下
s_student(id,name,age,dob);
声明age字段默认值为20?
age number default 20

给dob字段声明默认值为2000年1月1号?
dob date default '01-1月-00'
dob date default to_date('2000-01-01','YYYY-MM-DD')

6.列级约束
1)not null 非空约束
字段名 字段类型 not null
2)unique 唯一性约束
插入到该字段的值是表中该字段唯一的值。
字段名 字段类型 unique,
声明电话号码为唯一性约束
cell_phone char(11) unique,
3)primary key 主键约束 实体性完整性约束
表中某一条数据的唯一标识
特点:非空唯一
字段名 字段类型 primary key,
4)foreign key 外键约束 参照性完整性约束
字段名 字段类型 references 表名(主键字段名),
外键所依赖的字段必须是那张表的主键
5)check 选择性约束/检查性约束
字段名 字段类型 check( 判断条件 )
= > < >= <= between in
声明年龄字段必须小于100?
age number check( age between 0 and 100 )
声明性别字段必须在‘男’和‘女’之间选择?
gender char(10) check( gender in('男','女') )
判断条件中出现的字段必须是本字段

7.给列级约束起名字

如何查看表中添加了哪些列级约束?
当前用户下添加的所有的列级约束信息都会
存放到一张user_constraints表当中。

查询当前用户下有哪些列级约束?
select constraint_name
from user_constraints;

如果不给约束起名字的话,系统会默认给他起一个名字
SYS_Cn
n代表某个数字
自己给约束起名字会代替系统默认的约束名

查询某一张表的约束?
select constraint_name
from user_constraints
where table_name = 'TEST';//表名要大写

创建一张表:
create table test(
id number primary key,
name varchar2(10) not null,
phone char(11) unique);

给列级约束起名的语法:
在字段声明之后、约束类型声明之前
加上constraint 约束名;

例如:给主键字段加约束名
id number constraint 约束名 primary key,
约束名的规范(建议):
表名_字段名_约束类型的简写
主键:PK
外键:FK
非空:NN
选择性/检查性:CK
唯一性:UK unique

一个字段可以加多个列级约束
name varcar2(10) not null unique,

给s_stu表中的id添加主键约束并且给约束起名?
create table s_stu(
id number constraint s_stu_id_pk primary key,
.....
);
8.表级约束
列级约束和表级约束的关系:
列级约束中除了not null之外的约束都可以使用表级约束去实现。

除了列级约束可以定义的内容之外,表级约束还可定义:
联合主键
联合外键
联合唯一键

顾客表(顾客id,顾客姓名,顾客收货地址.....)
商品表(商品id,商品名,商品单价,商品描述.....)

桥表:
订单表(顾客id,商品id,商品数量)
1 1 10
1 5 20
2 3 10
1 1 20
create table s_shopcar(
cus_id number,
product_id number,
num number
);
表级约束:
constratin s_shopcar_cus_id_product_id_pk primary key(cus_id,product_id)

create table [schema.]table(
字段名 字段类型 [默认值] [列级约束],
字段名 字段类型 [默认值] [列级约束],
字段名 字段类型 [默认值] [列级约束],
....
[表级约束], [表级约束], [表级约束]
);
表级约束语法 constraint 约束名 约束类型(字段)

给id字段加上一个主键约束?
列级约束:
id number constraint test_id_pk primary key,
表级约束:
create table test(
id number,
name varchar2(10),
age number,
eid number //依赖于s_emp的id主键
constraint test_id_pk primary key(id),
constraint test_name_uk unique(name),
constraint test_eid_fk foreign key(emp_id) references 表名(主键)
);

删除表:
drop table 表名;

Oracle学习笔记<6>的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  3. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  4. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  5. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  6. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  7. oracle学习笔记(一)用户管理

    --oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...

  8. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

  9. Oracle 学习笔记 11 -- 视图 (VIEW)

    本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...

  10. oracle学习笔记1(环境搭建)

    学习的开始先剧透一下,本人有点笨,本来想用oracle vbox,装个red hat+oracle,但是虚拟机一直报错,0x00000000内存不能written.所以便想到其他的办法,刚好接触了go ...

随机推荐

  1. java、javaw和javaws的区别

    java.javaw和javaws的区别: 首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到.通 ...

  2. 【JAVA】 01-Java基础知识

    链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 测试 01-Java基础知识 一.数据类型 基本类型 包装类型 缓存池 二.String 概览 不可变的好处 S ...

  3. JS中的Boolean数据类型

    Boolean布尔数据类型 只有两个字面值:true和false,这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0. 把其他类型转换为布尔类型 只有0.NaN.''.n ...

  4. SpringCloud Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded

    出现此问题,有可能是spring cloud 与spring boot 版本不匹配引发的问题,此次用的版本是:Finchley.RC1 经过一番关键字查找,发现spring cloud 与spring ...

  5. shell PATH示例

  6. 13-H.264编码解码器的无线应用:1080P60 3D无线影音传输器

    H.264编码解码器的无线应用:1080P60 3D无线影音传输器 一.应用领域 家庭媒体娱乐中心 新闻现场采访 无线3D投影机 高清视频会议终端无线延长器 教学,医疗示教 考古,高档商业区域,监狱等 ...

  7. ORA-01555 快照过旧

    用户user1对表进行了更新操作,用户user2在user1还没有进行提交前读表中数据,而且是大批量的读取(打个比方:耗时3分钟)而在这3分钟内user1进行了提交操作,那又会产生什么影响呢?这个时候 ...

  8. poj 1845 Sumdiv (等比求和+逆元)

    题目链接:http://poj.org/problem?id=1845 题目大意:给出两个自然数a,b,求a^b的所有自然数因子的和模上9901 (0 <= a,b <= 50000000 ...

  9. springboot打包成jar文件无法正常运行,解决办法已经找到

    1.用intellij idea 创建了一个springboot的项目,前期都运行的好好的,在ide中可以正常运行,但是打包成Jar运行却一直报错. 2.经过不懈探索,终于找到解决办法 3.首先,找到 ...

  10. MySQL学习笔记_时间,多表更新,数据库元数据

    MySQL技术内幕一.MySQL基础知识1.1.显示表中的列SHOW COLUMNS FROM order_info like 'order%'1.2.显示表SHOW TABLES LIKE 'ord ...