Oracle的创建表和创建约束的Sql语法

1、创建表的语句

 ---1、创建模拟的数据表 ---
--1.1.创建学生表Student
create table Student(
StuId NUMBER NOT NULL, --学生ID
StuName VARCHAR2(10) NOT NULL, --名称
Gender VARCHAR2(10)NOT NULL, -- 性别
Age NUMBER(2) NOT NULL, -- 年龄
JoinDate DATE NULL, --入学时间
ClassId NUMBER NOT NULL, --班级ID
Address VARCHAR2(50) NULL --家庭住址
);
--1.2、创建班级表StuClass
create table StuClass(
classId NUMBER not null, -- 班级ID
ClassName varchar2(20) not null, --班级名称
Notes varchar2(50) null default'班级信息', --备注,默认班级信息
);

2、创建约束的语句

  ----2、创建数据表的约束---
--2.1)创建主键约束--
alter table Student add constraint PK_Student_StuId primary key(StuId);
alter table StuClass add constraint PK_StuClass_ClassId primary key(ClassId);
--2.2) 创建检查约束--
alter table Student add constraint CK_Student_Gender check(gender='男' or gender='女');
alter table Student add constraint CK_Student_Age check(Age>=0 and Age<=100);
--2.3)创建唯一约束--
alter table Student add constraint UQ_Student_StuName unique(StuName);
--2.4)创建默认约束--
--alter table Student add constraint DF_Student_Address default('地址不详');
alter table Student Modify Address varchar(50) default '地址不详';
alter table Student Modify JoinDate Date default sysdate;
--2.5)创建外键约束--
alter table Student add constraint FK_Student_StuCLass_ClassId
foreign key(ClassId) references StuClass(ClassId);

注意:创建表还是约束,与SQL Server基本相同,注意:在Oracle中default是一个值,而SQL Server中default是一个约束,

因此Oracle的default设置可以在建表的时候创建或者通过Modify函数创建

3、添加模拟的数据

  --3、添加模拟的数据--
--3.1)添加班级信息
insert into StuClass(ClassId,Classname) values(1,'一班');
insert into StuClass(ClassId,Classname) values(2,'二班');
insert into StuClass(ClassId,Classname) values(3,'三班');
--3.2)添加学生信息
insert into Student(StuId,Stuname,Gender,Age,ClassId)
values(1,'关羽','男',17,1);
insert into Student(StuId,Stuname,Gender,Age,ClassId)
values(2,'张飞','男',16,2);
insert into Student(StuId,Stuname,Gender,Age,ClassId)
values(3,'刘备','男',18,3);

4、查询模拟数据

select * from Student;
select * from StuClass;

4.1)查询学生表信息

4.2)查询班级表信息

5、验证数据表约束

5.1)验证Student表的StuName是否唯一(唯一约束)

--插入相同名称--
insert into Student(StuId,Stuname,Gender,Age,ClassId)
values(5,'关羽','男',18,1);

结果是

5.2)验证Student表Gender的检查约束

  --添加性别为未知的数据--
insert into Student(StuId,Stuname,Gender,Age,ClassId)
values(4,'曹操','未知',18,1);

结果是

其它就不一样验证了

Oracle的创建表和创建约束的Sql语句的更多相关文章

  1. Oracle中的表构造导出到word Sql语句

    select * from ( SELECT t1.Table_Name AS "表名称", t3.comments AS "表说明",  t1.Column_ ...

  2. SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束

    创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...

  3. PowerDesigner创建表 拷贝创建表语句 SQLSERVER创建数据库 使用查询 创建表 并且添加数据

    PowerDesigner创建表 : 1.双击打开PowerDesigner   2.双击打开Create model 3左键点击Model  types,再点击Physical    Data  m ...

  4. 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。

    1.如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;). 2.select查询的多个字段之间要用逗号“,”分割,如果查询涉及多个表,那多个表之 ...

  5. day57-mysql-五种约束和sql语句逻辑执行顺序

    二.sql语句逻辑执行顺序 () SELECT () DISTINCT <select_list> 去重复 () FROM <left_table> () <join_t ...

  6. 从数据库中查询所有表及所有字段的SQL语句

    从数据库中查询所有表及所有字段的SQL语句 由于一个小项目的需要,近日完成一个从数据库中查询所有表及所有字段的方法,其实用两条SQL语句就可以完成. Sql Server版:列出当前DB中所有表:se ...

  7. sqlserver查询所有表的行数的sql语句

    原文:sqlserver查询所有表的行数的sql语句 select object_name(id),rowcnt from sysindexes where indid<2 and object ...

  8. 数据库(学习整理)----3--Oracle创建表和设置约束

    BBS论坛表设计 包含的表:BBSusers(用户表),BBSsection(版块表),BBStopic(主贴表),BBSreply(跟帖表) 表结构 1)BBSusers 字段名 字段说明 数据类型 ...

  9. 用SQL语句建库建表建约束(用SQl语句在指定盘符创建文件夹)

    一 :创建数据库 创建一个数据文件和一个日志文件(MySchool) create database MySchoolon primary      --默认属于primary主文件组,可省略(--数 ...

随机推荐

  1. Java——文件及目录File操作

    API file.listFiles(); //列出目录下所有文件及子目录fileList[i].isFile() //判断是否为文件 fileList[i].isDirectory() //判断是否 ...

  2. 《剑指offer》第六十三题(股票的最大利润)

    // 面试题63:股票的最大利润 // 题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股 // 票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5 ...

  3. 《剑指offer》第六十题(n个骰子的点数)

    // 面试题60:n个骰子的点数 // 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s // 的所有可能的值出现的概率. #include <iostream> ...

  4. es6 Set 结合 Array.from 用法

    var arr=[1,2,3,2,3,4,5]; var set=new Set(arr) var arr1=Array.from(set) 重复数组  -  Set 化 (去重) - 转回数组 上述 ...

  5. webpack踩坑之路 (2)——图片的路径与打包

    刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...

  6. css的table布局

    1.table中对tr设置margin-top是没有作用的.

  7. idataway_前端代码规范

    1.前后端json对接的规范. 前后端的json代码规范 result ={ success:”true”,//true表示成功,false表示失败. data:{}, //数据 errorCode: ...

  8. lua --- Module

    首先需要明白,一般情况下,我们的定义的lua模块的文件与模块名(其实就是table的名字)是一致的,当然,不一致代码也是可以编译的(亲测),之所以这样,本人认为是为了实际项目中管理的方便.以下是定义模 ...

  9. 第 8 章 容器网络 - 052 - overlay 如何实现跨主机通信?

    overlay 如何实现跨主机通信? 在 host2 中运行容器 bbox2: docker run -itd --name bbox2 --network ov_net1 busybox bbox2 ...

  10. MySql安装成功后无法远程登录

    MySql安装成功之后在服务器能够登录,但是在客户端却不能登录.只需要按照如下操作即可 请使用mysql管理工具,如:SQLyog Enterprise 可能是你的帐号不允许从远程登陆,只能在loca ...