首頁 資料庫 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

從頭到尾:如何使用php擴充cURL進行HTTP請求 從頭到尾:如何使用php擴充cURL進行HTTP請求 Jul 29, 2023 pm 05:07 PM

從頭到尾:如何使用php擴充cURL進行HTTP請求引言:在Web開發中,經常需要與第三方API或其他遠端伺服器進行通訊。而使用cURL進行HTTP請求是一種常見且強大的方式。本文將介紹如何使用php擴充cURL來執行HTTP請求,並提供一些實用的程式碼範例。一、準備工作首先,請確保php已安裝cURL擴充。可以在命令列執行php-m|grepcurl查

PHP 函數的擴充和第三方模組 PHP 函數的擴充和第三方模組 Apr 13, 2024 pm 02:12 PM

若要擴充PHP函數功能,可以使用擴充和第三方模組。擴充功能提供附加函數和類,可透過pecl套件管理器安裝和啟用。第三方模組提供特定功能,可透過Composer套件管理器安裝。實作案例包括使用擴充解析複雜JSON資料和使用模組驗證資料。

CENTOS7下如何安裝mbstring擴充? CENTOS7下如何安裝mbstring擴充? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen();出現如上錯誤時,說明我們沒裝上mbstring擴展;2.進入PHP安裝目錄cd/temp001/php-7.1.0/ext/mbstring3.啟動phpize(/usr/local/bin /phpize或/usr/local/php7-abel001/bin/phpize)指令來安裝php擴充4../configure--with-php-config=/usr/local/php7-abel

變革性趨勢:生成式人工智慧及其對軟體開發的影響 變革性趨勢:生成式人工智慧及其對軟體開發的影響 Feb 26, 2024 pm 10:28 PM

人工智慧的崛起正在推動軟體開發的快速發展。這項強大技術有可能徹底改變我們建構軟體的方法,對設計、開發、測試和部署等各個方面都會產生深遠影響。對於企圖進入動態軟體開發領域的企業來說,生成式人工智慧技術的問世為它們提供了前所未有的發展機會。將這項前沿技術納入其開發流程後,公司可以大幅提升生產效率、縮短產品上市週期,並推出在激烈競爭的數位市場中脫穎而出的優質軟體產品。根據麥肯錫的報告,預測2031年,生成式人工智慧市場規模可望達到4.4兆美元。這項預測不僅反映了一種趨勢,更顯示出技術和商業格局

軟體開發中的人工智慧應用:自動化與最佳化 軟體開發中的人工智慧應用:自動化與最佳化 Sep 02, 2023 pm 01:53 PM

作為一項尖端技術,人工智慧(AI)正在各個領域展現出巨大的潛力。在軟體開發領域,人工智慧的應用也引起了廣泛關注。從自動化任務到程式碼優化,人工智慧為開發人員帶來了許多創新的方式來提高效率、品質和創造力。本文將探討人工智慧在軟體開發的應用,重點在於自動化和優化的發展自動化任務1.程式碼產生透過學習現有程式碼庫,人工智慧可以自動產生程式碼片段甚至完整的模組。這對於開發人員來說非常有幫助,能夠快速建立基礎框架,節省時間和精力。例如,一些人工智慧工具可以根據需求產生樣板程式碼,使開發人員能夠更快地開始工作2

搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦 搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦 Jan 31, 2024 pm 02:54 PM

搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦?搜狗瀏覽器地擴充欄不見了,要怎麼顯示出來。搜狗瀏覽器右上角有個擴充欄,裡面顯示了使用者下載安裝過的各種擴充插件,但是因為我們的一些操作,導只擴充欄的失踪,該怎麼辦呢。我們要怎麼操作它才會顯示出來!小編下面整理了搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦的解決辦法,不會的話,跟著我往下看吧!搜狗瀏覽器右上角顯示的擴充功能不見了怎麼辦1、先開啟搜狗瀏覽器,在瀏覽器右上方可以看到一個由三條橫線組成的「顯示選單」圖標,使用滑鼠點擊該圖示。 2.點擊之後下方會彈出一個選單窗口

深入了解Laravel Redis擴充的使用方法 深入了解Laravel Redis擴充的使用方法 Mar 09, 2024 pm 02:03 PM

Laravel是一款受歡迎的PHP開發框架,擁有豐富的功能和靈活的擴充性,其中Redis擴充則是常用的一種資料庫快取工具。本文將深入探討Laravel中Redis擴展的使用方法,詳細介紹其基本概念、配置方式和具體程式碼範例,幫助開發者更好地利用Redis擴展提升系統效能。一、什麼是RedisRedis是一個開源的記憶體資料儲存系統,也被稱為

PHP 函數傳回值的型別與 PHP 擴充的互通性有什麼關係? PHP 函數傳回值的型別與 PHP 擴充的互通性有什麼關係? Apr 15, 2024 pm 09:06 PM

PHP函數傳回值型別可表示為型別說明語法,明確指定了各函數的回傳值型別。了解傳回值類型對於建立與PHP核心引擎相容的擴充功能至關重要,可避免意外轉換、提高效率和增強程式碼可讀性。具體而言,擴充函數可定義傳回值類型,以便PHP引擎根據該類型最佳化程式碼執行,並讓開發者明確處理傳回值。實務中,擴充函數可以傳回PHP對象,而PHP程式碼可以根據傳回值類型處理傳回的結果。

See all articles