[学习笔记] Oracle字段类型、建表语句、添加约束
SQL语句介绍
- 数据定义语言(DDL),包括 CREATE、 ALTER、 DROP等。
- 数据操纵语言(DML),包括 INSERT、 UPDATE、 DELETE、 SELECT … FOR UPDATE等。
- 数据查询语言(DQL),包括基本查询语句、 Order By 子句、 Group By 子句等。
- 事务控制语言(TCL),包括 COMMIT、 SAVEPOINT、ROLLBACK。
- 数据控制语言(DCL), GRANT、 REVOKE。
字段类型
VARCHAR2(length)
字符串类型:存储可变的长度的字符串,length是字符串的最大长度,默认是1,最大不超过4000。
CHAR(length)
字符串类型:存储固定长度的字符串,length字符串的固定长度,默认是1,最大不超过2000。
NUMBER(a,b)
数值类型:存储数值类型,可以存整数和浮点型。a代表数值的最大位数,包含小数位和小数点;b代表小数的位数。例子:
number(6,2),输入123.12345,实际存入:123.12 。
number(4,2),输入12312.345,提示不能存入,超过存储的指定的精度。
DATA
时间类型:存储的是日期和时间,包括年、月、日、时、分、秒。
内置函数sysdate获取的就是DATA类型。
TIMESTAMP
时间类型:存储的不仅是日期和时间,还包含了时区。
内置函数systimestamp获取的就是timestamp类型。
CLOB
大字段类型:存储大文本,大于4000长度的字符串。
BLOB
二进制类型:存储的是二进制对象,比如图片、视频、声音等转换过来的二进制对象。
创建表
-- stuinfo学生信息表
create table STUDENT.stuinfo
(
stuid varchar2(11) not null,--学号
stuname varchar2(50) not null,--学生姓名
sex char(1) not null, --性别
age number(2) not null, --年龄
classno varchar2(7) not null, --班号
stuaddress varchar2(100) default '未录入', --地址
grade char(4) not null, --年级
enroldate date, --入学时间
idnumber varchar2(18) default '身份证未采集' not null --身份证
)
-- stuinfo存储的表空间是users
-- storage表示存储参数
-- initial表示区段(extent)一次扩展64k
-- minextents最小区段数为1
-- maxextents最大的区段数不限制
tablespace USERS
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table STUDENT.stuinfo
is '学生信息表';
-- Add comments to the columns
comment on column STUDENT.stuinfo.stuid
is '学号';
comment on column STUDENT.stuinfo.stuname
is '学生姓名';
comment on column STUDENT.stuinfo.sex
is '学生性别';
comment on column STUDENT.stuinfo.age
is '学生年龄';
comment on column STUDENT.stuinfo.classno
is '学生班级号';
comment on column STUDENT.stuinfo.stuaddress
is '学生住址';
comment on column STUDENT.stuinfo.grade
is '年级';
comment on column STUDENT.stuinfo.enroldate
is '入学时间';
comment on column STUDENT.stuinfo.idnumber
is '身份证号';
添加约束
-- 创建/重建主键索引、唯一索引、外键索引
-- 把 stuid 设为主键,主键字段的数据必须是唯一性的(学号是唯一的)
alter table STUDENT.STUINFO
add constraint pk_stuinfo_stuid primary key (STUID);
-- 创建/重建检查约束
-- 年龄age添加约束,学生的年龄只能0-50岁之间
alter table STUDENT.STUINFO
add constraint ch_stuinfo_age check (age>0 and age<=50);
alter table STUDENT.STUINFO
add constraint ch_stuinfo_sex
check (sex='1' or sex='2');
alter table STUDENT.STUINFO
add constraint ch_stuinfo_GRADE
check (grade>='1900' and grade<='2999');
[学习笔记] Oracle字段类型、建表语句、添加约束的更多相关文章
- oracle的建表语句
oracle数据库的建表语句,具体语法如下: CREATE TABLE tablename (column_name datatype [null,not null], column_name dat ...
- oracle基本建表语句
oracle基本建表语句 2010-09-20 10:37:33| 分类: 数据库 | 标签:数据库 oracle |字号 订阅 --创建用户create user han identifie ...
- 【SQL】ORACLE在sqlplus中使用spool方式生成建表语句
在实际生产中有时我们需要将一张表的数据导入到另外一张表,如果有PLSQL,我们可以通过PLSQL工具将数据导出为sql脚本,然后再在另外一个数据库中执行这个脚本.但有时在实际生产中我们没有PLSQL这 ...
- 数据库转换Mysql-Oracle之建表语句
Mysql建库语句(导出的): DROP TABLE IF EXISTS `tablename`; CREATE TABLE `tablename` ( `C_DI_CDE` varchar(40) ...
- 基于表的数据字典构造MySQL建表语句
表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...
- oracle字段类型
oracle 字段类型CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 byt ...
- Hadoop学习笔记—5.自定义类型处理手机上网日志
转载自http://www.cnblogs.com/edisonchou/p/4288737.html Hadoop学习笔记—5.自定义类型处理手机上网日志 一.测试数据:手机上网日志 1.1 关于这 ...
- 脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明
常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...
- postgreSQL生成建表语句
参考博文:https://blog.csdn.net/xiaofengtoo/article/details/84395199 修复了其函数中的bug,支持生成包含:字段(支持数组类型字段).约束.索 ...
随机推荐
- 【JAVA】【JVM】内存结构
虽然jvm帮我们做了内存管理的工作,但是我们仍需要了解jvm到底做了什么,下面我们就一起去看一看 jvm启动时进行一系列的工作,其中一项就是开辟一块运行时内存.而这一块内存中又分为了五大区域,分别用于 ...
- 使用IntelliJ IDEA创建简单的Spring Boot项目
方法一: File - New -Project 创建结束后进行测试运行,修改代码如下: package com.springboot.testone; import org.springframew ...
- C#和.NET 框架
C#和.NET框架 在.NET之前 20世纪90年代,微软平台多数程序员使用VB.C或C++.他们使用的技术都有问题. 技术 问题 纯Win32 API 不是面向对象,工作量比MFC大 MFC(Mic ...
- PHP数组函数总结与使用
array_change_key_case(数组,CASE_LOWER/CASE_UPPER) 数组键值转化为小写CASE_LOWER/大写CASE_UPPER array_chunk(数组,分割 ...
- SpringMVC 入门、请求、响应
目录 SpringMVC 概述 SSM 简介 MVC 简介 SpringMVC 简介 入门案例 Spring 技术架构 SpringMVC 基础配置 常规配置 Controller 加载控制 静态资源 ...
- java 网络编程基础 TCP/IP协议:服务端ServerSocket;客户端Socket; 采用多线程方式处理网络请求
1.Java中客户端和服务器端通信的简单实例 Java中能接收其他通信实体连接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一 ...
- Linux使用docker部署nacos
官网地址:https://nacos.io/zh-cn/docs/quick-start-docker.html 先把sql文件导入到mysql中 我也放了基础的sql /* * Copyright ...
- c/c++实现CRC查表及算法
说明 CRC被广泛应用到各个领域.足见其厉害之处 本文介绍的是CRC查表法. 拷贝代码即可使用 CRC 的起始值 本来默认是0, 实际生产中遇到过,CRC初始值为0xFFFF, 故将其初始值以参数的形 ...
- 【LeetCode】408. Valid Word Abbreviation 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 日期 题目地址:https://leetcod ...
- 【LeetCode】890. Find and Replace Pattern 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典+set 单字典 日期 题目地址:https:/ ...