数据表的创建和管理 (数据库)

news2024/9/24 9:20:15

目录

一、数据表结构的创建

1、利用create命令创建表

2.关于创建表时运用约束的说明

(1)空值约束(NULL or NOT NULL)

(2)主键约束(primary key constraint)

(3)唯一性约束(unique constraint)

(4)检查约束(check constraint)

(6)外部键约束

二、数据表结构的管理

1、修改表中的信息

2.数据表结构的删除


一、数据表结构的创建

在SQL Server 2000中,每个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,也就是可以定义1024个字段。

SQL Server 2000提供了两种方法创建数据库表:

  • 第一种方法是利用企业管理器(Enterprise Manager)创建表;
  • 另一种方法是利用Transact-SQL语句中的create命令创建表。

1、利用create命令创建表

其语法形式如下:

CREATE TABLE <表名>

(

    <字段名>  <数据类型>[列级完整性约束条件]

   [,<字段名>  <数据类型> [列级完整性约束条件] …]

   [,<表级完整性约束条件>]

)

参数说明:

(1)是所要定义的基本表的名字。一个表它可以由一个或多个属性组成

(2)一般取有实际意义的名字。

(3)可以是前面介绍的数据类型。

(4)在SQL Server 2000中有下面几种完整性约束条件:

  • 空值约束(NULL or NOT NULL);
  • 主键约束(primary key constraint);
  • 唯一性约束(unique constraint);
  • 检查约束(check constraint);
  • 缺省约束(default constraint);
  • 外部键约束(foreign key constraint);
  • 规则(rule);
  • 缺省值(default)

2.关于创建表时运用约束的说明

(1)空值约束(NULL or NOT NULL)

空值NULL约束决定属性值是否允许为空值(NULL)。

NULL表示没有输入任何内容,它不是零和空白,不允许为空值则用NOT NULL表示。

例如:设置属性teacher允许为空值。

CREATE TABLE t

(

teacher char(8) NULL

)

(2)主键约束(primary key constraint)

       主健约束要求主健属性取值必须惟一一个表只能包含一个主健约束。如果没有在主健约束中指定CLUSTERED或NONCLUSTERED,并且没有为UNIQUE约束指定聚集索引,则将对该主健约束用CLUSTERED。

主键约束SQL的语法形式如下:

[CONSTRAINT 约束名] PRIMARY KEY

[CLUSTERED|NONCLUSTERED](列名[,…n])

例如:在执行创建产品信息表的操作时,指定产品编号为主键值。

CREATE TABLE products

(

id char(10) NOT NULL,

name char(20) NOT NULL,

price money,

quantity smallint NULL,

CONSTRAINT pk_products PRIMARY KEY CLUSTERED (id)

)

此例的主健名称是pk_products,在products表中关于id建立了一个索引排序。

(3)唯一性约束(unique constraint)

   唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值

创建唯一性约束SQL语句:

[CONSTRAINT 约束名] UNIQUE

[CLUSTERED|NONCLUSTERED](列名[,…n])

例:

CREATE TABLE student1

(

sno char(8),

sname char(16),

constraint pk_student primary key(sno),

constraint uniq_student unique(sname)

)

(4)检查约束(check constraint)

使用检查约束时,应该注意以下几点:

① 一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。

② 一个中可以定义多个检查约束。

③ 每个CREATE TABLE语句中每个字段只能定义一个检查约束。

④ 在多个字段上定义检查约束,则必须将检查约束定义为表级约束

⑤ 检查约束中不能包含子查询

创建检查约束SQL语法格式为:

CONSTRAINT constraint_name

CHECK [NOT FOR REPLICATION] (logical_expression)

例如:创建一个职工信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检查约束,限制只能输入类似01080798654之类的数据,而不能随意输入其他数据。

create table employee

(

Id char(8),

name char(8)    CHECK(NAME LIKE ‘[A-C,a-c][A-Z,a-z][A-Z][A-Z]’),

sex char(2),

phonenum int,

constraint chk_sex check(sex in (’F’,’M’))default ‘F’,

Constraint chk_phonenum check(phonenum like ‘(010)[8,9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]’)

)

(6)外部键约束

外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。当使用外部键约束时,应该考虑以下几个因素:

① 外部键约束提供了字段参照完整性。

② 外部键从句中的字段数目和每个字段指定的数据类型必须和REFERENCES从句中的字段相匹配。

外部键约束不能自动创建索引,需要用户手动创建。

④ 一个表中最多可以有31个外部键约束。

⑤ 在临时表中,不能使用外部键约束。

⑥ 主键和外部键的数据类型必须严格匹配。

外键约束SQL的语法形式如下:

[CONSTRAINT 约束名] FOREIGN KEY (外键列名)REFERENCES

参照表(参照列名)

外键约束主要用来维护两个表之间的一致性关系。 外键的建立主要是通过将一个表的主键所在列包含在另一个表中,这些列就是另一个表的外键。

