学生信息管理系统之数据库语句解析 学生信息管理系统的数据库创建的语句基本只有三种:select选择语句、create创建语句、drop删除语句。 下面这些是对学生信息管理系统的数据库中的一些语句的理解: 分析语句一: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user_info]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 问题1: object_id函数如何理解?N是什么意思? OBJECT_ID:返回数据库对象标识号。 N:是显式的将非unicode字符转成unicode字符,它来自 SQL-92 标准中的 National(Unicode)数据类型,用于扩展和标准化,在这里可以不用,写作object_id(user_info)。 问题2: OBJECTPROPERTY(id, N'IsUserTable') = 1中的OBJECTPROPERTY函数是什么意思?=1又是什么意思? www.2cto.com OBJECTPROPERTY:返回当前数据库中对象的有关信息。 1:表“真”。同样可以写成OBJECTPROPERTY(id, isUserTable) = 1。 整条语句的意思是判断数据库里有没 有存在user_info这样一张表。 问题3: dbo.sysobjects是什么? dbo.sysobjects:网上一般说是一张系统表,其实,这是一张视图。每个数据库都会有这么一张视图,我们可以方便的从这里面找出该数据库的相关信息。同样dbo.sysdatabases在系统视图中也能找到。 分析语句二: create table [dbo].[User_Info]( [User_ID][char](10)COLLATE Chinese_PRC_CI_AS NOT NULL , )on [PRIMARY] Go 问题1: collate是什么意思? collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。 www.2cto.com 语法为: collate_name是应用于表达式列定义或数据库定义的排序规则的名称,collation_name 可以只是指定的 Windows_collation_name 或SQL_collation_name,前者是Windows 排序规则的排序规则名称参见 Windows 排序规则 名称,而SQL_collation_name是SQL 排序规则的排序规则名称参见 SQL 排序规则名称 问题2: Chinese_PRC_CS_AI_WS又是什么呢? 前半部份:指UNICOADE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则 排序规则的后半部份即后缀含义: _BIN 二进制排序 _CI(CS) 是否区分大小写,CI不区分,CS区分 区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项 _AI(AS) 是否区分重音,AI不区分,AS区分 区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项如果选择该选项,比较还 www.2cto.com 将重音不同的字母视为不等 _KI(KS) 是否区分假名类型,KI不区分,KS区分 区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项 _WI(WS) 是否区分宽度 WI不区分,WS 区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项 作者 朱丹 |