内容摘要

创建带主键和约束的表

创建带组合主键和外键的表

1. 创建带主键和约束的表

  • Student (学生表)

  • CREATE TABLE Student
    (
    sclass varchar() NOT NULL, --- 限制非空
    snumb varchar() PRIMARY KEY, --- 设置为主键
    sname varchar() NOT NULL, --- (下)设置默认值男,约束选项为男女
    sgender varchar() DEFAULT '男' CONSTRAINT consgender CHECK (sgender IN('男', '女')),
    sbirthday date,
    sage int CONSTRAINT consage CHECK (sage >= and sage <= )
    )
    CONSTRAINT 约束名 CHECK (条件)
  • SELECT INTO Student VALUES('电气51', '', '王涛', '男', '1993-2-1', )
    INSERT INTO Student(sclass, snumb, sname)
    VALUES('电气51', '', '王涛') ---> 产生默认性别男
    SELECT * FROM Student
    INSERT INTO Student(sclass, snumb)
    VALUES('电气51', '') ---- 出现错误: 不能将值 NULL 插入列 'sname'

    以上为,加了约束之后的效果

  • Course (课程)

CREATE TABLE Course
(
cnumb varchar() PRIMARY KEY, --- 设为主键
cname varchar() NOT NULL, --- 非空
chours int CONSTRAINT conshour CHECK(chours >= and chours <= ),
credit decimal(,) CONSTRAINT conscredit CHECK(credit >= and credit < ),
intro text --- text字段存放一段文字
)
INSERT INTO Course
VALUES('ENP09001', '理论力学', , , '研究物体机械运动的基本规律') SELECT * FROM Course

2. 创建带组合约束和外键的表

  • study (选课表)

CREATE TABLE Study
(
snumb varchar(),
cnumb varchar(),
score decimal(,),
PRIMARY KEY (snumb, cnumb), ---- 设为组合主键
FOREIGN KEY (snumb) REFERENCES Student(snumb), ---- (参照完整性)声明是什么表中的外键(即:插入数据时,必须要在Student和Course存在才可以)
FOREIGN KEY (cnumb) REFERENCES Course (cnumb)
)
INSERT INTO Study
VALUES('', 'ENP09001', ) --- snumb和cnumb必须要在Student和Course存在才可以 SELECT * FROM Student
SELECT * FROM Course
SELECT * FROM Study

3.总结:

//添加内容

四类数据完整性: 

     实体完整性,确保不出现完全相同的数据记录
区域完整性, 通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空等体现
参考完整性,避免因一个数据表的记录改变而造成相关数据表内的数据变成无效值。
用户自定义完整性,用户自定义由用户根据实际应用中的需要自行定义。

SQL语句(二)创建带主键和约束的数据表的更多相关文章

  1. SQL语句添加,删除主键

    IF EXISTS (SELECT * FROM sys.all_objects  WHERE  type_desc= N'主键名')begin --删除主键 alter table 表名 drop ...

  2. Sql Server中的游标最好只用于有主键或唯一键的表

    游标cursor,我想大多数人都在sql server里面用过.当一个表数据量不太大的时候,游标还是可以用的,毕竟游标是循环一个表中每一行数据的最简便办法.但是如果你用一个游标去循环一个没有主键或唯一 ...

  3. SQL Server学习之路(二):主键和外键

    0.目录 1.定义 1.1 什么是主键和外键 1.2 主键和外键的作用 1.3 主键.外键和索引的区别 2.主键(primary key) 2.1 通过SSMS设置主键 2.2 通过SQL语句设置主键 ...

  4. SQL语句删除和添加外键、主键的方法

    --删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...

  5. 【转】SQL语句删除和添加外键、主键

    --删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...

  6. mysql创建,添加主键

    primary key 1.最简单的: CREATE TABLE t1( id int not null, name char(20)); 2.带主键的: a:CREATE TABLE t1( id ...

  7. (转)Mybatis高级映射、动态SQL及获得自增主键

    原文:http://www.cnblogs.com/edwinchen/p/4105278.html?utm_source=tuicool&utm_medium=referral 一.动态SQ ...

  8. Oracle中SQL查询表字段基本信息、主键、外键(转)

    select utc.column_name, utc.data_type, utc.data_length, utc.data_precision, utc.data_Scale, utc.null ...

  9. SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键

    http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...

随机推荐

  1. WIN10基于Hyper-V下运行kubernetes入门问题

    http://www.cnblogs.com/shanyou/p/8503839.html 安装配置好之后启动,查看ip的方法: minikube status minikube ip 查看仪表盘da ...

  2. 同步或者重构Activiti Identify用户数据的多种方案比较

    http://www.kafeitu.me/activiti/2012/04/23/synchronize-or-redesign-user-and-role-for-activiti.html 如何 ...

  3. [转帖]从 2G 到 5G,手机上网话语权的三次改变

    从 2G 到 5G,手机上网话语权的三次改变 美国第一大电信运营商 Verizon 公司的 CEO Hans Vestberg 手持一部 iPad,屏幕上显示俯瞰地面的飞行地图.400 多公里外的洛杉 ...

  4. SQL 中GO的作用

    use db_CSharp go select *, 备注=case when Grade>= then '成绩优秀' when Grade< and Grade>= then '成 ...

  5. Mysql 乐观锁

    转载:http://chenzhou123520.iteye.com/blog/1863407 乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般 ...

  6. 无返回值的异步方法能否不用await

    1.无返回值的异步方法能否不用await? 如果你不需要等待加一的操作完成,那就可以直接执行后面的操作.那要看你的需求了,如果你后面的操作必须在加一的操作后执行,那就要await了 2.请问C#中如何 ...

  7. caffe运行错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function

    错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0)  invalid device function 原因:由于Makefil ...

  8. Python连接字符串用join还是+

    我们先来看一下用join和+连接字符串的例子 str1 = " ".join(["hello", "world"]) str2 = &quo ...

  9. php-编译模块2

    PHP扩展-扩展的生成和编译 首先说明一下,PHP扩展有两种编译方式:方式一:在编译PHP时直接将扩展编译进去方式二:扩展被编译成.so文件,在php.ini里配置加载路径: 以下开始说明创建PHP扩 ...

  10. BZOJ5361[Lydsy1805月赛]对称数——主席树+随机化

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=5361 好神的一道题啊! 容易看出来是要用维护权值的数据结构,因此树链剖分首先pass掉. ...