表是数据库存储数据的主要对象,sql server数据库的表由行和列组成 如下图

如何创建表

数据库中创建一张表的语法为:

create table table_name(
列名1 数据类型和长度 列说明,
列名2 数据类型和长度 列说明,
列明3 数据类新和长度 列说明.......
)

创建上述表的语句为

create table table1(
DepID int identity(1,1) not null,
DepName varchar(40) not null,
DepTotal int not null
)

table1是这张二维表的名字 在一个数据库里面表的名字是不可以重复的。

DepID、DepName、DepTotal是列名再一张表里面列名是不能重复的

not null表示该列的值不能为空 但你不写时默认是null 即可以为空

完整性约束

为了确保数据库中数据的完整性,再创建表的时候还要再加上适当的约束性规则,大致有五个约束性规则。

1.主键约束:primary key

2.唯一性约束:unique

3.默认约束:default

4.检查约束:check

5.外键约束:foreign key

主键约束

主键用于唯一的表示表中的数据,在一个表中可以定义一列或多列为主键。

注意

  1. 标识为主键的一个或一组字段的值不可以重复,一张表仅允许创建一个主键。
  2. 主键上的取值不允许为null
  3. 主键的取值一般不能更新
  4. 主键可以被其他表参照(外键)

create table Student(
StuID char(10) constraint pkStuID primary key,
StuNama varchar(10)
)

constraint约束的意思后面跟你添加的约束的名字,主键约束一般起名为pk+字段名

create table SC(
StuID char(10),
CourseID int constraint pkStuIDCourseID primary key,
Score int
)

上面的表中有两个主键,再定义主键的时候需要在最后一个字段上加上约束。或者用表级约束

create table SC(
StuID char(10),
CourseID int,
Score int,
constraint pkStuIDCourseID primary key(StuID,CourseID)
)

unique约束

unique约束,使字段的值不能重复,允许有null值 但只能有一个,多了不就重复了

create table Course(
CourseID int constraint pkCourseID primary key,
CourseName varchar(40) constraint unqCourseName unique,
CourseCredit float
)

unique约束的约束名字一般是nuq加上字段名

check约束

check约束,即检查性约束 作用是可以指定字段的取值,check约束一般与几个关键字一起使用

  1. in关键字
  2. between关键字
  3. like关键字

create table Student(
StuID char(10) constraint pkStuID primary keyconstraint chkStuID check(StuID like'[A,B,Z][0-9][0-9][0-9][0-9][0-9]'),
StuName varchar(10) nou null,
StuBirthDate datetime,
StuSex char(2) constraint chkStuSex check(StuSex in('男','女')),
StuCity varchar(20),
StuGrade int constraint chkStuGrade check(StuGrade between 0 and 800) not null,
DepID int not null
)

检查性约束一般以chk打头 check() 括号里面第一个是字段名 然后是你对这个字段进行的约束

in 表示这个字段的值只能在in里面取 between 表示这个字段的值在这个范围之

like是使用通配符来表示相应的格式

default约束

默认值约束可以指定列一个默认值 ,当你插入操作不给值的时候就使用默认值。

create table Course(
CourseID int constraint pkCourseID primary key,
CourseName varchar(40) constraint unqCourseName unique,
CourseCredit float constraint defCourseCredit default 0constraint chkCourseCredit check(CourseCredit between 0 and 5) not null
)

默认值约束的命名一般以def打头 default后跟你要给这个字段设置的默认值。默认值可以为空,或者是一个常量值

外键约束

外键约束表明了两张表之间的联系,外键的取值需要参照主键的取值,被参照的表称作主表

create table Departemnt(
DepID int constraint pkDepID primary key
)create table Student(
StuID char(10),
StuName varchar(10) not null,
StuBirthDate datetime,
StuSex char(2),
StuCiry varchar(20),
StuGrade int not null,
DepID int not null,
constraint pkStuID primary key(StuID),
constraint chkStusex check(StuSex in('男','女')),
constraint defStuSex default '男',
constraint chkStuGrade check(StuGrade between 0 and 800),
constraint defStuGrade default 0,
constraint pkDepID foreign key references Department(DepID)
)

Student这张表的DepID字段是外键参照了Department这张表的DepID 在这个关系里面 Student表就称作从表,Departemt这张表被称作主表 一个字段要想被其他表参照那末这个字段必须在主表里是主键才可以,比如这个例子如果DepID这个字段在Departemnt这张表里不是主键那么就被参照。这两张表还要有先后的创建顺序 必须先创建主表然后再创建从表 同理删除的时候也存在先后顺序正好反过来必须先删除从表,然后才可以删除主表

sqlserver知识---表的创建相关推荐

  1. SQLServer数据表的创建

    文章目录 1 SQLServer数据表的创建 1.1 创建数据表的语法 1.2 标识列的特殊说明 1.3 建表举例 1 SQLServer数据表的创建 1.1 创建数据表的语法 create tabl ...

  2. oracle、sqlserver创建表、删除表、创建索引的sql

    ----oracle创建表          create table TEST_TABLE01 (                comp_code            varchar2(20) ...

  3. SQLSERVER数据库、表的创建及SQL语句命令

    SQLSERVER数据库.表的创建及SQL语句命令 备份,还原,创建,删除,查询,修改 ** 数据库定义及操作命令:** 按照数据结构来组织.存储和管理数据的仓库.由表.关系以及操作对象组成,把数据存 ...

  4. educoder 数据库系统概论2022 SQLServer 储存过程的创建与使用

    任务描述 本关任务:学习 SQLServer 中存储过程的创建和使用. 相关知识 存储过程提供了很多 T-SQL 语言没有的高级特性,其传递参数和执行逻辑的能力,为处理各种复杂任务提供了支持.并且,由 ...

  5. asp创建mysql表_asp创建数据库表

    一起谈.NET技术,不附加数据库 ASP.NET调用.sql文件 笔者好久没有写随笔了,这次是遇到提出这样的问题"不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个 ...

  6. oracle创建表空间.创建用户.创建表

    oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...

  7. db2查询字段备注_通过逐浪数据精灵管理sqlserver数据表备注以及字段说明

    通过逐浪数据精灵管理sqlserver的数据表备注以及字段说明备注(附脚本方法) 基本介绍 逐浪数据精灵,是由逐浪软件团队提供的生成态产品,可以快速的方便的管理数据表,目前对商业用户开放. 管理数据库 ...

  8. mysql 表引擎 entity framework_EntityFramework之数据库以及表基本创建(一)

    前言 之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题, ...

  9. mysql 树形结构_结合RBAC模型讲解权限管理系统需求及表结构创建

    结合RBAC模型讲解权限管理系统需求及表结构创建 在本号之前的文章中,已经为大家介绍了很多关于Spring Security的使用方法,也介绍了RBAC的基于角色权限控制模型.但是很多朋友虽然已经理解 ...

最新文章

  1. html 链接app store,App Store 连接失败
  2. 开源!mathAI 手写拍照自动能解高数题,还不快试试?
  3. 搜狗浏览器,你开源了吗?
  4. java filter
  5. hashset如何检查重复_如何使用 C# 中的 HashSet
  6. Eigen教程(5)之块操作
  7. /bin/bash: bash not found Alpine linux安装bash
  8. python snap7 plc db_python 用Snap7读写西门子PLC中DB块
  9. 漫谈WebQQ 协议
  10. 使用计算机配置路由器,电脑设置路由器步骤
  11. js编程中常用术语-中英对照
  12. TP5简单实现类似京东淘宝多级商品筛选功能。
  13. 树莓派3B+ 迅雷远程下载机
  14. e2e 测试 出现的错误
  15. go开源网络库nano(6)-hander逻辑
  16. BGP 十一条选路原则与BGP路由传递的注意事项介绍
  17. TSM12M(TSM16C)驱动程序及注意事项
  18. 关于Cisco路由器配置步骤的综合说明
  19. FIFO工作原理以及读写完成标识和判断方法
  20. 人件札记:保持高效的办公室环境

热门文章

  1. 概括几种项目类型使用的技术路线
  2. 软件测试--------数据库MySQL 常用sql语句
  3. 关于奇异值分解的一些讨论
  4. 修改Google Chrome主页
  5. 关于工作总结中的感悟
  6. Qt ‘tr‘ was not declared in this scop
  7. 怎么把一张暗的照片调亮_PS怎么把一张暗的图调亮,就局部
  8. 关于5G,四大运营商说......
  9. mysql rls_DBMS_RLS包实现数据库表行级安全控制
  10. 18个月自学AI,2年写就三万字长文,过来人教你如何掌握这几个AI基础概念