検索
ホームページデータベースmysql チュートリアル让你提前认识软件开发(36):如何扩展数据表字段?
让你提前认识软件开发(36):如何扩展数据表字段?Jun 07, 2016 pm 03:58 PM
どうやって分野拡大するデータシートソフトウェア開発

第2部分 数据库SQL语言 如何扩展数据表字段? 【文章摘要】 在通信类软件中,经常会与数据库打交道。由于需求变化,或者是程序优化升级等原因,对数据表字段进行扩展是常有的事情。这就要求开发人员必须熟练掌握对数据表字段进行扩展的操作流程。 本文基于作

第2部分 数据库SQL语言

如何扩展数据表字段?

【文章摘要】

在通信类软件中,经常会与数据库打交道。由于需求变化,或者是程序优化升级等原因,对数据表字段进行扩展是常有的事情。这就要求开发人员必须熟练掌握对数据表字段进行扩展的操作流程。

本文基于作者的数据库方面的工作经验,以实际的SQL程序为例,详细介绍了如何对对数据表字段进行扩展,为相关的开发工作提供了参考。

【关键词】

数据库 数据表 扩展 SQL 开发

一、前言

在实际的软件开发项目中,对数据表字段的扩展包括如下两个方面:

第一,对原有字段值的扩展。例如,原表有一个字段“result”,表示结果,之前的取值为0和1,现在要扩展其取值范围,添加一个结果值2。对于此类扩展,数据表的结构不用动,只需要让相关模块知道有这个值的扩展即可。

第二,新增加字段。即原来表已有的字段不能满足当前的要求,需要新增一个或几个字段,这就涉及到数据表结构的改变。

本文主要讨论第二种情况下数据表字段扩展的流程和操作方法。本文中的所有脚本都是基于Sybase数据库。

二、数据表字段扩展的流程

对于新增字段的情况,不能通过简单的删除表和重建表来完成,因为在实际的软件运行环境中,几乎每个数据表里面都会有很多的数据。如果不管三七二十一,将表删除了,会导致某些重要数据的丢失,造成极为不良的影响,甚至会引起客户的投诉。

在实际的软件开发项目中,对数据表字段的扩展流程如图1所示。

\

图1 对数据表字段的扩展流程

 

三、数据表字段扩展操作示例

有一个员工信息表,包含了工号、姓名和年龄三个字段,如下所示:

create table tb_employeeinfo

(

workid int default(0) not null, -- workid

name varchar(50) default('') not null, -- name

age int default(0) not null -- age

)

go

create unique index idx1_tb_employeeinfo on tb_employeeinfo(workid)

go

print 'create table tb_employeeinfo ok'

go

现在需要在原表的基础之上扩展一个地址(address)字段,用于记录员工的居住地址,该字段可以为空。

整个字段扩展的执行SQL脚本如下:

-- 第一步: 创建备份表

if exists(select * from sysobjects where name='tb_employeeinfobak')

drop table tb_employeeinfobak

go

create table tb_employeeinfobak

(

workid int default(0) not null, -- workid

name varchar(50) default('') not null, -- name

age int default(0) not null -- age

)

go

create unique index idx1_tb_employeeinfobak on tb_employeeinfobak(workid)

go

print 'create table tb_employeeinfobak ok'

go

-- 第二步: 将原表内容插入到备份表中

insert into tb_employeeinfobak(workid, name, age) select workid, name, age from tb_employeeinfo

go

-- 第三步: 将原表删除掉

if exists(select * from sysobjects where name='tb_employeeinfo')

drop table tb_employeeinfo

go

-- 第四步: 创建新表

create table tb_employeeinfo

(

workid int default(0) not null, -- workid

name varchar(50) default('') not null, -- name

age int default(0) not null, -- age

address varchar(100) null -- address

)

go

create unique index idx1_tb_employeeinfo on tb_employeeinfo(workid)

go

print 'create table tb_employeeinfo ok'

go 

-- 第五步: 将备份表内容插入到新表中

insert into tb_employeeinfo(workid, name, age) select workid, name, age from tb_employeeinfobak

go 

-- 第六步: 删除备份表

if exists(select * from sysobjects where name='tb_employeeinfobak')

drop table tb_employeeinfobak

go 

经过以上六个步骤,即实现了对数据表的字段扩展,并且原来的数据也没有丢失。 

四、总结

本文以实际的SQL脚本为例,详细介绍了对数据表字段进行扩展的整个流程,为相关软件开发活动的开展提供了有益的参考。 

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
变革性趋势:生成式人工智能及其对软件开发的影响变革性趋势:生成式人工智能及其对软件开发的影响Feb 26, 2024 pm 10:28 PM

人工智能的崛起正在推动软件开发的快速发展。这一强大技术有可能彻底改变我们构建软件的方法,对设计、开发、测试和部署等各个方面都会产生深远影响。对于企图进入动态软件开发领域的企业来说,生成式人工智能技术的问世为它们提供了前所未有的发展机遇。将这一前沿技术纳入其开发流程后,公司可以大幅提升生产效率、缩短产品上市周期,并推出在激烈竞争的数字市场中脱颖而出的优质软件产品。根据麦肯锡的一份报告,预测到2031年,生成式人工智能市场规模有望达到4.4万亿美元。这一预测不仅反映了一种趋势,更显示出技术和商业格局

