一、创建表

1.1、使用SQL Server Management Studio创建表

①、打开刚刚建立的CollegeSystemDB数据库,找到表(数据库->CollegeSystemDB->表)。右键单击表,选择新建表。

②、在点击新建表出来的界面中按照下图输入

③、按Ctrl+S或者点击最上面菜单栏中的文件,选择保存。输入欲保存的表名称student,并点击确定。

④、再次点击新建表,按照下图输入,并且保存为course。

⑤、再次点击新建表,按照下图输入,并且保存为stucourse。

⑥、在 数据库->CollegeSystemDB->表 那里刷新一下,就会发现刚刚建立的三张表了。

(选择 数据库->CollegeSystemDB->表->dbo.student 右键单击选择设计,就可以查看刚刚建立的表的具体信息了。)

1.2、使用SQL语句创建表

①、选择 数据库->CollegeSystemDB,然后选择新建查询。注意左上角的那个框中要选中CollegeSystemDB,如果不是的话就手动选择一下。

②、在新建查询出来的界面中输入以下代码:

-- 设置使用的数据库
USE CollegeSystemDB
GO -- 判断数据库中是否存在student表,如果存在则删除student表
IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'student')
DROP TABLE student;
-- 创建student数据表
CREATE TABLE [dbo].[student](
[id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
[sno] [varchar](32) NOT NULL,
[sname] [varbinary](50) NOT NULL,
[sage] [int] NULL,
[sgender] [int] NOT NULL,
[sclass] [int] NULL,
[sgrade] [int] NULL,
); -- 判断数据库中是否存在course表,如果存在则删除course表
IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'course')
DROP TABLE course;
-- 创建course数据表
CREATE TABLE [dbo].[course](
[id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
[cno] [varchar](32) NOT NULL,
[cname] [varchar](50) NOT NULL,
[createtime] [datetime] NULL,
[updatetime] [datetime] NULL
); -- 判断数据库中是否存在学生选课表stucourse表,如果存在则删除stucourse表
IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'stucourse')
DROP TABLE stucourse;
-- 创建stucourse数据表
CREATE TABLE [dbo].[stucourse](
[id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
--列名 字段类型 是否为空 标识外键列(外键列名)关联表的表名(关联的字段名)
[sid] int NULL FOREIGN KEY(sid) REFERENCES student(id),
[cid] int NULL FOREIGN KEY(cid) REFERENCES course(id)
);

③、点击执行

④、在 数据库->CollegeSystemDB->表 那里刷新一下,就会发现刚刚建立的三张表了。

(选择 数据库->CollegeSystemDB->表->dbo.student 右键单击选择设计,就可以查看刚刚建立的表的具体信息了。)

二、列数据类型

  在关系数据库中,每一个关系都表现为一张表。表是用来存储数据和操作数据的逻辑结构,关系数据库中的所有数据都表现为表的形式,由列和行组成,如图3-1所示。关系数据库由表、具体查询等对象组成,而查询等对象又是通过表来呈现的。

  2.1、表的数据类型

2.2、数据类型使用分析

1.char,varchar,nchar,nvarchar

char性能好;varchar节省空间;
选择方法:10个字节以上的用varchar,nvarchar类型的占用空间大,性能低,如果不准备存中文或中亚文字则尽量避免使用。
尤其向类似工号的字段更不要使用n类型,ESL首先它不会存入中文,其次它可能作为索引,此时对性能的影响就更大。

2.datetime和smalldatetime

  datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到毫秒。
  smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

3.bigint,int,smallint,tinyint和bit

  bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。
  int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。
  smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。
  tinyint:从0到255的整数数据。
  bit:1或0的整数数据。
  首先int,空间占用合适,运算速度快;(2147,...,...2个多亿)
  如果非常在意空间的话,考虑tinyint,超大应用场合,考虑bigint

4.decimal和numeric

  这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

5.float和real

  float:从-1.79^308到1.79^308之间的浮点数字数据。
  real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

6.money,smallmoney

  尽量考虑用decimal替代,原因:性能稍稍好一些;相对其它数据库兼容性好。
  money的好处是可以用到某些货币运算函数。
  float类型尽量少用,性能不好,精度不高,一般只用于科学计算。

7.text/image

  考虑到维护方便、效率以及程序开发的方便性,最好不用,即不将其存入数据库中;采用varchar指向其相应的存储路径

三、表的完整性

  表的完整性分为实体完整性、引用完整性、域完整性、自定义完整性

3.1、实体完整性

  要求表中的每一行都反映不同的实体。通过索引、唯一约束、主键约束或者标识列来实现

3.2、引用完整性

  用于定义主表之间的关系,保证从表中外键列不会出现主表中对应主键列没有的项

3.3、域完整性

  表示给定输入的有效性。通过限制数据类型、检查约束、输入格式、外键约束、非空约束等方法来实现

3.4、自定义完整性

  用户自定义完整性用来定义特定的规则

四、向表中添加数据

五、查看表

六、修改表

七、删除表

  语法格式:DELETE TABLE

MSSQL → 04:表的创建与维护的更多相关文章

  1. MySQL表的创建与维护

    一.导入测试数据 [root@server ~]# wget https://launchpadlibrarian.net/24493586/employees_db-full-1.0.6.tar.b ...

  2. mssql 返回表的创建语句

    if OBJECT_ID('sp_create_table_sql','P') is not null drop proc sp_create_table_sql go create proc sp_ ...

  3. oracle表空间创建及管理

    一.数据文件和数据库逻辑存储结构: 一个表空间包含一个或多个数据文件,一个表空间包含一个或多个段,一个段包含一个或多个区,一个区包含一个或多个连续的数据库块,一个数据库块包含一个或多个操作系统块.段是 ...

  4. SQL语句(一)SQL和数据库数据表的创建

    SQL的组成 (1) 数据定义语言DDL(Data Definition Language) 用于数据库和数据表的创建.修改和删除等操作 CREATE (create) 创建数据库.数据表 ALTER ...

  5. 【Oracle 】tablespace 表空间创建和管理

    1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的 ...

  6. oracle 表的创建与管理 约束

    在 Oracle 之中数据表就被称为数据库对象,而对象的操作语法一共有三种:· 创建对象:CREATE 对象类型 对象名称 [选项]:· 删除对象:DROP 对象类型 对象名称 [选项]:· 修改对象 ...

  7. Oracle 表空间的日常维护与管理

    目录 Oracle 表空间的日常维护与管理 1.创建数据表空间 2.创建临时表空间 3.创建 UNDO 表空间 4.表空间的扩展与修改大小 5.表空间重命名 6.表空间的删除 7.更改表空间的读写模式 ...

  8. SQL基本操作——表的创建

    通过代码方式创建数据库 create database MyDatabaseNew on primary ( --名字 name='MyDatabaseNew_data', --路径 filename ...

  9. SQL概要与表的创建

    SQL概要与表的创建 1.表的结构 ​ 关系数据库通过类似Excel 工作表那样的.由行和列组成的二维表来管理数据.用来管理数据的二维表在关系数据库中简称为表. ​ 根据SQL 语句的内容返回的数据同 ...

随机推荐

  1. string主要操作函数

    参考博客:http://blog.csdn.net/zhenyusoso/article/details/7286456 std::string illegal(" \t\f\v\n\r\\ ...

  2. ArcMap应用——三维场景中井盖的属性配置

    在精细三维场景中,有地面(包括道路面.马路牙子).有部件数据(包括井盖).我们会发现有马路牙子的地方比道路面要高出一部分,比如0.1米,但是雨水井盖却有些在路面上.有些在道路以外.就是说在道路面上的井 ...

  3. 通过js 存取cookie

    //存cookie function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime(exp.getTi ...

  4. PAT甲级——A1041 Be Unique

    Being unique is so important to people on Mars that even their lottery is designed in a unique way. ...

  5. Windows下shell神器

    想找一个可以在Windows平台玩命令行的东西,不想装虚拟机搞linux,所以找到两个神器 如何升级Babun中的Git Babun中默认已经集成Git,只是有可能不是最新的版本 如果只是更新Babu ...

  6. [Day4] Nginx Http模块一

    之前介绍了Nginx作为静态资源服务器的用法,​除此之外,Nginx更多的场景是作为反向代理服务器,提高网站的并发和可用性.下面几节着重说一下作为反向代理的http模块,并且了解一些Nginx的架构. ...

  7. PHP实现定时任务(非linux-shell方式,与操作系统无关)

    页面交互效果 下面是写好的示例前端交互页面,主要是列表页面,编辑页面. 主要交互有: 1 开启定时任务进程 2 关闭定时任务进程 3 新增一项定时任务 4 编辑已有的定时任务 5 删除定时任务 6 开 ...

  8. 入门servlet:request获取请求体数据

    @WebServlet("/RequestDemo5") public class RequestDemo5 extends HttpServlet { protected voi ...

  9. leetcode 321 Create Max Number

    leetcode 321 Create Max Number greedy的方法,由于有两个数组,我们很自然的想到从数组1中选i个数,数组2中选k-i个数,这样我们只需要遍历max(0, k-数组2长 ...

  10. 通过游戏学python 3.6 第一季 第四章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释 可复制直接使用 娱乐 可封装 函数

    #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释 #!usr/bin/env python #-*-coding:utf-8-*- #QQ124111294 import ...