--创建约束的方式
--一、在字段创建时将约束添加到字段之后
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. [APIO2012]派遣 洛谷P1552 bzoj2809 codevs1763

    http://www.codevs.cn/problem/1763/ https://www.lydsy.com/JudgeOnline/problem.php?id=2809 https://www ...

  2. 学习JavaScript数据结构与算法 (一)

    学习JavaScript数据结构与算法 的笔记, 包含一二三章 01基础 循环 斐波那契数列 var fibonaci = [1,1] for (var i = 2; i< 20;i++) { ...

  3. JavaScript--字符串常用方法总结

    JavaScript--字符串常用方法总结 举例模板: var str = "what are you " var str1 = "sss" var txt = ...

  4. 1536 不一样的猜数游戏 dp思维 + 找规律

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1536 首先,要知道值为n的答案,则可以这么去想,知道值为n - 1的答案 ...

  5. js中关于this的理解

    常见:在普通函数中的this,指向 全局 function thisObj(name){ this.name = name; console.log(this); } 但是在严格模式下的函数,this ...

  6. JSP 错误处理方法

    web.xml中配置error-page标签 1.WEB工程中打开 web.xml 文件

  7. git设置log的别名 for hist

    hist -- alias for 'log --color --graph --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%C ...

  8. Angular JS中变量定义的基本原则

    在Angular JS开发中,经常需要定义一些变量,关于这些变量的定义方法及作用域应该注意以下几点: 1. 如果能用局部变量解决问题,尽量不要用全局变量. 2. 需要与界面双向绑定的变量采用$scop ...

  9. C#创建任务计划

    因写的调用DiskPart程序是要用管理员身份运行的,这样每次开机检查都弹个框出来确认肯定不行.搜了下,似乎也只是使用任务计划程序运行来绕过UAC提升权限比较靠谱,网上的都是添加到计算机启动的,不是指 ...

  10. Redhat5 安装序列号及版本说明

    为了保证安装的组件和订阅相匹配,红帽企业 Linux 5 需要输入一个安装号.它被用来配置安装程序来提供正确的软件包.安装号码包含在你的订阅里. 如果您没有输入安装号码,只有核心服务器或 Deskto ...