您的位置:首页 > 数据库 > Oracle

oracle 11g学习笔记【基础篇】

2019-08-11 12:28 621 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_45202377/article/details/99178376

前置条件

  1. 搭建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

  2. 建表空间及创建用户

    https://www.geek-share.com/detail/2720956905.html

  3. 建表空间及创建用户语句

    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);

未完待续

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: