数据库脚本是计算机技术领域术语。在生成
数据库项目时,预先部署脚本、
数据库对象定义和后期部署脚本合并为一个生成脚本。只能指定一个预先部署脚本和一个后期部署脚本,但可在预先部署脚本和后期部署脚本中包含其他脚本。
名词定义
用于创建
数据库对象的语句的集合。
Transact-SQL脚本保存为文件,文件名通常以 .sql结尾。
具体使用环境包含:MY-SQL,
SQLServer,
oracle。
数据库脚本包含:
存储过程[Procedure],事务[
transaction]等,索引[Index],触发器[Trigger],函数[
Function]等。
使用脚本的好处:可以提高数据访问的效率,并进行相关的数据处理。
数据库范畴
数据库脚本是包含不属于数据库架构定义的
Transact-SQL(T-SQL)语句或实用工具(如 SQLCMD)的附加文件。可以将数据库脚本用作部署步骤的一部分(预先部署和后期部署脚本),数据库脚本也可以是存储在数据库项目中的常规管理脚本。
在对架构对象执行数据库重构操作期间,可以自动更新包含执行该操作期间进行重命名的
数据库对象的任何脚本。
“脚本”文件夹支持以下操作:
添加新项 添加文件夹 添加脚本 从项目中排除
版本控制操作(如签入、签出等)剪切 复制 删除
重命名 属性
“脚本”文件夹中包含的脚本支持以下操作:
打开 打开方式 项目中排除 版本控制操作(如签入、签出等)剪切 复制 删除重命名属性
部署脚本
通过使用 SQLCMD 可包含其他脚本。(请参见本主题后面的相关部分。)生成数据库项目时,包含的所有脚本都合并到生成脚本中。
通过将
脚本文件的“生成操作”属性设置为 PreDeploy可以指定预先部署脚本。同样,通过将脚本文件的“生成操作”属性设置为 PostDeploy可以指定后期部署脚本。在将某个脚本指定为预先部署脚本或后期部署脚本时,如果以前已经用该生成操作指定了另一个脚本,那么,系统会自动将另一个脚本的生成操作设置为“不在生成中”。此行为是设计使然,因为每个数据库项目只能有一个预先部署脚本和一个后期部署脚本。
导入数据库架构时,大部分架构信息都会导入到数据库项目中的
数据库对象定义中。有些信息(如登录、权限、规则和默认值)则导入到其他的预先部署或后期部署脚本中。当此操作发生时,会在数据库项目的“脚本”文件夹中的“预先部署”或“后期部署”子文件夹中创建附加文件。这些附加的
脚本文件根据需要包含在预先部署和后期部署脚本中。包含的脚本的“生成操作”属性设置为“不在生成中”,因为这些脚本不直接包含在生成中,而是通过预先部署或后期部署脚本间接包含。系统会将任何无法识别的脚本语句放到“脚本”文件夹中的 ScriptsIgnoredOnImport.sql 文件中。
MySql数据库为例:
进入到mysql管理、
先创建数据库为user:
CREATE database user;
进入创建好的数据库user:
use user;
执行以下脚本:
CREATE TABLE mx_user
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
userName VARCHAR(20) NOT NULL DEFAULT '',
userPwd VARCHAR(40) NOT NULL DEFAULT '',
email VARCHAR(60) NOT NULL DEFAULT '',
regTime INT(10) UNSIGNED NOT NULL DEFAULT '0',
sex SMALLINT(3) NOT NULL DEFAULT 0,
disable SMALLINT(3) UNSIGNED NOT NULL DEFAULT 0,
allow_dlht SMALLINT(3) UNSIGNED NOT NULL DEFAULT 0,
allow_fbpl SMALLINT(3) UNSIGNED NOT NULL DEFAULT 1,
PRIMARY KEY (id),
KEY id (userName, userPwd)
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;
常用数据库
实时数据库
实时数据库系统是数据库理论在新领域的扩展,在电力、化工、钢铁、冶金、造纸、交通控制和证券金融等领域有着非常广阔的应用前景。它可以为企业提供高速、及时的实时数据服务,能够对快速变化的实时数据进行长期高效的历史存储,是工厂控制层(
现场总线、DCS、PLC等)与
生产管理系统之间连接的桥梁,同时也是流程模拟、先进控制、在线优化、故障诊断等系统的数据平台。
openPlant实时数据库系统采用当今先进的技术和架构,可安全、稳定地实现与现场各
控制系统的接口,并能对采集来的数据进行高效的
数据压缩和长期的历史存储,同时提供方便易用的客户端应用和通用的数据接口(API/DDE/ODBC/JDBC/OPC等),使企业的管理和决策人员能及时、全面的了解当前的生产情况,也可回顾过去的生产情况,及时发现生产中所存在的问题,提高设备利用率,降低生产成本,增强企业的核心竞争力。
实时数据库系统特点
■ 企业级的生产实时数据平台
■ 实时访问全厂生产数据
■ 支持在线计算和统计
■ 专业的图形仿真技术,监视画面与
控制系统完全一致
■ 丰富的客户端应用工具
■ 优异的跨平台性能,支持Unix/Linux/Windows等操作系统
■ 开放的数据接口,如API/DDE/ODBC/JDBC/OPC
■ 200,000点上万小时现场稳定运行考验
■ 个性化
定制服务,让您从容应对不断变化的用户需求
DB2
作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供集成的
数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以
远程工作单元和分布式工作单元实现了
分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体
关系数据库管理系统,支持包括Linux在内的一系列平台。
Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL
关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的
关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的
关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出
Client/Server 数据库
体系结构的思想,并率先在Sybase SQLServer 中实现。
SQL Server
1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
PostgreSQL
PostgreSQL 是一种特性非常齐全的
自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持
事务、
子查询、多版本并行控制系统、
数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.
mySQL
mySQL是一个小型
关系型数据库管理系统,开发者为
瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、
总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为
网站数据库。
Access
美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下:
(1)完善地管理各种
数据库对象,具有强大的数据组织、用户管理、安全检查等功能。
(2)强大的数据处理功能,在一个
工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)
数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错
回滚能力等。
(3)可以方便地生成各种
数据对象,利用存储的数据建立
窗体和报表,可视性好。
(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。
(5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为
客户机/服务器系统中的客户端数据库。
SQLite
SQLite是遵守ACID的关联式资料库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的
公有领域项目。不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的
通信协议是在编程语言内的直接
API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、
索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个
事务的时候锁定整个数据文件而完成的。
FoxPro
最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了较大的提高。 FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等
控件,进一步提高了系统的开发能力。
注意事项
如果其他用户可以修改设计时验证数据库的实例,则他们可能添加或更改将在生成脚本中结束的对象。生成输出将生成这些对象(例如,DDL
触发器),而且这些对象将在数据库部署者的上下文中运行。这些对象不一定出现在“解决方案
资源管理器”或“架构视图”中。当您将数据库项目与所部署的数据库进行比较时,“架构比较”功能将检测不到任何区别,因为设计时验证数据库中也包含这些对象。
要尽可能降低数据库的风险,应注意以下两点:
1、不要与其他用户共享设计时验证数据库的实例。
2、在部署生成数据库脚本之前对它们进行检查。