-小明音乐库管理系统课件04第4章PPT内容-.docx
”小明音乐库管理系统课件04第4章PPT内容”1、小明音乐库管理系统第4章创建并访问数据库学习目标把握SQLSerVerEXPreSS数据库系统的安装,把握查询分析器的基本用法。了解什么是SQL、SQL的特点,把握SQL语句的分类DDL、DML和DCL。把握创建数据库的SQL语句,了解使用数据库的SQL语句。把握SQLSerVer字段、完整性约束的概念,把握创建、维护表格的SQL语句。了解使用图形界面创建和修改SQLServer数据库和表的方法。把握SELECT语句的基本语法,了解模糊查找,把握简洁连接查询,了解多表连接、反身连接和外连接的概念和语法。把握嵌套查询的概念,把握IN、EXlSTS子句的概念和语法。4.1预备工作1.2、安装和使用DBMSSQLServer2022E×press(SSE2022)Microsoft所开发的SQLServer的其中一个版本免费,适合使用在小型的网站,或者是小型的桌面型应用程序还需要单独下载对应的SQLServerManagementStudioExpress(SSMS)SQLServer的图形化管理工具,是使用SSE必不行少的工具SSMS连接SQLServer服务器DESKToP-3RD1VFVSQLEXPRESSDESKTOP-3RD1VFV为计算机名,可用IP地址取代Sqlexpress为sqlserver实例名不指定实例名,表示默认的SQLSer3ver实例SQLServer实例可同时运行多个SQLServer每个SQLSerVer完全独立运作,通过不同的实例名来区分EXPRESS是SSE安装时的默认实例名SSMS可以同时管理多个SQLServer的实例,首先和相应的实例建立连接连接SQLServer服务器的对话框查询分析器单击工具栏中的“新建查询(N)按钮查询分析器界面SQL命令2.SQL和T-SQL用SQL语言编写数据库命令SQL语言是关系数据库的标准语言SQLSever在SQL92标准的基础上进行了扩充,形成了TranSaCt-SQL语言(又称T-SQL)T-SQL具有SQL的主要特点,同时增加了变量、运算符、函4、数、流程掌握和解释等语言元素,使得其功能更加强大SQL语言具有以下特点:综合统一:具有查询、操纵、定义和掌握一体化功能高度非过程化:SQL语言表达是要实现干什么,如何实现(执行方案)则由DBMS负责自动生成面对集合的操作方式:SQL操作的对象或者返回的结果是以集合为单位的简洁,易学易用:语法类似于英语自然语言,简洁易学3.SQL语言的分类为了便于理解SQL语言,通常将SQL语言根据用途分为如下3类:DDL(DataDefinitionLanguage,数据定义语言):在数据库系统中,每一个数据库、数据库中的表、视图和索引等都是数据库对象。要建立和删除一个数据库对象,都可以通过SQL语言来5、完成。DML(DataManipulationLanguage,数据操纵语言):DML是指用来添加、修改、删除和查询数据库中数据的语句,包括INSERT(新增)、DELETE(删除)、UPDATE(更新)和SELECT(查询)等。由于SQL供应了强大的查询力量,所以有时候会把SQL的查询语言独立称为DQL(DataQueryLanguage,数据查询语言)。DCL(DataControlLanguage,数据掌握语言):DCL包括数据库对象的权限管理和事务管理等。4.2定义数据1.创建数据库CREATEDATABASEMpmmDBDROPDATABASE2.使用数据库U6、SE3.创建基本表CREATETABLE()DROPTABLE字段定义类别类别数据类型数据类型C#类型类型长度定义长度定义描述描述规律规律bitbool/整型,其值只能是0、1或NULLo整数整数intint/32位整数。smallintlntl616位整数。bigintlnt6464位整数。数值数值decimalnumericdecimal(n,m)精确数,需指定范围n和精度m。范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。用于不允许近似取值的状况,如银行账户余额。floatfloat/一种近似数值类型,供浮点数使用。用于不要求精确数值的状况,如学7、生的身高。日期日期datetimeDateTime/存储从1753年1月1日到9999年12月31日间全部的日期和时间数据。字符串字符串ncharstring(n)Unicode编码字符,固定长度。n4000,自动使用空格填充到n个字符,因此固定占用n个字符的存储空间。通常用在固定长度的状况,如身份证号码固定18位,或音乐类型代码固定1位。nvarchar(n)Unicode编码字符,可变长度。n4000,表示最多允许n个字符,根据实际长度占用存储空间,所以叫"可变"。歹IJ级约束CREATETABLECategOry(.在MPmmDB中创建CategOry表IDintIDENTITY8、(1,1)NOTNULL,一定义字段IDCodenvarchar(50),-定义字段CodeNamenvarchar(250)NOTNULL定义字段NameDescriptionnvarchar(IoOo)NULL/定义字段DescriptionCONSTRAINTPK_CategoryPRIMARYKEY(ID)-定义主键)类别类别约束约束描述描述值是否可以为值是否可以为空空NULL可以为空。默认约束,定义中可以省略。NOTNULL不行以为空。指定缺省值指定缺省值DEFAULT假如记录的这个字段值没有指定,则设置为默认值。自定义检查自定义检查CHECKER9、据括号中的条件规律表达式,推断字段的值是否满意约束。该表达式只能涉及本字段。自增长自增长IDENTlTY(n,m)自动填充字段的值。初始值为n,每填充1次增加步长mo4个字段ID>Code>Name、Decription数据类型:32位整数、可变长字符串(最大长度50)、可变长字符串(最大长度250)、可变长字符串(最大长度1000)ID.Name两个字段不允许为空,Code、DeSCriPtiOn字段可以为空ID字段是自增长字段,初始值为1,增长步长为1表级完整性约束类别类别约束约束描述描述主键主键PRIMARYKEYo定义表的主键,留意主键可能有多列。外键外键FOR日GNKEY(10、外码REFERENCES被参照表(对应列)定义表中的外键,以及外键对应的主表和主表中的对应列。留意外键可能是多列。唯一性唯一性UNlQUE(列组)表示表中任意两条记录在指定列组上的取值不能重复。CREATETABLEMusic(IDbigintIdenTITY(IzI)NOTNULL,CONSTRAINTPK_Musicprimarykeyclustered(d),constraintFK_Music_categoryforeignKEY(CategoryJD)REFERENCESCategory(ID)MediaType字段,默认值为0。在SQL中字符串的界定11、符为单引号。表级约束FQMusijCategory为外键,参照主表为CategOry,对应参照字段为ID04.维护基本表ALTERTABLEALTER/ADD/DROP修改字段ALTERTABLEMusicALTERCOLUMNCodenvarchar(50)NOTNULL增加表级约束ALTERTABLEMusicADDCONSTRAINTUCLMUSiJCOdeUNIQUE(COde)册IJ除字段ALTERTABLEMusicDROPCOLUMNPerformers增力口字段ALTERTABLEMusicADDCostDecimal(10,12、2),AcquiredDateDateTimeJM除约束ALTERTABLEMusicDROPCONSTRAINTDF_Music_MediaType_lFCDBCEBALTERTABLEMusicALTERCOLUMNMediaTypenchar(l)ALTERTABLEMusicADDCONSTRAINTDF_Music_MediaTypeDEFAULT(0)FORMediaType5.使用图形界面右键单击对象资源管理器中的表这个节点,在弹出菜单中选择表命令数据录入界面右键单击对象资源管理器中的表,在菜单中选择编辑前200行命令当前行新增13、行输入数据保存数据删除数据自增列外键值空值4.3查询数据1.单表简洁查询SELECTFROMWHEREORDERBY2.模糊查找通配符通配符说明说明示例示例任意字符串。天,任意位置包含天一底划线,表任何单个字符。天一,倒数第2个字符为天指定范围或集合中的任何单个字符。%2022-9,以2022、2022、2022结尾。%2022468,以2022、2022、2022结尾。不属于指定范围或集合的任何单个字符。%2022-9,最终一位不是0、1、9o%2022468,最终一位不是2、4、6、8。SELECT*FROMMusicWHEREDescription14、LlKE%3.简洁连接查询笛卡尔积SELECT*FROMCategoryzMusic通过WHERE条件可以过滤不合理的连接结果表名前缀,表别名连接条件4.其他连接查询-多表连接查询字段名字段名类型类型属性属性说明说明Dlnt32PK,IDENTITY代码IDQCodeString(IO)IDX,NOTNULL代码。NameString(250)NOTNULL代码名称。CodeForString(SO)IDX,NOTNULL代码用途,例如CodeFor=Music.MediaType,表示为Music表的MediaType字段供应代码转换数据。代码表CodeNames字段字段别15、名别名4.其他连接查询反身连接查询音乐分类可以有层次结构上级分类和下级分类之间是l:n的联系分类表中增加一列ParentJD,用于存放该分类所属的上级分类ParentJD是一个外键,参照同一张表的主键ID字段顶级分类没有上级分类,ParenjID字段允许为空获得音乐资料所属音乐分类和上级音乐分类CategOry表相当于两张表,用表别名区分!4.其他连接查询外连接查询只列出了存在上级音乐分类的那些音乐分类ca.ParentJD=pca.lD一级音乐分类,ParentJD为NULL,不满意“左外连接左外连接、右外连接右外连接和全外连接全外连接5.嵌套查询查询结果直接作为集合进行集合运算Unionjnterset和exceptin嵌套子查询嵌套子查询5.嵌套查询exists对于外层表的每条记录,都会执行一次嵌套子查询,以对于外层表的每条记录,都会执行一次嵌套子查询,以确定推断结果确定推断结果5.嵌套查询-NoTEXISTS实战练习为个人通讯录创建SQLServer数据库,并使用命令的方式依据关系模型创建数据库表格,然后使用图形界面手工为表格添加肯定数量的数据