oracle 11g学习笔记【基础篇】
前置条件
-
搭建linux oracle 11g
https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html
https://www.linuxidc.com/Linux/2012-08/68989.htm
https://jingyan.baidu.com/article/6525d4b155767dac7d2e94e8.html##1 -
建表空间及创建用户
-
建表空间及创建用户语句
create temporary tablespace oracle_study_temp tempfile ‘/home/oracle/tablespace/oracle_study_temp.dbf’ size 100m reuse autoextend on next 20m maxsize unlimited;
create tablespace oracle_study datafile ‘/home/oracle/tablespace/oracle_study.dbf’ size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
create user oracle_study identified by oracle_study default tablespace oracle_study temporary tablespace oracle_study_temp;
alter user oracle_study default tablespace oracle_study;
grant connect,resource,dba to oracle_study;
正文
1. 创建表
CREATE TABLE 表名 (
字段1 类型,
字段2 类型,
…
字段N 类型
)
–创建person表 命名的时候后注意规则 t_ 这里代表table
create table t_person (
id number,
name varchar2(20),
age number(3),
address varchar2(20) – 最后一个字段最后不要加逗号
)
–给表添加注释
comment on table t_person is ‘用户表’;
–给字段添加注释
comment on column t_person.id is ‘学生编号’;
comment on column t_person.name is ‘学生姓名’;
comment on column t_person.age is ‘年龄’;
comment on column t_person.address is ‘地址’;
– 添加一个字段
alter table t_user add address varchar2(100);
– 修改字段 修改类型
alter table t_user MODIFY name VARCHAR2(3);
alter table t_user modify address date; – 将类型修改为其他不同类型也是可以的,前提是没有数据 或者数据兼容
–修改字段 修改字段名称
alter table t_user rename column name to user_name;
2. 数据类型
1 字符串类型
CHAR:2000字节
固定长度,char(10) 最大能保存10个字节的内容
如果保存的内容不足10个字节 剩下的空间也会被分配
好处 快
缺点 空间利用率不高
用于 存储的内容长度固定的使用 定长
VARCHAR2:4000字节
动态分配长度 varchar2(10) 最大能够保持10个字节的内容
如果保存的内容不足10个字节 那么需要多少空间就分配多少空间
好处 节省空间
缺点 相对char 慢
大多数情况下使用 varchar2
LONG:2GB
create table t_test1(
id number(3),
msg1 char(10),
msg2 varchar2(10)
)
2 数值型
默认长度是32位
NUMBER[P[,s]]
CREATE TABLE t_teset2 (
n1 number,
n2 number(3),
n3 number(5,2)
)
3 日期时间类型
date:年月日时分秒
timestamp:年月日时分秒小数点后六位
内置的LOB数据类型包括BLOB CLOB NCLOB BFILE(外部存储) 的大型化和非结构化数据 如文本 图像 视频 空间数据存储 了解即可
3. 删除表
–删除字段
alter table t_user drop column address;
– 删除表
drop table t_user;
4. 6种约束条件
4.1 非空约束
–表结构的约束
–非空约束 添加一条记录的时候 非空字段如果为空会报错
–可以作用在多个字段中
create table t_user(
id number(4) not null,
name varchar2(20) not null,
sex char(3),
age number(3)
)
4.2 默认值约束
–默认值约束
–如果该字段为空,那么会用默认值填充
create table t_user(
id number(4),
name varchar2(20),
sex char(3),
age number(3) DEFAULT 18
)
4.3 唯一性约束
–唯一性约束
–该列不能出现重复的记录
–可以出现空的记录,而且可以出现多个
–unique可以作用在多个字段中
create table t_user(
id number(4) UNIQUE,
name varchar2(20),
sex char(3),
age number(3) unique
)
–在建表完成后添加
create table t_user(
id number(4) ,
name varchar2(20),
sex char(3),
age number(3)
)
–添加约束
alter table t_user add constraints unq_id UNIQUE(id)
4.4 主键约束
–主键约束
–主键:能够唯一标识该记录的字段的约束
–一张表只能具有一个主键 != 字段
create table t_user(
id number(4) primary key, – 主键
name varchar2(20),
sex char(3),
age number(3)
)
–not null 和 unique可以组合 可以用在多个字段, primary key只能用在一个字段
create table t_user(
id number(4) not null unique, – 主键
name varchar2(20),
sex char(3),
age number(3) not null unique
)
–在建表之后指定主键
create table t_user(
id number(4) ,
name varchar2(20),
sex char(3),
age number(3)
)
alter table t_user add constraints pk_t_user_id primary key(id)
–联合主键
–pk_t_user_id主键 是由 id和name两个字段组成的 id和name的组合不能够重复
alter table t_user add constraints pk_t_user_id primary key(id,name)
–学生表
create table t_student (
id number(3),
name varchar2(20),
age number(3)
)
alter table t_student add classid number(3);
–班级表
create table t_class(
cid number(3),
cname varchar2(20)
)
4.5 外键约束
–外键约束
–两张表之间的关联关系
–主表
–从表
–主表的外键字段是从表的主键字段
create table t_class(
cid number(3) primary key ,
cname varchar2(20)
)
create table t_student (
id number(3),
name varchar2(20),
age number(3),
classId number(3),
– 外键约束
– 添加外键 语句释义 添加一个制约因素 fk_t_student_classId_t_clas_id是外键名称 这张表中的classId作为外键和t_class表中的主键id绑定
constraints fk_t_student_classId_t_clas_id FOREIGN key (classId) references t_class(cid)
)
–在建表之后添加外键约束
alter table t_user add constraints fk_t_student_classId_t_clas_id FOREIGN key (classId) references t_class(cid)
4.6 check约束
–check约束 在类型约束的基础上进一步限制数据的输入
–字符串 ‘’ 单引号括起来
create table t_user(
id number(4) ,
name varchar2(20),
– sex varchar2(3) check(sex=‘男’ or sex=‘女’),
sex varchar2(3) check(sex in(‘男’,‘女’)),
– age number(3) CHECK (age > 0 and age < 120)
age number(3) CHECK (age BETWEEN 0 AND 120) – 包含边界
)
alter table t_user add CONSTRAINT check_t_user_age CHECK (age <> 18);
未完待续
- Oracle 11g 学习笔记 (4)
- Oracle 11g学习笔记--表的高级操作
- oracle 11g 学习笔记 10_30
- oracle 11g 学习笔记 11_2
- oracle 11g学习笔记 2012_10_22
- oracle 11g 学习笔记2012_10_23(2)
- oracle 11g 学习笔记 2012_10_25(a)
- oracle 11g 学习笔记 2012_10_25(2)
- oracle 11g 学习笔记10_29(2)
- Oracle 11g学习笔记--分析函数
- Oracle 11g学习笔记--特权
- oracle 11g学习笔记 2012_10_22
- oracle 11g 学习笔记2012_10_23(2)
- Oracle 11g学习笔记--约束(constraint )的使用
- oracle 11g 学习笔记 2012_10_25(2)
- Oracle Database 11g SQL 开发指南学习笔记:Oracle 11g r2安装完后SQL Developer无法使用的问题
- Oracle 11g 学习笔记 (2)
- 《Oracle 11g SQL 和PL SQL从入门到精通》 学习笔记
- Pro Oracle Database 11g Administration 学习笔记之第五章(管理控制文件和联机日志文件)
- Oracle 11g学习笔记--数据库事务