软件开发中的人工智能应用:自动化与优化软件开发中的人工智能应用:自动化与优化Sep 02, 2023 pm 01:53 PM

作为一项前沿技术,人工智能(AI)正在各个领域展现出巨大的潜力。在软件开发领域,人工智能的应用也引起了广泛关注。从自动化任务到代码优化,人工智能为开发人员带来了许多创新的方式来提高效率、质量和创造力。本文将探讨人工智能在软件开发中的应用,重点关注自动化和优化方面的发展自动化任务1.代码生成通过学习现有代码库,人工智能可以自动生成代码片段甚至完整的模块。这对于开发人员来说非常有帮助,能够快速创建基础框架,节省时间和精力。例如,一些人工智能工具可以根据需求生成样板代码,使开发人员能够更快地开始工作2

生成式AI将在十个方面改变软件开发生成式AI将在十个方面改变软件开发Mar 11, 2024 pm 12:10 PM

译者|陈峻审校|重楼上个世纪90年代,当人们提起软件编程时,通常意味着选择一个编辑器,将代码检入CVS或SVN代码库,然后将代码编译成可执行文件。与之对应的Eclipse和VisualStudio等集成开发环境(IDE)可以将编程、开发、文档、构建、测试、部署等步骤纳入到一个完整的软件开发生命周期(SDLC)中,从而提高了开发人员的工作效率。近年来,流行的云计算和DevSecOps自动化工具提升了开发者的综合能力,使得更多的企业能够更加轻松地开发、部署和维护软件应用。如今,生成式AI作为下一代开

哈医大临床药学就业是否有前途(哈医大临床药学就业前景怎么样)哈医大临床药学就业是否有前途(哈医大临床药学就业前景怎么样)Jan 02, 2024 pm 08:54 PM

哈医大临床药学就业前景如何尽管全国就业形势不容乐观,但药科类毕业生仍然有着良好的就业前景。总体来看,药科类毕业生的供给量少于需求量,各医药公司和制药厂是吸纳这类毕业生的主要渠道,制药行业对人才的需求也在稳步增长。据介绍,近几年药物制剂、天然药物化学等专业的研究生供需比甚至达到1∶10。临床药学专业就业方向:临床医学专业学生毕业后可在医疗卫生单位、医学科研等部门从事医疗及预防、医学科研等方面的工作。就业岗位:医药代表、医药销售代表、销售代表、销售经理、区域销售经理、招商经理、产品经理、产品专员、护

Go语言在软件开发中的重要作用Go语言在软件开发中的重要作用Mar 29, 2024 am 09:21 AM

Go语言(又称Golang)是由Google开发的一种编程语言,从诞生之初便备受关注,其简洁、高效、并发性强等特点让它在软件开发中发挥着越来越重要的作用。本文将探讨Go语言在软件开发中的重要性,并结合具体的代码示例进行解析。一、并发编程Go语言天生支持并发编程,其goroutine和channel的机制使并发编程变得非常简单。goroutine是Go语言提供

win10镜像如何快速下载win10镜像如何快速下载Jan 07, 2024 am 11:33 AM

最近有小伙伴反应win10镜像文件该如何下载,因为市面的镜像文件多如牛毛,想找到正规的文件下载,这可怎么办呢?今天小编带来了下载镜像的链接,详细的解决步骤,具体的一起来看看吧。win10镜像快速下载安装教程下载链接>>>系统之家Ghostwin101909镜像64位版v2019.11<<<>>>Win10镜像64位v2019.07<<<>>>Win10镜像32位v2019.07<<<1、通过网络检索

揭示Python编程中最有前途的就业领域揭示Python编程中最有前途的就业领域Sep 08, 2023 pm 12:37 PM

揭示Python编程中最有前途的就业领域Python是一种高级编程语言,具有简单易学、功能强大和广泛应用等特点,成为目前最受欢迎的编程语言之一。Python的强大功能使其在各个行业都有着广泛的应用,因此,选择Python作为职业发展的编程语言是一个明智的选择。本文将重点揭示Python编程中最有前途的就业领域,并提供相应的代码示例。数据科学与机器学习随着大数

Golang在现代软件开发中扮演的角色及其重要性Golang在现代软件开发中扮演的角色及其重要性Mar 05, 2024 pm 04:12 PM

标题:Golang在现代软件开发中扮演的角色及其重要性在当今快速发展的软件开发领域中,Golang(又称Go语言)作为一种新兴的编程语言,正逐渐成为越来越多开发者的选择。Golang是由Google开发的一种开源编程语言,其设计目标是提高开发效率、简化工程维护并保持高性能。本文将探讨Golang在现代软件开发中所扮演的角色及其重要性,并通过具体的代码示例来展

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン