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. centos6.6 安装MariaDB

    参考文章:yum安装MariaDB(使用国内镜像快速安装,三分钟安装完毕) 安装环境: virtualbox下CentOS6.6(32位) 遇到的问题: 通过Maria官方提供的安装方式,源是国外的源 ...

  2. js代码点击触发事件

    js触发按钮点击事件 function load(){ //下面两种方法效果是一样的 document.getElementById("target").onclick(); do ...

  3. sql 查询字段是中文/英文/数字 正则表达式

    一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' ...

  4. MySQL数据分组Group By 和 Having

    现有以下的学生信息表: 若果现在想计算每个班的平均年龄,使用where的操作如下: SELECT Cno AS 班级, AVG(Sage) AS 平均年龄 FROM stu ; 这样的话,有多少个班就 ...

  5. json文件不能有注释

    之前一直忽视了这个问题,直接导致taiga-front的部署的时候不能通过其他IP访问. 如图: 首先是提示 app-loader.js:1  Your conf.json file is not a ...

  6. vue子组件,同级组件之间的相互引用,以及传值交互

    博客地址:http://blog.csdn.net/wang_meiwei/article/details/75948844

  7. sublime编辑器

    1.完全卸载sublime的方法. 打开preferences->browse packages 这个包,打开的那个目录,然后删除完整的sublime Text3目录就行. 2.sublime的 ...

  8. mysql连接池的使用工具类代码示例

    mysql连接池代码工具示例(scala): import java.sql.{Connection,PreparedStatement,ResultSet} import org.apache.co ...

  9. Java类成员变量的默认值

    1.布尔型(boolean)变量默认值为false,byte.short.int.long为0,字符型为'\u0000'(空字符),浮点型(float double)为0.0,引用类型(String) ...

  10. LeetCode--292--Nim游戏

    问题描述: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函 ...