Oracle基础知识02

创建表

当已经创建好用户并且赋予相关权限之后,以创建好的用户登录。
之前创建好的用户为 vashon
登录窗口
登录PLSQL之后界面如图所示:
登录后的界面
打开SQL编写窗口

在新建的窗口中我们就可以开始编写SQL,进行练习

创建一张新表

语法:

create table 表名{
  列名 列的类型 [类的约束],
  列名 列的类型 [类的约束]......
};

语法解释:

列名是自己起的,不能为中文,

列的类型有:

分类 数据类型 描述
字符类型 CHAR 固定长度的字符串 CHAR§:p表示输入的数据长度,如果输入没有达到那么长,长度还是按照设定的一致。超过则报错
VARCHAR2 可变长度的字符串 VARCHAR2(a):a表示定义的最大字符长度,变长表示如果没达到这么长,长度等于输入的长度。超过则报错。
NCHAR/NVARCHAR2 Unicode字符集类型
LONG 可变长字符串,最大长度2GB
NUMBER 整数和浮点数,NUMBER(p, s):p表示有多少位数,s表示有多少位小数
日期时间类型 DATE 日期和时间数据
TIMESTAMP 秒值精确到小数点后6位
LOB类型 BLOB 二进制对象
CLOB 字符格式的大型对象
BFILE 将二进制数据存储操作系统文件中

列的约束:

1.not null 非空约束

2.primary key 主键约束

3.unique 唯一约束,值不能重复(空值除外)

4.check 条件约束,插入的数据必须满足某些条件

5.foreign key 外键

举例:为了之后练习,我在这直接创建好后面练习的表

CREATE TABLE teachers(             							-- 新建一张老师表
       tno VARCHAR(3) PRIMARY KEY, 							-- 老师编号,主键约束
       tname VARCHAR(4) NOT NULL,  							-- 老师姓名,非空约束
       tsex VARCHAR(2) CHECK(tsex = '男' OR tsex = '女'),	-- 老师性别,条件约束
       tbirthday DATE,											-- 老师生日,无约束
       prof VARCHAR(6), 										-- 职位
		depart VARCHAR(10) NOT NULL								-- 学科
       )
;
CREATE TABLE courses(              							-- 新建一张课程表
       cno VARCHAR(5) PRIMARY KEY,               -- 课程编号
       cname VARCHAR(10) NOT NULL,               -- 课程名字
       tno VARCHAR(10) NOT NULL REFERENCES teachers(tno)  -- 课程负责的老师,外键约束,关联老师的编号
       )
;
create table students(                      -- 学生表
       sno varchar(10) PRIMARY KEY,              -- 学生编号
       sname varchar(10) NOT NULL,                -- 学生姓名
       ssex varchar(10) CHECK(ssex = '男' OR ssex = '女'),   -- 学生性别
       sbirthday DATE,
       sage NUMBER CHECK(sage BETWEEN 0 AND 150),      -- 学生年龄
       class VARCHAR(5))                      -- 班级
;
CREATE TABLE scores(                             -- 新建一张成绩表用来存储学生成绩 
       sno VARCHAR(3) NOT NULL REFERENCES students(sno),   -- 学生编号,外键关联(外键约束)
       cno VARCHAR(5) NOT NULL REFERENCES courses(cno),   -- 课程编号,外键关联
       degree NUMERIC(10, 1) NOT NULL              -- 学生成绩
       ) 
;
约束其实内容很多,有时间整理一下。

修改表结构

当我们创建好表之后,还可以对表的结构进行修改。

  1. 修改列

  2. 添加新列

    ALTER TABLE 表名 ADD(列名 列的类型 [类的约束]) ;
    
  3. 修改已有列的数据类型

    ALTER TABLE 表名 MODIFY(列名 列的类型 [类的约束]);
    
  4. 删除列

    ALTER TABLE 表名 DROP COLUMN 列名;
    

举例:向老师表添加微信号这一列,然后修改这列的属性,然后在删除这列。

--添加新列
ALTER TABLE teachers ADD(t_weiXin VARCHAR2(20));
--修改已有列的数据类型
ALTER TABLE teachers MODIFY(t_weiXin NUMBER(20));
--删除列
ALTER TABLE teachers DROP COLUMN t_weiXin;

注意:这三条语句不要一起跑,不然你是看不到列的变化的,查看列的属性变化可以选择左边对象窗口,选择tables文件夹,选择你修改的表,右键选择查看,然后选择列。点击窗口列表选择SQL窗口,可以回到你之前编辑的窗口。

在这里插入图片描述

  1. 添加约束

    当你建表的时候没有为表中的列添加约束,建完表后可以再添加。

    1. 添加主键约束

      alter table 表名 
      add constraint 主键约束名 primary key(主键约束列名);
      
    2. 添加唯一约束

    alter table 表名 
    add constraint 唯一约束名 unique(唯一约束列名);
    
    1. 添加检查约束

      alter table 表名 
      add constraint 唯一约束名 check(唯一约束列的约束条件);
      
    2. 添加外键约束

      alter table course 
      add constraint 外键约束名 foreign key(表里的列名) references 关联的表名(关联的表的字段名);
      

猜你喜欢

转载自blog.csdn.net/xxydzyr/article/details/83717056
今日推荐