--创建约束的方式
--一、在字段创建时将约束添加到字段之后
CREATE TABLE ZYJ_YUESHU(
ZYJ_ID VARCHAR(20) NOT NULL PRIMARY KEY, --创建非空、主键约束
ZYJ_NAME VARCHAR(20) DEFAULT 'jie' NOT NULL, --创建默认约束
ZYJ_NO VARCHAR(20) UNIQUE, --创建唯一约束
ZYJ_SEX VARCHAR(20) CHECK(ZYJ_SEX IN('男','女')),
ZYJ_CHENGJI INT CHECK(ZYJ_CHENGJI>10)
);
COMMENT ON TABLE ZYJ_YUESHU IS 'soulsjie ,学习约束创建的数据表';
COMMENT ON COLUMN ZYJ_YUESHU.ZYJ_ID IS '序号字段 非空 主键';
COMMENT ON COLUMN ZYJ_YUESHU.ZYJ_NAME IS '姓名字段 非空 默认为jie';
COMMENT ON COLUMN ZYJ_YUESHU.ZYJ_NO IS '编号字段 唯一约束';
COMMENT ON COLUMN ZYJ_YUESHU.ZYJ_SEX IS '性别字段 只能是男、女';
COMMENT ON COLUMN ZYJ_YUESHU.ZYJ_CHENGJI IS '成绩字段 大于10'; --二、在所有的字段创建之后单独添加约束
CREATE TABLE ZYJ_YUESHU(
ZYJ_ID VARCHAR(20),
ZYJ_NAME VARCHAR(20),
ZYJ_NO VARCHAR(20),
ZYJ_SEX VARCHAR(20),
ZYJ_CHENGJI INT,
--在字段创建之后,单独添加约束的格式【constraint 约束名 约束类型(约束的对象字段)】
CONSTRAINT pk_zhujian PRIMARY KEY(ZYJ_ID), --创建主键约束
CONSTRAINT not_null UNIQUE(ZYJ_NO), --创建唯一约束
CONSTRAINT ch_jiancha CHECK(ZYJ_SEX IN ('男','女'))
); --添加约束
ALTER TABLE ZYJ_YUESHU ADD CONSTRAINT un_unique UNIQUE(ZYJ_CHENGJI);
--删除约束
ALTER TABLE ZYJ_YUESHU DROP CONSTRAINT ch_jiancha;
--修改约束
ALTER TABLE ZYJ_YUESHU DROP CONSTRAINT ch_jiancha;--先删除约束
ALTER TABLE ZYJ_YUESHU ADD CONSTRAINT ch_jiancha CHECK(ZYJ_SEX IN ('1','0'));--重新创建 --视图
--创建一个查看学生平均成绩的视图
CREATE VIEW STU_AVG AS SELECT I.STU_NAME as names ,AVG(S.KECHENG_CHENGJI) as avgsc FROM STU_INFO I ,KECHENG_INFO K,STU_SCORE S WHERE I.STU_ID=S.STU_ID AND S.KECHENG_BIANHAO=K.KECHENG_BIANHAO GROUP BY I.STU_NAME;
--视图的使用
SELECT * FROM STU_AVG WHERE AVGSC>=60 ORDER BY AVGSC DESC; --约束之创建外键约束的语法格式

--在下例中,将创建一个名为 Skills 的表,其中包含潜在技能列表,然后创建一个与 Skills 表具有外键关系、名为 EmployeeSkills 的表。请注意,EmployeeSkills.SkillID 与 Skills 表的主键列 (Id) 存在外键关系。

CREATE TABLE Skills (
Id INTEGER PRIMARY KEY,
SkillName CHAR(40),
Description CHAR(100)
);
CREATE TABLE EmployeeSkills (
EmployeeID INTEGER NOT NULL,
SkillID INTEGER NOT NULL,
SkillLevel INTEGER NOT NULL,
PRIMARY KEY( EmployeeID ),
FOREIGN KEY (SkillID) REFERENCES Skills ( Id )
);

四、SQL基础知识--约束和视图的更多相关文章

  1. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  2. 常见SQL语句和SQL基础知识

    引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   k ...

  3. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  4. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(七)- 集合运算

    SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...

  6. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  7. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

  8. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  9. SQL基础随记2 视图 存储过程

    SQL基础随记2 视图 存储过程   View CREATE/ALTER/DROP VIEW ViewName as SELECT(...) 可以在视图的基础上继续创建视图,即,将之前创建的视图当做表 ...

随机推荐

  1. 第03课 在VMwave 14.0 上配置企业级CentOS 6.6操作系统

    第一部分:配置虚拟硬件 1.1 启动VMware,选择文件-->新建虚拟机(Ctrl + N),创建一个虚拟机. (VMware的安装过程较为简单,可自行百度.) 1.2 此时,出现新建虚拟机向 ...

  2. solr查询优化【转】filtercache

    solr查询优化(实践了一下效果比较明显) 什么是filtercache? solr应用中为了提高查询速度有可以利用几种cache来优化查询速度,分别是fieldValueCache,queryRes ...

  3. html引入另一个html

    在写页面的时候,有些东西是一样的,比如头部的导航或者尾部的标注.所以复用的东西可以写到一个文件中,之后再引入,angularjs或是jsp中都有很好的标签引入,而html没有,但是可以借助一些方式进行 ...

  4. Linux系统结构与终端控制台

    Linux系统结构与终端控制台 作者:Vashon 时间:20150418 以下主要是对Linux系统终端控制台切换及基本操作的范例,其他的理论就不多说了,直接进入实践部分. Starting.... ...

  5. XSS漏洞扫描经验分享

    关于XSS漏洞扫描,现成的工具有不少,例如paros.Acunetix等等,最近一个项目用扫描工具没有扫出漏洞,但还是被合作方找出了几个漏洞.对方找出的漏洞位置是一些通过javascript.ajax ...

  6. subprocess使用小方法

    import subprocess     def create_process(cmd):     p = subprocess.Popen(cmd, shell=True, stdout=subp ...

  7. mybatis中app的查询语句

    SELECT * FROM ( SELECT (@rownum := @rownum + ) AS rownum,c.* FROM (SELECT @rownum := ) r, ( select * ...

  8. uva12265 Selling Land

    见紫书.(c,h)的更新策略://前面的高度为0了,直接插入因为ans==-c+h,c大,h还小,那么肯定不是最优左上角,更新新加入列的列//新的一列高度最小,就删掉了其他的,只留这个高度从上到下,从 ...

  9. core 中使用 swagger

    引包 代码 public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc().Set ...

  10. Hibernate-01 入门

    学习任务 Hibernate开发环境的搭建 使用Hibernate对单表进行增删改操作 使用Hibernate按照数据表主键查询 关于Hibernate 简介 Hibernate的创始人Gavin K ...