外键的作用不只是对输入自身的数据进行限制,同时也限制了对主键所在表的数据进行修改

用户无法对主键里的数据进行修改和删除,除非事先删除或修改外键引用的数据。 

二、数据表结构的管理

1、修改表中的信息

利用企业管理器修改表结构的过程如图所示。单击“设计表”命令,将弹出表设计器。

例如:将教学管理数据库中的学生表的属性“sno”的长度改为7,属性“ssex”的长度改为2。

 

 使用SQL命令修改表。

语法格式:

ALTER TABLE<表名>

ADD<新列名><数据类型>[完整性约束]

|ALTER COLUMN 列名 新类型

|DROP COLUMN 列名

|ADD PRIMARY KEY(列名[,…])

|ADD FOREIGN KEY(列名) REFERENCES 表名(列名)

|ADD CONSTRAINT 约束名….

|DROP CONSTRAINT 约束名

【例4-2】将教学管理数据库中的学生表属性“性别”的长度改为2。

其SQL语句的程序清单如下:

USE 教学管理 --打开教学管理数据库

GO

ALTER TABLE 学生表 ALTER COLUMN 性别 CHAR(2)

2.数据表结构的删除

可以用企业管理器或SQL语句删除基本表。

方法一:使用企业管理器

① 选中要删除的数据表,单击右键,在快捷菜单上选择“删除”。

② 在“除去对象”对话框中,单击“全部除去”。

方法二:使用SQL命令

SQL命令的一般格式为:

DROP TABLE <表名>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统集成项目管理工程师知识点总结

项目经理的五种权利&#xff1a; 职位权力&#xff1a; 来源于管理者在组织中的职位和职权。罚权力&#xff1a; 使用降职、扣薪、惩罚、批评、威胁等负面手段的能力。奖励权力&#xff1a; 给予下属奖励的能力专家权力&#xff1a; 来源于个人的专业技能。参照&#xff08;号…

Centos 搭建 不同的ftp用户对目录分级管理

目标&#xff1a; 建立ftp服务器目录 ftp_repository 使用用户名和密码登陆对它有读写权限&#xff0c;在该目录下建立子目录public可以匿名登陆&#xff0c;对其只有读权限 操作笔记&#xff1a; 通过创建用户时&#xff0c;创建ftp_repository 并且不能ssh telnet等工具登陆…

开关电源基础05:基本开关电源电感器设计(2)

说在开头&#xff1a;关于第五届索尔维会议&#xff08;2&#xff09; 索尔维会议的第四天休会&#xff0c;第五天开始自由讨论&#xff0c;大家都想站起来发言&#xff0c;会场一片混乱。大会主席洛伦兹不断拍桌子&#xff0c;让大家保持安静&#xff0c;可现场还是太乱&…

MATLAB实现人脸识别

本篇博文基于MATLAB实现人脸识别&#xff0c;基于几何特征的算法&#xff0c;对人脸从图像采集、预处理、到特征点定位提取&#xff0c;校验通过&#xff1b;主要利用YCbCr肤色模型&#xff0c;通过连通分量提取算法定位人脸&#xff1b;对RGB图像通过形态学图像处理算法选定区…

设置适合自己使用习惯的idea开发工具

一、配置方面 设置软件开启时候的最大内存128m够了&#xff0c;设置最大运行内存为8G&#xff0c;电脑配置好的一定要改&#xff0c;能极大的提升流畅性&#xff01; 二、好用的插件 1.MyBatisLogFormat是一款用于将控制台中打印出的sql、参数拼装成完整sql语句的idea插件 …

头部企业走入无人区,国产数智化厂商挑大梁

本文转自数智前线 文&#xff5c;石兆 编&#xff5c;游勇 央国企数智化与信创化双重需求叠加&#xff0c;国产厂商挑大梁&#xff0c;助力企业升级数智化底座&#xff0c;实现价值化国产替代。 4月&#xff0c;在北京用友产业园的数智剧院里&#xff0c;近千位来自30个行业…

Maven 私服 Nexus 3.44 搭建

文章目录 1. 安装 Nexus2. Nexus 程序2.1. 启动 nexus 程序&#xff0c;添加运行参数 start2.2. 查看 nexus 程序运行状态&#xff0c;添加运行参数 status2.3. 停止 nexus 程序&#xff0c;添加运行参数 stop 3. 浏览器访问 Nexus GUI3.1. 默认端口3.2. 自定义端口3.3. 初次登…

安全从业人员职业发展和规划

文章来源于owasp&#xff0c;分享嘉宾t0data。 1、为什么做这次分享&#xff1f; 2、人生周期三模型 3、职业生涯阶段划分 4、通用职业发展路径 5、当前安全行业前景如何&#xff1f; 6、安全就业行情如何&#xff1f; 7、安全行业就业市场岗位划分 8、什么是相对比较好的履历…

如何系统全面的自学自动化测试?明确后我直接拿到了20K

