Oracle学习笔记<6>
建表
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>的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记——点滴汇总
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子
1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...
- Oracle 学习笔记 11 -- 视图 (VIEW)
本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...
- oracle学习笔记1(环境搭建)
学习的开始先剧透一下,本人有点笨,本来想用oracle vbox,装个red hat+oracle,但是虚拟机一直报错,0x00000000内存不能written.所以便想到其他的办法,刚好接触了go ...
随机推荐
- CSS-01 CSS代码标准和规范
一:代码规范 1.所有的书写都是在英文半角下进行 2.统一用table键进行缩进 3.属性值必须带引号(单引和双引都可以) 4.p,dt,h标签里不能嵌套块属性标签 5.a标签不能嵌套a 二:文件命名 ...
- linux性能相关的各个环节
- CMSIS-DAP
https://www.jixin.pro/bbs/topic/4187 https://lceda.cn/jixin002/stm32f103c8t6_cmsis-dap http://tieba. ...
- python常用函数 D
defaultdict(set_type) 可以定义字典多值映射,入参类型决定value类型. 例子: deque:(int) 保留最后N个元素 例子: Decimal(float) 直接对浮点数进行 ...
- QT + openssl + VS2015静态编译
从http://slproweb.com/products/Win32OpenSSL.html下载已经编译好的openssl,一路next 我将OpenSSL-Win32\lib\VC目录下的libe ...
- contos7安装jdk1.8和tomcat8
前言 oracle官网下载jdk需要登录,网上携带cookie的方法已经不可用,我自己把jdk下载后放到了自己的服务器上,有需要的可以直接下载. 下载地址 http://149.129.124.185 ...
- Echarts 折线类型
1:Echarts2.0 这种皮肤下柱状图转折线图默认是平滑曲线 默认皮肤为硬折线: 如果需要在2.0的macarons皮肤下使用硬折线需显式设置以下属性: series: [ { ...
- JS中JSON.stringify()方法,将js对象(json串)转换成字符串,传入服务器
JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.string ...
- Python的list中的选取范围
a = [1,2,3,4,5,6,7,8,9,10] a[0:1] = [1] a[0:2] = [1,2] 包含开头,不包含结尾. a [:-1]: 从头一直到最后一个元素a[-1],但不包含最后一 ...
- 初识java-1.Java跨平台的原理
计算机只认识二进制的机器指令,而且不同的平台的计算机的机器指令不同.Java中将程序员编写的源码文件编译成字节码文件,在不同的计算机平台上安装不同的虚拟机,虚拟机将同一份字节码文件解释为不同的机器指令 ...