单设国家旅游行政主管的国家有37个。其中亚洲9个 ,中南美洲11个,西非和非洲15个,欧洲2个。
“智能旅行·链享全球”AIWTC平台应用近日正式上线。作为一个全球旅游及“旅游+”消费平台,该平台采用F2C(Factory to Consumer)模式,集人工智能、大数据和区块链技术于一体,能够做到去中心化,将成为颠覆传统旅游行业的重要推手,也将带给消费者全新的旅行体验。
AIWTC平台创始人李珺辞表示,AIWTC有别于传统的旅游平台,一是通过F2C点对点的模式,颠覆传统的旅游平台,实现去中心化,让旅游服务更直接、更优质、也更有保障;二是结合大数据技术,平台将重构传统旅游行业信任机制,解决传统旅游行业中的信任危机;三是平台还将利用人工智能技术,实现AI智能预警以及智能推荐等功能,升级传统旅游行业,推动旅游智能化。
AIWTC联合创始人文豪说,未来AIWTC将从技术和应用两方面继续发力,继续完善AIWTC的各功能板块并升级核心技术,同时将继续拓展旅游市场版图,积极布局全球战略旅游资源,并且优先发展中东欧市场,优化AIWTC生态社区,为消费者带来更优质便捷的旅行体验。
问题一:数据库系统包括什么? 通常由软件、数据库和数据管理员组成。
问题二:请问数据库有哪些种类呢 根据存储模型划分,数据库类型主要可分为:网状数据库(Network Database)、关系数据库(Relational Database)、树状数据库(Hierarchical Database)、面向对象数据库(Object-oriented Database)等。商业应用中主要是关系数据库,比如Oracle、DB2、Sybase、MS SQL Server、Informax、MySQL等。全部罗列出来是没有意义的,数据库太多了,你不说你的工作是涉及哪方面,恐怕很难提供更适合你的数据库。
初级应用一般是ACCESS 配合的脚本程序一般是 ASP ASPNET JSPMICROSOFT SQL 比较复杂点 不过功能强大很多 配合的脚本和ACCESS的一样MYSQL和PHP的组合是比较完美的如果你需要处理1000W条数据以上级别的数据,那以上的都不合适,一般用的比较多的是ORACLE 这个入门难度非常大如果想学的话就先学MICROSOFT SQL吧,这个网上教学比较多,ASPNET 20,应用的是非常广泛的。
问题三:sql数据类型有哪些 一、 整数数据类型
整数数据类型是最常用的数据类型之一。
1、INT (INTEGER)
INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINT
SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
3、TINYINT
TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。
4、BIGINT
BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。
二、 浮点数据类型
浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对314159265358979 分别进行2 位和12位舍入,结果为315 和3141592653590。
1、REAL 数据类型
REAL数据类型可精确到第7 位小数,其范围为从-340E -38 到340E +38。 每个REAL类型的数据占用4 个字节的存储空间。
2、FLOAT
FLOAT数据类型可精确到第15 位小数,其范围为从-179E -308 到179E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。
3、DECIMAL
DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。
4、NUMERIC
NUMERIC数据类型与DECIMAL数据类型完全相同。
注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。
三、 二进制数据类型
1、BINARY
BINARY 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到>>
问题四:常用数据库有哪些? 1 IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器―― System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 61则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
2 Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的 *** 作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
3 Informix
Informix在1980年成立,目的是为Unix等开放 *** 作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
4 Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer10。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
5 SQL Server
1987 年,微软和 IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 10 版。
6 PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象――关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统
>>
问题五:数据库的对象有哪些 Funciton:函数
Procedure:存储过程
Package:代码包,一个包里面,定义多个存储过程、函数、类型、常量等
Type:自定义数据类型
Trigger:触发器
Job:数据库作业 (定期执行的)
Table:表
Index:索引
Constraint:约束,限制各数据项应满足哪些限阀条件
View:视图
Materialized View:物化视图
Sequence:序列
User:叫 用户
Synonym:同义词
Database link:数据库链接(ORACLE有,别的数据库不熟,想必也应该有,可能不叫这个名字)
TableSpace:表空间(ORACLE叫这个名字,别的数据库不熟)
CURSOR:游标
常用的大致这些,可能会有遗漏,但也应该不会差太多。
问题六:常用数据库有哪些?他们有什么区别 开源的Mysql顶;PostgreSQL即开放源码的
商业的Oracle/SQL Server/DB2即收费的
问题七:查看数据库中有哪些表空间 可以用S罚L语句 SELECT FROM v$tablespace
也可以用oracle enterprise manger console 直接在可视化窗口上查看
问题八:常见的数据库应用系统有哪些? 现在极大多的企业级软件都是基于数据库的。
比如:
ERP: 企业资源管理计划
CRM: 客户关系管理
OA: 办公自动化。
12306铁道部的网上订票系统。
。。。
问题九:如何看mysql都有哪些数据库 第一步:首先是查看mysql数据库的端口号,使用命令show
第二步:查看有哪些数据库,
第三步:查看mysql数据库所有用户,
第四步:查看某个数据库中所有的表
问题十:数据库系统包括什么? 通常由软件、数据库和数据管理员组成。
前阶段做的ATM机的,楼主要不修改下吧,呵呵!
有两个小步骤没做完,楼主自己看一下!
use master
if exists(select from sysdatabases where name='bankDB')
drop database bankDB
GO
---建库bankDB
create database bankDB
on
(
name='bankDB',
filename='D:\bank\bankDBmdf',
filegrowth=15%
)
use bankDB
GO
---创建用户信息表(userInfo)
create table userInfo
(
customerID INT IDENTITY(1,1),
customerName VARCHAR(10) NOT NULL,
PID NUMERIC(18,0) NOT NULL,
telephone VARCHAR(15) NOT NULL,
address VARCHAR(30)
)
GO
---创建信息表的约束
ALTER TABLE userInfo ADD
CONSTRAINT PK_custonerID PRIMARY KEY(customerID),
CONSTRAINT CK_PID CHECK(len(PID)=18 or len(PID)=15),
CONSTRAINT UQ_PID UNIQUE(PID),
CONSTRAINT CK_telephone CHECK(telephone LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' OR telephone LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' OR telephone LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
---创建yhk信息表(cardInfo)
CREATE TABLE cardInfo
(
cardID VARCHAR(20) NOT NULL,
curType VARCHAR(6) NOT NULL,
savingType VARCHAR(8),
openDate DATETIME NOT NULL,
openMoney MONEY NOT NULL,
balance MONEY NOT NULL,
pass VARCHAR(6) NOT NULL,
isReportLoss BIT NOT NULL,
customerID INT NOT NULL
)
GO
---创建yhk信息表的约束
ALTER TABLE cardInfo ADD
CONSTRAINT PK_cardID PRIMARY KEY(cardID),
CONSTRAINT CK_cardID CHECK (cardID like '1010 3576 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]'),
CONSTRAINT DF_curType DEFAULT 'RMB' FOR curType,
CONSTRAINT CK_savingType CHECK(savingType IN ('活期' , '定活两便' , '定期')),
CONSTRAINT DF_openDate DEFAULT GETDATE() FOR openDate,
CONSTRAINT CK_openMoney CHECK (openMoney>=1),
CONSTRAINT CK_balance CHECK (balance>=1),
CONSTRAINT CK_pass CHECK (LEN(pass)=6),
CONSTRAINT DF_pass DEFAULT '888888' FOR pass,
CONSTRAINT DF_isReportLoss DEFAULT '0' FOR isReportLoss,
CONSTRAINT FK_customerID FOREIGN KEY (customerID) REFERENCES userInfo(customerID)
GO
---创建交易信息表(transInfo)
CREATE TABLE transInfo
(
transDate DATETIME NOT NULL,
cardID VARCHAR(20) NOT NULL,
transType VARCHAR(4) NOT NULL,
transMoney MONEY NOT NULL,
remark NTEXT
)
GO
---创建交易信息表的约束
ALTER TABLE transInfo ADD
CONSTRAINT DF_transDate DEFAULT GETDATE() FOR transDate ,
CONSTRAINT FK_cardID FOREIGN KEY (cardID) REFERENCES cardInfo(cardID),
CONSTRAINT CK_transType CHECK (transType='存入' or transType='支取'),
CONSTRAINT CK_transMoney CHECK (transMoney >0)
----测试插入数据
insert into userInfo values('张三','123456789012340','010-67898978','北京海淀')
insert into userInfo values('李四','320504198607221250','0512-65331652','江苏苏州')
insert into userInfo values('王五','320504198607223333','0512-65323442','江苏南京')
insert into userInfo values('赵六','320504198607131313','0512-65331643','江苏苏州')
insert into userInfo values('方六','320504194407131543','0512-65331243','江苏盐城')
insert into cardInfo values('1010 3576 1212 1134','RMB','活期','2006-10-01',10000,10000,'888888','','1')
insert into cardInfo values('1010 3576 1212 5555','RMB','活期','2006-10-01',10000000,10000000,'888888','','2')
insert into cardInfo values('1010 3576 2323 3343','RMB','活期','2006-12-01',153450000,10000000,'888888','','3')
insert into cardInfo values('1010 3576 1456 3454','RMB','活期','2006-11-28',23430000,10000000,'888888','','4')
insert into cardInfo values('1010 3576 1356 3554','RMB','活期','2006-12-05',221430000,100200000,'888888','','8')
----插入违背约束语句
insert into userInfo values('沈非','123456789','0512-67998978','江苏苏州') ---违背身份z长度的CHECK约束
insert into userInfo values('沈大','320504198607131313','0512-67998979','江苏苏州') ---违背身份z的唯一约束
insert into cardInfo values('1010 3576 1456 3424','RMB','活期','2006-11-28',00000,0,'888888','','5') ---违背开户金额不能<1的CHECK约束
insert into transInfo values('','1010 3576 1456 3424','支取',1000,'') ---违背主外键约束,交易卡号必须存在于cardInfo中
---查看所有表
select from userInfo
select from cardInfo
select from transInfo
---创建存储过程:根据卡号修改密码
CREATE PROC proc_changePass @incardID VARCHAR(20),@inoldPass VARCHAR(6),@newPass1 VARCHAR(6),@newpass2 VARCHAR(6)
AS
DECLARE @oldPass VARCHAR(6)
IF EXISTS(SELECT FROM cardInfo WHERE cardID=@incardID)
BEGIN
SELECT @oldPass=pass FROM cardInfo WHERE cardID=@incardID
IF(@oldpass=@inoldPass)
BEGIN
IF(@newpass1=@newpass2)
BEGIN
UPDATE cardInfo SET pass=@newPass1 WHERE cardID=@incardID
PRINT '密码修改成功!'
END
ELSE
PRINT '请确认您的新密码!'
END
ELSE
PRINT '您输入的原密码错误,请重新输入!'
END
ELSE
PRINT '您输入的卡号不存在,请重新输入!'
---测试修改密码的存储过程
EXEC proc_changePass '1010 3576 1212 1134','888888','123456','123456'
---创建挂失yhk的存储过程
CREATE PROC proc_lossCard @inCustomerName VARCHAR(10),@inPID NUMERIC(18,0),@inTelephone VARCHAR(15),@inAddress VARCHAR(30),@inCardPass VARCHAR(6)
AS
DECLARE @customerName VARCHAR(10),@PID NUMERIC(18,0),@telephone VARCHAR(15),@address VARCHAR(30),@cardPass VARCHAR(6)
SELECT @customerName=customerName,@PID=PID,@telephone=telephone,@address=address FROM userInfo WHERE PID=@inPID
SELECT @cardPass=pass FROM cardInfo WHERE customerID=(SELECT customerID FROM userInfo WHERE PID=@inPID)
IF((@customerName=@inCustomerName)AND(@PID=@inPID)AND(@inTelephone=@telephone)AND(@inAddress=@address)AND(@inCardPass=@cardPass))
BEGIN
UPDATE cardInfo SET isReportLoss=1 WHERE customerID=(SELECT customerID FROM userInfo WHERE PID=@inPID)
END
ELSE
PRINT '您的信息有误,请核对后重新输入!'
----测试挂失的存储过程
EXEC proc_lossCard '王五','320504198607223333','0512-65323442','江苏南京','888888'
---统计银行流通金额
DECLARE @inMoney MONEY,@outMoney MONEY
SELECT @inMoney=sum(transMoney) from transInfo where transType='存入'
SELECT @outMoney=sum(transMoney) from transInfo where transType='支取'
PRINT '银行流通总额为:'+ convert(varchar(20),@inMoney-@outMoney)+' RMB'
PRINT '盈利结算为:'+convert(varchar(20),@outMoney0008-@inMoney0003)+' RMB'
GO
---查询月交易冠军的yhk信息
SELECT FROM transInfo WHERE
print CONVERT(VARCHAR(20),@money)
SELECT FROM cardInfo WHERE
---查询半年未交易的卡信息
SELECT FROM cardInfo WHERE cardID NOT IN (SELECT cardID FROM transInfo WHERE DATEDIFF(mm,transDate,getdate())>7)//////////
---查询本周开户的帐号
SELECT FROM cardInfo where DATEDIFF(WEEK,openDate,getdate())<1
---查询挂失帐号的客户信息
SELECT FROM userInfo where customerID IN(SELECT customerID FROM cardInfo where isReportLoss=1)
---催款提醒业务
SELECT customerName AS 客户姓名,telephone AS 联系电话,balance AS 余额 FROM
userInfo INNER join cardInfo ON userInfocustomerID=cardInfocustomerID WHERE balance<200 AND datepart(day,getdate())>=28
---给transInfo表的cardID字段添加非聚集索引
CREATE NONCLUSTERED INDEX IX_transInfo_cardID ON transInfo(cardID) WITH FILLFACTOR=70
---测试索引
SELECT FROM transInfo (INDEX=IX_transInfo_cardID) WHERE cardID='1010 3576 1212 1134'
---创建视图
CREATE VIEW view_userInfo
AS
SELECT customerID AS 客户编号,customerName AS 客户姓名,PID AS 身份z号,telephone AS 电话号码,address AS 联系地址 FROM userInfo
CREATE VIEW view_cardInfo
AS
SELECT cardId AS 卡号,curType AS 货币种类,savingType AS 存款类型,openDate AS 开户日期,openMoney AS 开户金额,balance AS 帐户余额,pass AS 密码,isReportLoss AS 是否挂失,customerID AS 顾客编号 FROM cardInfo
CREATE VIEW view_transInfo
AS
SELECT transDate AS 交易日期,cardID AS 卡号,transType AS 交易类型,transMoney AS 交易金额,remark AS 备注 FROM transInfo
---查看视图
SELECT FROM view_userInfo
SELECT FROM view_cardInfo
SELECT FROM view_transInfo
---创建触发器
CREATE TRIGGER trig_trans
ON transInfo
FOR INSERT
DECLARE @transType VARCHAR(4)
---创建触发器trig_trans
drop trigger trig_trans
CREATE TRIGGER trig_trans ON transInfo
FOR INSERT
AS
DECLARE @transType VARCHAR(4),@transMoney MONEY,@cardID VARCHAR(20),@balance MONEY,@customerName VARCHAR(10)
SELECT @transType=transType,@transMoney=transMoney,@cardID=cardID FROM inserted
SELECT @balance=balance FROM cardInfo WHERE cardID=@cardID
SELECT @customerName=customerName FROM userInfo WHERE customerID=(SELECT customerID FROM cardInfo WHERE cardID=@cardID)
BEGIN TRAN
IF (@transType='支取')
BEGIN
IF (@balance-@transMoney<1) ---如果取款后余额不足1元
BEGIN
PRINT '正在交易,请稍等'
ROLLBACK TRAN ---取消交易,回滚
PRINT '余额不足,交易失败!'
END
ELSE
BEGIN
PRINT '正在交易,请稍等'
COMMIT TRAN ---交易成功
UPDATE cardInfo SET balance=@balance-@transMoney WHERE cardID=@cardID
PRINT '交易成功,'+CONVERT(VARCHAR(10),@customerName)+' 您进行的是取款 *** 作,当前的余额为:'+CONVERT(VARCHAR(20),@balance-@transMoney)+' RMB'
END
END
ELSE
BEGIN
PRINT '正在交易,请稍等'
COMMIT TRAN
UPDATE cardInfo SET balance=@balance+@transMoney WHERE cardID=@cardID
PRINT '交易成功,'+CONVERT(VARCHAR(10),@customerName)+' 您进行的是存款 *** 作,当前的余额为:'+CONVERT(VARCHAR(20),@balance+@transMoney)+' RMB'
END
INSERT INTO transInfo VALUES('','1010 3576 1212 5555','支取',999,'aa')
----创建存入与支取的存储过程
drop proc proc_transInfo
CREATE PROC proc_transInfo @customerName VARCHAR(10),@transMoney MONEY,@transType VARCHAR(4),@pass VARCHAR(6)=''
AS
DECLARE @pwd VARCHAR(6)
DECLARE @cardID VARCHAR(20)
SELECT @pwd=pass ,@cardID=cardID FROM cardInfo WHERE customerID=(SELECT customerID FROM userInfo WHERE customerName=@customerName)---由userInfo姓名字段查询得用户的卡号和密码
PRINT '您的卡号为: '+CONVERT(VARCHAR(20),@cardID) ---将用户的卡号输出
IF(@transType='存入')
BEGIN
PRINT '正在交易,请稍等'
INSERT INTO transInfo VALUES('',@cardID,@transType,@transMoney,'')
PRINT '交易成功,您成功从卡上存入了'+CONVERT(VARCHAR(20),@transMoney)
END
ELSE
BEGIN
IF(@pwd=@pass)
BEGIN
PRINT '正在交易,请稍等'
INSERT INTO transInfo VALUES('',@cardID,@transType,@transMoney,'')
PRINT '支取成功,您成功从卡上支取了'+CONVERT(VARCHAR(20),@transMoney)
END
ELSE
BEGIN
PRINT '密码错误,请重新输入!'
END
END
GO
EXEC proc_transInfo '王五',100,'支取','888888' ----模拟存入与支取
----创建产生随机卡号的存储过程
CREATE PROC proc_RANDcardID @mycardID VARCHAR(20) OUTPUT
AS
DECLARE @rand NUMERIC(15,8)
DECLARE @randcardID VARCHAR(10)
SELECT @rand=RAND(CONVERT(INT,DATEPART(mm,GETDATE()) 100000)+
CONVERT(INT,DATEPART(ss,GETDATE()) 1000)+
CONVERT(INT,DATEPART(ms,GETDATE())))
SET @randcardID=SUBSTRING(CONVERT(VARCHAR(10),@rand),3,4)+' '+SUBSTRING(CONVERT(VARCHAR(10),@rand),7,4)
SET @mycardID='1010 3576'+' '+@randcardID
GO
----调用随机卡号生成存储过程,产生随机卡号
DECLARE @mycardID VARCHAR(20)
EXEC proc_RANDcardID @mycardID OUTPUT
PRINT '产生的随机卡号为:'+@mycardID
----创建开户的存储过程
drop proc proc_openAccount
CREATE PROC proc_openAccount @customerName VARCHAR(10),@PID NUMERIC(18,0),@telephone VARCHAR(15),@openMoney MONEY,@savingType VARCHAR(8),@address VARCHAR(30)
AS
WHILE(1=1)
BEGIN
DECLARE @mycardID VARCHAR(20)
EXEC proc_RANDcardID @mycardID OUTPUT
IF NOT EXISTS(SELECT cardID FROM cardInfo WHERE cardID=@mycardID)
BEGIN
INSERT INTO userInfo VALUES(@customerName,@PID,@telephone,@address)
DECLARE @customerID INT
SELECT @customerID=customerID FROM userInfo WHERE PID=@PID
INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(@mycardID,@savingType,@openMoney,@openMoney,@customerID)
PRINT '开始开户,请稍等'
PRINT '开户成功!您的卡号为:'+@mycardID
PRINT '开户日期:'+CONVERT(VARCHAR(20),GETDATE())
PRINT '开户金额为:'+CONVERT(VARCHAR(20),@openMoney)
BREAK
END
END
GO
---模拟开户,调用存储过程proc_openAccount
EXEC proc_openAccount '沈非','320504198607221447','13914048959',3999,'活期','苏州职业大学'
---创建帐户间转帐的存储过程
drop proc proc_trans
CREATE PROC proc_trans @outcardID VARCHAR(20),@incardID VARCHAR(20),@transMoney MONEY
AS
DECLARE @outbalance MONEY,@inbalance MONEY,@isReportLoss1 BIT,@isReportLoss2 BIT
SELECT @outbalance=balance FROM cardInfo WHERE cardID=@outcardID
SELECT @inbalance=balance FROM cardInfo WHERE cardID=@incardID
SELECT @isReportLoss1=isReportLoss FROM cardInfo WHERE cardID=@outcardID
SELECT @isReportLoss2=isReportLoss FROM cardInfo WHERE cardID=@incardID
IF(@isReportLoss1 =0 AND @isReportLoss2=0)
BEGIN
IF(@outbalance-@transMoney<1)
BEGIN
PRINT '正在交易中,请稍等'
PRINT '交易失败,余额不足,无法转帐!'
PRINT '您的余额为:'+CONVERT(VARCHAR(20),@outbalance)+' RMB'
END
ELSE
BEGIN
PRINT '正在交易中,请稍等'
INSERT INTO transInfo(cardID,transType,transMoney) VALUES(@outcardID,'支取',@transMoney)
INSERT INTO transInfo(cardID,transType,transMoney) VALUES(@incardID,'存入',@transMoney)
UPDATE cardInfo SET balance=@outbalance-@transMoney WHERE cardID=@outcardID
UPDATE cardInfo SET balance=@inbalance+@transMoney WHERE cardID=@incardID
PRINT '转帐成功!'
END
END
ELSE
PRINT '有一方卡已经挂失,请主动投案自首!交易失败'
----模拟转帐
EXEC proc_trans '1010 3576 1356 3554','1010 3576 1212 1134',1000
---添加登陆帐户
EXEC SP_ADDLOGIN 'philip','65331652'
---创建数据库用户
EXEC SP_GRANTDBACCESS 'philip'
---赋予三张表的增删改查权限
GRANT SELECT,INSERT,DELETE,UPDATE ON userInfo TO philip
GRANT SELECT,INSERT,DELETE,UPDATE ON cardInfo TO philip
GRANT SELECT,INSERT,DELETE,UPDATE ON transInfo TO philip
---赋予存储过程的执行权限
GRANT EXEC ON proc_changePass TO philip
GRANT EXEC ON proc_lossCard TO philip
GRANT EXEC ON proc_transInfo TO philip
GRANT EXEC ON proc_RANDcardID TO philip
GRANT EXEC ON proc_openAccount TO philip
GRANT EXEC ON proc_trans TO philip
综合数据库。经过查询文化和旅游部官网发布的有关信息显示,柬埔寨旅游数据发布的全国国内游客统计数据为出游口径,即游客从惯常环境出发,可以去联合国综合数据库找寻柬埔寨旅游数据。所谓旅游大数据是指旅游行业的从业者及消费者所产生的数据,包括景区、酒店、旅行社、导游、游客、旅游企业等说产生的管理或业务数据。
以上就是关于国外旅游管理系统有哪些全部的内容,包括:国外旅游管理系统有哪些、数据库包括哪些、旅游信息管理系统 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)