Ideas de programación Uq
go
-crear una base de datos
si existe (seleccione * de sysdatabases donde nombre = 'bankDB ')
Eliminar base de datos bankDB
Ir
Crear base de datos bankDB
En
(
nombre = ' bankDB ',
nombre de archivo = 'e:\bankDB.mdf ',
tamaño = 3 MB,
crecimiento del archivo = 20
)
gouse bank d
go
-Crear tabla de información de usuario
Si existe (seleccione * de sysobjects, donde nombre = ' UserInfo ')
Eliminar información de usuario de la tabla
Ir a
Crear información de usuario de la tabla
(
ID de cliente int identidad (1, 1) no está vacío,
nombre de cliente varchar(16) no está vacío,
PID varchar(20) no está vacío,
phone varchar(15) no está vacío,
Dirección varchar(225)
)
información del usuario de la tabla goalter
Agregar restricción PK_customerID clave primaria (customerID),
Restricción UQ_PID única (PID),
Restricción CK_PID verificación ((len(PID)=15) o (len(PID)=18)) ,
p>Restricción CK _Verificación de teléfono (len(teléfono)entre 11 y 13)-(teléfono como '[0-9][0-9][0-9][0-9][ 0-9] [0-9][0-9][0-9][0-9]') o (teléfono como '[0-9][0-9][0-9][0-9 ][-] [0-9][0-9][0-9][0-9][0-9][0-9]
Ingrese la información del usuario (nombre del cliente, PID, número de teléfono, dirección)
Seleccione 'Zhang San', '123456789012345', '010-67898978', sindicato 'Beijing Haidian'
Seleccione 'Li Si', '321245678912345678. ', '0478-4444333 ',nulo.
Ir a - crear información de tarjeta de tabla
Si existe (seleccione * de sysobjects donde nombre = ' información de tarjeta ')
soltar información de tarjeta de tabla
Ir
Crear información de tarjeta de tabla
(
cardID varchar(19) no está vacío,
curType varchar( 10 ) no está vacío,
SavingType varchar(10) no está vacío,
la fecha y hora de openDate no están vacías,
el dinero de openMoney no está vacío,
p>
El saldo no está vacío,
El varchar(12) pasado no está vacío,
IsReportLoss varchar(2) no está vacío ,
customerID int no está vacío
)
tabla de goalter cardInfo
Agregar restricción PK_cardID clave primaria (cardID),
Comprobación de restricción CK_cardID (ID de tarjeta como (' 1010[]3576[][0-9][0-9][0-9][0-9][][0-9][0-9] [0-9]'), p>
Restricción DF_curType default('RMB')para curType,
Restricciónck_checking de tipo de ahorro(tipo de ahorro en('actual','conveniencia fija', 'regular')),
Restricción DF_fecha de apertura predeterminada(getdate())para la fecha de apertura,
Restricción CK_cheque de dinero abierto (open money gt;=1),
Restricción CK _ verificación de saldo (saldo gt=1),
El valor predeterminado de la restricción DF_pass (' 888888 ') se utiliza para la entrega,
restricción CK _ isreportrosscheck(isreportrossin( ' yes ' , ' no ')),
restricción df _ isreportossdefault para IsReportLoss,
Restricción FK _Clave externa de ID de cliente (ID de cliente) se refiere a información del usuario (ID de cliente)
Ingrese información de tarjeta (ID de tarjeta, tipo de ahorro, openMoney, saldo, ID de cliente)
Seleccione '1010 3576 1234 5678', 'actual', 1000, 1000, 1 unión.
Seleccione '1010 3576 1212 1134', 'General', 1, 1, 2.
Ir a - Crear información de transferencia de tabla
Si existe (seleccione * de sysobjects donde nombre = 'transInfo')
Eliminar información de transferencia de tabla
Ir
Crear información de transferencia de tabla
(
la fecha y hora de transDate no están vacías,
cardID varchar(19 ) no está vacía,
transType varchar(4) no está vacía,
la moneda transMoney no está vacía,
Observaciones varchar(225)
)
Información de transmisión de la tabla de objetivos
Agregar restricción DF_transDate default(getDate()) para transDate
Restricción FK_card ID clave externa (ID de tarjeta) referencia Información de la tarjeta (ID de la tarjeta),
restricción CK _ verificación de tipo trans (escriba trans ('depósito', 'retiro')),
restricción CK_transMoney verificación (transMoney gt0)
goinsert into transInfo(cardID, transType, transMoney)
Valor (' 1010 3576 1234 5678 ', 'Withdrawal', 900)
Actualizar cardInfo establecer saldo = saldo-900, donde cardID = ' 1010 3576 1234 5678 '
Insertar transInfo(cardID, transType, transMoney)
Valor (' 1010 3576 1212 1134 ', 'Depósito', 5000 )
Actualizar saldo del conjunto de información de la tarjeta = saldo 5000, donde cardID = ' 1010 3576 1212 1134 '
Go/* - Simulación empresarial general.
-Zhang San cambia número de tarjeta y contraseña
Actualizar cardInfo set pass='123456 'donde card id = ' 1010 3576 1234 5678 '
Actualizar información de tarjeta set pass = ' 123123 ' donde card id = ' 10103576 1212121134 '
Ir
-Informar la pérdida de la tarjeta bancaria Lisi
Actualizar cardinfo set isreportboss =' Sí 'donde card id = ' 1010 3576 1212 1134 '
Ir
-Estadísticas sobre el saldo de circulación de capital del banco y la liquidación de ganancias.
Declarar "fondos internos" y "fondos externos"
seleccione @ en dinero = suma(dinero trans)de información trans donde transmype = 'depósito'
select @ out money = sum(trans money) from trans info donde trans type = 'Retiro'
Imprimir 'La cantidad en circulación es: ' convert (varchar (10), @ inmoney) 'RMB '
Imprimir 'Liquidación de retiro:' convert (varchar (10), @ outmoney) 'RMB '
Imprimir 'El monto total de circulación bancaria es:' convert (varchar (10), (@ inmoney- @ outmoney)) 'RMB '
Ir
-Consulta a los usuarios que abrieron cuentas este mes y muestra la información relevante de la tarjeta.
Seleccionar número de tarjeta = cardInfo.cardID,
Número de tarjeta contraseña = pase,
Nombre de cliente = nombre de cliente,
ID de cliente número = PID,
Teléfono = teléfono,
Dirección = dirección,
Tipo de depósito = tipo de ahorro,
Monto de apertura de cuenta = openMoney,
Saldo=Saldo,
Currency=curType,
Fecha de apertura de cuenta=Fecha de apertura de cuenta
De información del usuario p>
userinfo . customerid = cardInfo . unión interna en información de tarjeta de identificación de cliente
información del automóvil cardid = transInfo . /p>
donde openDate está entre (select dateadd(dd, -datepart(dw, getdate()) 1, getdate()) y (select getdate())
Ir
- seleccione obtener fecha()
- seleccione dateadd(dd, -datepart(dw, getdate()) 1, getdate())
- seleccione fecha parte(dw , getdate ())
- seleccione dateiff(dd, (select dateadd(dd, -datepart(dw, getdate()) 1, getdate()), getdate())
- Consultar la información del cliente de la cuenta perdida reportada.
Seleccione nombre del cliente = nombre del cliente,
Teléfono = teléfono
De información del usuario
Donde id de cliente =(seleccione id de cliente de la información de la tarjeta ¿Dónde está el informe Ross = 'sí')
Ir a
-Servicio de recordatorio de reclamaciones
Seleccione Nombre del cliente = Nombre del cliente,
número de contacto = teléfono,
saldo de cuenta = saldo
de UserInfo .customerid = cardInfo .customerid unión interna en la información de la tarjeta
donde saldo lt=200 p>
Ir
-Crear un procedimiento almacenado
-Zhang San retira dinero
Establecer nocount en
Si existe ( seleccione * de sysobjects donde nombre = 'proc_takeMoney ')
eliminar procedimiento proc_takeMoney
go
crear procedimiento proc_takeMoney
@ card varchar( 19),
@m钱,
@type varchar(4),
@inputPass varchar(6)="
Me gusta
Comenzar a operar
Declarar @errorsum int - define la acumulación de errores
set @errorsum=0
Imprimir " La transacción está en progreso, por favor espere..."
Declaración @moneda del saldo
seleccione @ saldo = saldo de la información de la tarjeta donde cardID=@tarjeta
Actualizar conjunto de información de la tarjeta @ saldo = @ saldo-@ m
donde cardID=@tarjeta y contraseña=@inputPass
establecer @errorsum=@errorsum @@error
if( @ error sum lt; gt0)
Iniciar
Revertir transacción
¡Falló el retiro "Imprimir"! Después del retiro, el saldo en la tarjeta debe ser mayor que 1. Yuan, el saldo es insuficiente...'
Imprimir 'Número de tarjeta:' @card ' ' 'Saldo: ' convert (varchar (10), (@ saldo @ m))
Fin
Otros
Inicio
Si @ balance gt= 1 - Si el saldo aún es mayor que 1 después del retiro, el retiro se realizó correctamente.
Iniciar
Enviar transacción
Imprimir "¡Retiro exitoso!"
Insertar transInfo(cardID, transType, transMoney)
Valor (@tarjeta, @tipo, @m)
Imprimir 'Número de tarjeta: ' @card ' ' 'Saldo: ' convertir (varchar (10), (@ saldo @ m))< / p>
Fin
Otro
Inicio
Revertir transacción
¡Error al "Imprimir" el retiro! Después del retiro, el saldo de la tarjeta debe ser superior a 1 yuan. El saldo es insuficiente...'
Imprimir 'Número de tarjeta:' @card ' ' 'Saldo: ' convert (varchar (10) , (@ balance @ m))
Fin
Fin
Ir
-Crear un procedimiento almacenado
-Lee Si Deposit
Establecer nocount en
Si existe (seleccione * de sysobjects donde nombre = ' proc _ input money ')
elimine el procedimiento proc_inputMoney
Ir
Crear proceso proc_inputMoney
@card varchar(19),
@m dinero,
@type varchar(4)
Me gusta
Comenzar a operar