机房收费系统进行中,界面设计已经初步完成。最后数据库还要自己来写,所以分析了一下以前做过的学生信息管理系统的数据库。
乍一看,SQL server代码复杂难懂,不过分析一下它共同点和不同点,整个代码的思路就清晰了很多。其中用到的很多内容在视频中都有体现。
拿出几个典型的段落分析一下。
use master go
if exists (select * from dbo.sysdatabases where name = 'Student') drop database Student GO
create database Student go use Student go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_Info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[user_Info] GO CREATE TABLE [dbo].[user_Info] ( [user_ID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [user_PWD] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [user_Des] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO
insert user_Info(user_ID,user_PWD) VALUES('student','student')
把master调用为当前数据库。GO为批处理命令的结束标志。
if...exists语句属于流程控制语句。而流程控制语句是主要用来控制SQL语句,语句块或者存储过程的执行流程。个人对于这段的理解是:如果存在名称为student的系统数据库,就删除它。sysdatabases对SQL server上的每个系统数据库和用户自定义数据库含有一行记录,它只出现在master数据库中。
数据定义包含drop、create和alter,drop为标准SQL语句之一。
创建数据库student
使用student数据库。
OBJECTPROPERTY返回当前数据库中对象的有关信息。
语法OBJECTPROPERTY(id,property)。
创建表TABLE,创建的内容和VB界面中的信息一致。比如user_ID在VB界面中都有体现。
插入一个表user_Info(ID号,密码),它们的值是(student,student)。