玩自动化测试多年的老司机带你上车全面系统学习自动化测试&#xff0c;并且还能教你如何学习才能在今年拿到一份不错的offer。 说到系统全面&#xff0c;就是以目前绝大部分公司招聘要求的知识内容为基准&#xff0c;毕竟我们学习自动化测试都是为了高薪工作&#xff0c;《史记…

【异步电机系列】电机参数离线辨识(含源码实现)

【一、闲话 很久没有认真更新自己的博客了&#xff01;正好这段时间在学习异步电机控制&#xff0c;所以把过程中的一些东西写下来&#xff0c;当是回顾也是备忘。本来想是把整个过程的问题和收获都记录下来的&#xff08;包括硬件设计、mcu控制、算法等&#xff09;&#xff0…

FFT变换后得到什么?

FFT FFT 快速傅里叶变换&#xff0c;是利用计算机计算DFT的高效、快速计算的方法的统称。 将信号从时域变换到频域范围内。 matlab中的fft 语法&#xff1a; Y fft(X) Y fft(X,n) Y fft(X,n,dim)说明 Y fft(X) 用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (D…

ApiPost简单使用

目录 环境与变量 设置与使用 随机参数变量 内置Mock字段随机参数 自定义随机参数 全局参数 使用手册 apipost可支持一键压测和自动化接口测试 环境与变量 设置与使用 设置 环境变量可设置环境名称、变量名称、变量初始值、URL&#xff1a; 可以在请求变量或者接口 URL…

《精英的傲慢:好的社会该如何定义成功》笔记与摘录二

目录 ​编辑 笔记与摘录 1、阶层跃升的话语 2、优绩至上理念的核心 3、优绩为什么重要 4、不平等是制度的失败&#xff0c;还是你的失败&#xff1f; 5、一种思考什么样的社会是公正的社会的方法 6、赚很多钱意味着什么 7、当市场价值被看作社会贡献的代表后 8、当市…

FS7M0880YDTU专为离线SMPS设计,VN7040AJTR和VN7016AJTR器件是用于汽车转向指示器

FS7M0880YDTU 是专门为离线SMPS设计的&#xff0c;具有最小的外部组件。该Power Switch(FPS)器件由高压功率SenseFET和电流模式PWM控制器IC组成。PWM控制器包括集成固定振荡器、欠压锁出、前缘消隐块、优化栅极通/关断驱动器、热关断保护、过压保护、用于环路补偿的温度补偿精密…

开源项目九死一生,但很多程序员坚持开源??

大家好&#xff0c;欢迎来到停止重构的频道。 本期我们讨论一个开放问题。 为什么流行的开源项目只是凤毛麟角&#xff0c;且很多有名的开源项目都是背靠大公司的。 但是&#xff0c;为什么还有很多个人开发者愿意开源项目呢&#xff1f; 欢迎大家把自己的想法或开源项目发…

实现一个简单的前端脚手架

核心要点 前端脚手架概念实现前端脚手架 什么是前端脚手架&#xff1f; 随着前端工程化的概念越来越深入人心&#xff0c;脚手架应运而生。简单来说&#xff0c;「前端脚手架」就是指通过选择几个选项快速搭建项目基础代码的工具 前端脚手架可帮我们做什么&#xff1f; 可…

fine tune openAI model ( 微调chatgpt)

了解如何为自己的应用程序定制模型。 介绍 微调可以从API提供的模型中获得更多信息&#xff1a; 比 prompt 设计更高质量的结果能够在超过 prompt 范围的示例上进行训练更短的 prompt 节省了token更低的延迟请求 微调包括以下步骤&#xff1a; 准备并上传训练数据训练一个…

【异常解决】vim编辑文件时提示 Found a swap file by the name “.start.sh.swp“的解决方案

vim编辑文件时提示 Found a swap file by the name ".start.sh.swp"的解决方案 一、问题描述二、原因说明三、解决方案3.1 方案1 删除即可3.2 方案2 禁止生成swp文件 一、问题描述 vim编辑文件时提示 Found a swap file by the name “.start.sh.swp”&#xff0c;如…

周杰伦、张韶涵巡演重磅回归,联诚发LED屏幕燃爆全场!

灯光点亮&#xff0c;音乐响起&#xff0c;所有粉丝随着节奏开始疯狂摇摆呐喊。2023年&#xff0c;随着演出市场全面复苏&#xff0c;各大活动演出随处可见&#xff0c;众多歌手也重新回归舞台&#xff0c;开启世界巡回演唱会活动&#xff0c;周杰伦、张韶涵等重磅明星纷纷进行…

6 接口、多态、断言、项目【Go语言教程】

6 接口、多态、断言、项目【Go语言教程】 1 接口 1.1 概念 Golang 中 多态特性主要是通过接口来体现的。 interface 类型可以定义一组方法&#xff0c;但是这些不需要实现。并且 interface 不能包含任何变量。到某个自定义类型(比如结构体 Phone)要使用的时候,在根据具体情况…