收藏 分销(赏)

数据库应用套课件幻灯片教学教程电子讲义.pptx

上传人:天**** 文档编号:9442619 上传时间:2025-03-26 格式:PPTX 页数:362 大小:1.52MB
下载 相关 举报
数据库应用套课件幻灯片教学教程电子讲义.pptx_第1页
第1页 / 共362页
数据库应用套课件幻灯片教学教程电子讲义.pptx_第2页
第2页 / 共362页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,数据库应用,SQL server 2012,什么是数据库,数据库的定义,数据库,(Database,简称,DB),是,长期储存,在计算机内、,有组织,的、,可共享,的,大量,数据的集合。,数据库的基本特征,数据按一定的数据模型组织、描述和储存,可为各种用户共享,冗余度较小,数据独立性较高,易扩展,数据库的地位,数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支,数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志,数据库管理系统,什么是,DBMS,位于用户与操作系统之间的一层数据管理软件,是基础软件,是一个大型复杂的软件系统,DBMS,的用途,科学地组织和存储数据、高效地获取和维护数据,数据库管理系统分类,层次,网状,关系,对象关系,数据库发展历程,数据库技术的发展经过了,50,年的历程,1963,年,,Charles.W.Bachman,设计开发的,IDS,(,Integrated Data Store,)综合数据存储系统开始投入运行,使多个,COBOL,程序可以共享数据库,1968,年,网状数据库系统,TOTALtutl,出现。,1969,年,,McGee,开发出层次式数据库系统,发布了,IBM,的,IMS,系统。信息管理系统,数据库发展历程,1970,年,,IBM,公司,San Jose,研究所的,Edgar.F.Code,发表了题为“大型共享数据库数据的关系模型”的著名论文,树立了,关系型,数据库的新的里程碑,1973,年,,Charles.W.Bachman,因在数据库方面的杰出贡献而获,ACM,图灵奖,1976,年,,IBM San Jose,研究所研制出在,IBM 370,机器上运行的,SYSTEM R,关系型数据库管理系统,1979,年,,ORACLE,公司推出了第一个商品化的关系型数据库系统,ORACLE 2.0,数据库发展历程,80,年代至今,是数据库技术发展的成熟时期,这个时期出现了众多的大型数据库系统,包括,IBM,的,DB2,、微软的,SQL Server,、,Sybase,以及,Informix,相继出现,使数据库系统呈现出夺目的光彩,中国的人大金仓,1981,年,,Edgar.F.Codd,因在关系数椐库管理系统的理论和实践方面的贡献而获奖,1998,年,,James Gray,成为第三十三位图灵奖获得者。数据库和事务,(Transaction),处理研究领域开创性的贡献,和其在系统实现方面的领导地位,第,2,章 数据库的创建和管理,本章学习目标,掌握数据库的两种存储结构,掌握数据库文件和文件组的相关知识点,掌握创建数据库的方法,掌握删除数据库的方法,掌握数据库更名、修改大小的方法,本章内容,2.1,系统数据库,2.2,数据库的结构,2.2.1,数据库文件,2.2.2,文件组,2.3,创建数据库,2.4,管理数据库,2.1,系统数据库,在安装了,SQL Server 2012,以后,系统会自动创建,5,个系统数据库:,master,、,model,、,msdb,、,tempdb,、,resource,master,:记录了,SQL Server,系统的所有系统级别的信息,包括系统中所有的登录账户、链接服务器、系统配置信息、,SQL Server,的初始化信息及数据库错误信息等内容。,2.1,系统数据库,model,:是创建用户数据库的模板。当用户创建一个数据库时,,model,数据库的内容会自动复制到用户数据库中。,msdb,:存储报警、作业及操作员信息。,tempdb,:为临时表和临时存储过程提供空间,resource,:只读数据库,包含,SQL Server,中的所有系统对象。,2.2,数据库的结构,数据库的存储结构分为,逻辑,存储结构和,物理,存储结构两种,数据库的,逻辑存储结构,指的是数据库是由哪些逻辑对象组成的,,SQL Server,中的逻辑对象主要包括,数据,表、视图、同义词、存储过程、函数、触发器、规则,另外还有用户、角色、架构等,2.2,数据库的结构,保存数据库各种逻辑对象的物理文件如何在磁盘上存储的,数据库在磁盘上是以,文件,为单位存储的,SQL Server,将数据库映射为,一组,操作系统文件,2.2.1,数据库文件,每个数据库都,至少,有两个物理文件与之对应,一个数据库文件(,.MDF,),一个事务日志文件(,.LDF,),数据和日志信息从不混合在相同的文件中,而且各文件仅在一个数据库中使用,2.2.1,数据库文件,数据库具有三种类型的文件:,主数据文件(,.MDF,),辅助数据文件(,.NDF,),事物日志文件(,.LDF,),2.2.1,数据库文件,主数据文件,主数据文件是数据库的起点,指向数据库中的其他文件,每个数据库都有一个主数据文件,主数据文件的推荐文件扩展名是,.mdf,。,2.2.1,数据库文件,辅助数据文件,除主数据文件以外的所有其他数据文件都是辅助数据文件,数据库可能不含有任何辅助数据文件,数据库可含有多个辅助数据文件,辅助数据文件的推荐文件扩展名是,.ndf,2.2.1,数据库文件,事务日志文件,包含用于恢复数据库的所有日志信息,每个数据库必须至少有一个日志文件,事务日志采用提前写入方式,即对数据库的修改先写入事务日志中,然后再写入数据库,日志文件的推荐文件扩展名,是,.Ldf,2.2.1,数据库文件,SQL,文件拥有两个名称,逻辑文件名,物理文件名,逻辑文件名,是在所有,Transact-SQL,语句中引用物理文件时所使用的名称,具有唯一性,即对象名,物理文件名,是包括路径的物理文件名,例如数据库,test,,对应,c:test.mdf,和,c:testlog.ldf,数据库中所有文件的位置都记录在数据库的主文件和,master,数据库中,2.2.2 文件组,SQL Server,中的数据库文件分为:,主文件组(,Primary File Group),用户定义文件组(,user_defined Group),主文件组:主要数据库文件和任何没有明确指派给其他文件组的其他文件,数据库的系统表都包含在主文件组中。,2.2.2 文件组,用户定义文件组:在,CREATE DATABASE,或,ALTER DATABASE,语句中,使用,FILEGROUP,关键字指定的文件组,一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用,日志文件是独立的,它不能作为任何文件组的成员,在没有指定用户定义文件组的情况下,所有文件都包含在主文件组中,2.3,创建数据库,若要创建数据库,必须确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。,创建数据库的方法主要有两种:,使用,SQL Server,管理控制台创建数据库,使用,Transact-SQL,语言创建数据库。,2.3,创建数据库,CREATE DATABASE database_name,ON,PRIMARY ,.n,n ,LOG ON ,n ,:=,(NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED ,FILEGROWTH=growth_increment KB|MB|GB|TB|%,),n,:=,FILEGROUP filegroup_name DEFAULT ,n,2.3,创建数据库,各参数说明如下:,database_name,:数据库的名称,最长为,128,个字符。,PRIMARY,:该选项是一个关键字,指定主文件组中的文件。,LOG ON,:指明事务日志文件的明确定义。,NAME,:指定数据库的逻辑名称,这是在,SQL Server,系统中使用的名称,是数据库在,SQL Server,中的标识符。,FILENAME,:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和,NAME,的逻辑名称一一对应。,SIZE,:指定数据库的初始容量大小。,MAXSIZE,:指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。,FILEGROWTH,:指定文件每次增加容量的大小,当指定数据为,0,时,表示文件不增长。,2.3,创建数据库,例:使用,CREATE DATABASE,创建一个新的数据库,名称为,“,STUDENT2,”,,其他所有参数均取默认值。,create database,STUDENT2,3.2.1 创建数据库,例:创建一个名称为,STUDENT3,的数据库,该数据库的主文件逻辑名称为,STUDENT3_data,,物理文件名为,STUDENT3.mdf,,初始大小为3,MB,,最大尺寸为无限大,增长速度为15%;数据库的日志文件逻辑名称为,STUDENT3_log,,物理文件名为,STUDENT3.ldf,,初始大小为2,MB,,最大尺寸为50,MB,,增长速度为1,MB;,要求数据库文件和日志文件的物理文件都存放在,E,盘的,DATA,文件夹下。,实现的步骤如下:,(,1,)在,E,盘创建一个新的文件夹,名称是“,DATA,”。,(,2,)在,SQL Server Management Studio,中新建一个查询页面。,(,3,)输入以下程序段并执行此查询:,create database,STUDENT3,on primary,(,name,=STUDENT3_data,filename,=E:DATASTUDENT3.mdf,size,=3,maxsize,=unlimited,filegrowth,=15%),log on,(,name,=STUDENT3_log,filename,=E:DATASTUDENT3.ldf,size,=2,maxsize,=50,filegrowth,=1),2.3,创建数据库,例:创建一个指定多个数据文件和日志文件的数据库。该数据库名称为,STUDENTS,,有1个5,MB,和1个10,MB,的数据文件和2个5,MB,的事务日志文件。数据文件逻辑名称为,STUDENTS1,和,STUDENTS2,,物理文件名为,STUDENTS1.mdf,和,STUDENTS2.ndf。,主文件是,STUDENTS1,,由,PRIMARY,指定,两个数据文件的最大尺寸分别为无限大和100,MB,,增长速度分别为10%和1,MB。,事务日志文件的逻辑名为,STUDENTSLOG1,和,STUDENTSLOG2,,物理文件名为,STUDENTSLOG1.ldf,和,STUDENTSLOG2.ldf,,最大尺寸均为50,MB,,文件增长速度为1,MB。,要求数据库文件和日志文件的物理文件都存放在,E,盘的,DATA,文件夹下。,实现的步骤如下:,(,1,)在,E,盘创建一个新的文件夹,名称是“,DATA,”。,(,2,)在,SQL Server Management Studio,中新建一个查询页面。,(,3,)输入以下程序段并执行此查询:,create database,STUDENTS,on primary,(,name,=STUDENTS1,filename,=E:DATASTUDENTS1.mdf,size,=5,maxsize,=unlimited,filegrowth,=10%),(,name,=STUDENTS12,filename,=E:DATASTUDENTS2.ndf,size,=10,maxsize,=100,filegrowth,=1),2.3,创建数据库,log on,(,name,=STUDENTSLOG1,filename,=E:DATASTUDENTSLOG1.ldf,size,=5,maxsize,=50,filegrowth,=1),(,name,=STUDENTSLOG2,filename,=E:DATASTUDENTSLOG2.ldf,size,=5,maxsize,=50,filegrowth,=1),2.3,创建数据库,2.3,创建数据库,例:创建学生管理数据库,jsjxy,。将该数据库的数据文件存储在,D:Data,下,数据文件的逻辑名称为,jsjxy,,文件名为,jsjxy,,初始大小为,5MB,,最大尺寸为无限制,增长速度为,1MB,;该数据库的日志文件,逻辑名称为,jsjxy_log,,文件名为,jsjxy_log.ldf,,初始大小为,2MB,,最大尺寸为,2GB,,增长速度为,10%,。,实现的步骤如下:,在,D,盘创建一个新的文件夹,名称是“,DATA,”。,CREATE DATABASE jsjxy,ON,(NAME=jsjxy,/*,注意有逗号分隔*,/,FILENAME=d:datajsjxy.mdf,/*,注意用半角状态下的引号,d:data,文件夹必须已经存在*,/,SIZE=5MB,MAXSIZE=UNLIMITED,FILEGROWTH=1MB)/*,注意没有逗号*,/,LOG ON,(NAME=jsjxy_log,,,/*,注意有逗号分隔*,/,FILENAME=d:datajsjxy_log.ldf,,,/*,注意使用半角状态下的引号*,/,SIZE=2MB,MAXSIZE=2084MB,FILEGROWTH=10%)/*,注意没有逗号*,/,2.3,创建数据库,2.4,管理数据库,重命名数据库,附加与分离数据库,更改数据库状态,删除数据库,2.4.1,查看数据库信息,sp_helpdb ,数据库名,sp_helpdb,sp_helpdb jsjxy,2.4.3,重命名数据库,1sp_renamedb,原数据库名,新数据库名,2.ALTER DATABASE old_database_name,Modify NAME=new_database_name,2.4.5,分离和附加数据库,使用管理平台实现,2.4.6,删除数据库,drop,数据库名,2.4.4,打开数据库,USE,数据库名,第,3,章,数据表的创建和管理,本章学习目标,掌握,SQL Server 2012,中的数据类型,掌握如何利用,SQL Server,管理控制台和,Transact-SQL,语言创建表,掌握创建、删除和修改约束的方法,掌握增加、删除和修改字段的方法,掌握如何查看数据表的定义、表中数据、数据库对象之间的依赖关系,掌握如何利用,SQL Server,管理控制台和,Transact-SQL,语言删除表,3.1,创建数据表,3.2,管理数据表,3.3,使用约束实现数据完整性,3.4,插入、删除、修改表中数据,3.1,创建数据表,字段、记录,3.1,创建数据表,每个数据库可容纳,20,亿个表,每个表可以有,1024,列(字段),CREATE TABLE database_name.schema_name.|schema_name.table_name,(,column_name,NULL|NOT NULL,IDENTITY,(,seed,increment,)n ,n ,n,),3.1,创建数据表,创建表,student,CREATE TABLE student,(,id char(12)NOT NULL,name nvarchar(50),sex char(2),age int,birthday date,nation nvarchar(50),class nvarchar(50),specialty nvarchar(50),),3.1,创建数据表,创建表,course,CREATE TABLE course,(,courseid char(12)NOT NULL,coursename char(50)NOT NULL,credit int,),3.1,创建数据表,创建表,sc,CREATE TABLE sc,(,id char(12)NOT NULL,courseid char(12)NOT NULL,score float,),3.2.1,增加、删除和修改字段,ALTER TABLE table,ALTER COLUMN column_name,new_data_type(precision,scale)|NULL|NOT NULL,|ADD|,|,n,|DROPCONSTRAINTconstraint_name,|COLUMN column_name,n,【例】在,student,表中增加三列:“,address,”列,数据类型为,varchar(20),,允许为空;“,telephone,”列,数据类型为,varchar(15),,允许为空,“,courseid,”列,数据类型为,char(12),,允许为空。,ALTER TABLE student,ADD,address varchar(20)NULL,telephone varchar(15)NULL,courseid char(12)NULL,增加字段,【例】,在,student,表中,删除“,class,”、“,telephone,”两列。,ALTER TABLE student,DROP COLUMN class,telephone,删除字段,ALTER TABLE,表名,ALTER COLUMN,列名,【例】在,course,表中,将,courseid,列的数据类型改为,varchar(20),,允许空。,ALTER TABLE course,ALTER COLUMN courseid varchar(20)NULL,修改字段,sp_rename,表名,.,原列名,,,新列名,,,COLUMN,sp_rename student.specialty,DepartmentName,COLUMN,修改列名,sp_rename,原表名,新表名,【例】将,course,表重命名为,Department,。,sp_rename course,Department,3.2.2,重命名数据表,DROP TABLE,表名,1,n,【例】删除,Department,表。,DROP TABLE Department,3.2.3,删除数据表,3.3.1,数据完整性定义,数据完整性是指数据的正确性和有效性,主要用于保证数据库中数据的质量,防止数据库中存在不符合语义规定的数据和防止因错误信息的输入,/,输出造成无效操作或报错而提出的,3.3,使用约束实现数据完整性,实体完整性,参照完整性,域完整性,3.3.2,数据完整性类型,约束(,constraint,)是,SQL Server 2012,提供的自动保持数据库完整性的一种方法,约束就是限制,定义约束就是定义可输入表或表的单个列中的数据的限制条件。,3.3.3,约束定义,主键约束(,primary key constraint,),唯一约束(,unique constraint,),外键约束(,foreign key constraint,),检查约束(,check constraint,),默认约束(,default constraint,),非空约束(,not null constraint,),3.3.4,约束分类,3.3.4,约束分类,-,约束与完整性,为了便于管理约束,在创建约束时,需要创建约束的名称,约束名称必须符合标识符命名规则。,3.3.5,约束名,1,使用,CREATE TABLE,语句创建,CREATE TABLE,表名,(,n,n),2,使用,ALTER TABLE,语句创建约束,ALTER TABLE,表名,ADD,3.3.6,创建约束的语法格式,1,主键约束的定义,主键约束(,primary key constraint,)用于指定表的一列或几列的组合来唯一标识表,即能在表中唯一地指定一行记录,这样的一列或列的组合称为表的主键(,primary key,,,PK,),定义主键约束的列其值不可为空、不可重复,每个表中只能有一个主键。,3.3.7,主键约束,2,在创建表的同时创建主键约束,(,1,)创建单个列的主键可采用列级约束,列名,CONSTRAINT,约束名,PRIMARY KEY,(,2,)多个列组合的主键约束,采用表级约束,CONSTRAINT,约束名,PRIMARY KEY(,列名,1 ,列名,n),3.3.7,主键约束,【例】在,jsjxy,数据库中,创建,student,表并为,id,字段添加主键。,CREATE TABLE student1,(,id char(12)NOT NULL PRIMARY KEY,name nvarchar(50),sex char(2),age int,birthday date,nation nvarchar(50),class nvarchar(50),specialty nvarchar(50),),3.3.7,主键约束,【例】在,score1,表中,将,id,和,courseid,两个字段设为主键。,CREATE TABLE score1,(,id char(12)NOT NULL,courseid char(12)NOT NULL,score float,CONSTRAINT PK_score1 PRIMARY KEY(id,,,courseid),),3.3.7,主键约束,3,在一张现有表上添加主键约束,【例】为,student,表添加主键约束。,ALTER TABLE student,ADD CONSTRAINT PK_student PRIMARY KEY(id),3.3.7,主键约束,4,删除主键约束,ALTER TABLE,表名,DROP CONSTRAINT,约束名,1,约束名,n,【例】为,student,表删除主键约束。,ALTER TABLE student,drop CONSTRAINT PK_student,3.3.7,主键约束,唯一约束(,unique constraint,)用于指定一个列或多个列的组合值具有唯一性,唯一约束指定的列可以为,NULL,,但主键约束所在的列则不允许为,NULL,。,一个表中可以包含多个唯一约束,而主键约束则只能有一个。,3.3.8,唯一约束,2,在创建表的同时创建唯一约束,(,1,)创建单个列的唯一可采用列级约束,列名,CONSTRAINT,约束名,unique,(,2,)多个列组合的唯一约束,采用表级约束,CONSTRAINT,约束名,unique(,列名,1 ,列名,n),3.3.8,唯一约束,CREATE TABLE course,(courseid char(12)PRIMARY KEY,coursename varchar(50)NOT NULL UNIQUE,credit int),CREATE TABLE course,(courseid char(12)PRIMARY KEY,coursename varchar(50)NOT NULL,credit int,constraint kk unique(coursename),3.3.8,唯一约束,3,修改表语句创建唯一约束,【例】为,student,表添加唯一约束。,ALTER TABLE student1,ADD CONSTRAINT ddd unique(name),3.3.8,唯一约束,3.3.9,外键约束,FOREIGN KEY(,列名,1,列名,2,列名,n),REFERENCES,主键表名,(,列名,1,列名,2,列名,n),ON DELETE CASCADE|NO ACTION|SET NULL|SET DEFAULT ,ON UPDATE CASCADE|NO ACTION|SET NULL|SET DEFAULT ,create,和,alter,中都可使用,【例】在,jsjxy,数据库中,为,sc,表创建外键约束。,ALTER TABLE sc,ADD CONSTRAINT FK_sc_student,FOREIGN KEY(id),REFERENCES student(id),ALTER TABLE sc,ADD CONSTRAINT FK_sc_course,FOREIGN KEY(courseid),REFERENCES course(courseid),3.3.9,外键约束,1.,使用,CREATE TABLE,语句在建表时创建检查约束,CREATE TABLE,表名,(,列名 数据类型,CONSTRAINT,检查约束名,CHECK(),n ),CREATE TABLE xsscore,(id char(8)NOT NULL,courseid char(4)NOT NULL,score decimal(4,1)NULL CHECK(score=0 AND score=100),CONSTRAINT PK_xsscore,PRIMARY KEY(id,courseid),CONSTRAINT FK_xsscore_student,FOREIGN KEY(id),REFERENCES xsscore(id),CONSTRAINT FK_xsscore_course,FOREIGN KEY(courseid),REFERENCES course(courseid),3.3.10,检查约束,3.3.10,检查约束,2.,使用,ALTER TABLE,语句定义检查约束,ALTER TABLE,表名,WITH CHECK|NOCHECK,ADD CONSTRAINT,检查约束名,CHECK(),WITH CHECK,:对已有记录进行约束检查,此值为默认值。,WITH NOCHECK,:对已有记录不进行约束检查,只对以后插入的新记录进行检查。,ALTER TABLE student,ADD CONSTRAINT CK_student_age,CHECK(age=20 AND age=22),3.3.11,默认值约束,1.,使用,CREATE TABLE,语句创建默认值约束,CREATE TABLE,表名,(,列名 数据类型,CONSTRAINT,默认值约束名,DEFAULT ,.n ),CREATE TABLE Students,(,学号,Char(8)PRIMARY KEY,姓名,Varchar(12)NOT NULL,民族,Varchar(8)NOT NULL DEFAULT,汉族,),3.3.11,默认值约束,2.,使用,ALTER TABLE,语句添加默认值约束,ALTER TABLE,表名,ADD CONSTRAINT,默认值约束名,DEFAULT,(,),FOR,列名,ALTER TABLE Students,ADD CONSTRAINT DF_Students_nation,DEFAULT,汉族,FOR nation,3.3.12,非空约束,1.,使用,CREATE TABLE,语句创建非空约束,CREATE TABLE,表名,(,列名 数据类型,CONSTRAINT,非空约束名,NULL|NOT NULL ,.n ),2.ALTER TABLE,语句添加非空约束,ALTER TABLE,表名,ALTER COLUMN,列名 数据类型,NULL|NOT NULL,3.3.13,使用,IDENTITY,列,1.,使用,CREATE TABEL,语句创建,IDENTITY,列,CREATE TABLE,表名,(,列名 数据类型,IDENTITY(seed,,,increment),.n ),CREATE TABLE New_score,(,id Int constraint tt PRIMARY KEY IDENTITY(1,1),xhid Char(8)NOT NULL,courseid Char(4)NOT NULL,score Decimal(4,1)CHECK(score=0 AND score,3.4.2 更新数据,【例】一个带有,WHERE,条件的修改语句。,UPDATE STUDENT,SET id=201541030114,nation=,哈萨克,WHERE NAME=,郭贺,【例】一个简单的修改语句。,UPDATE STUDENT SET nation=,哈萨克,说明:如果没有,WHERE,子句,则,UPDATE,将会修改表中的每一行数据。,例:实现,A.c2,的值更新为,B.c3,UPDATE A,SET A.c2=B.c3,from A,B,where A.c1=B.c1,UPDATE A,SET A.c2=B.c3,from A inner join B on A.c1=B.c1,3.4.2,更新数据,表,A,表,B,3.4.3,删除数据,1 DELETE,语句,DELETE FROM,table_name|view_name ,WHERE ,3.4.3,删除数据,1 DELETE,语句,DELETE,FROM STUDENT,WHERE NAME=,郭贺,DELETE,FROM STUDENT1,3.4.3,删除数据,2 TRUNCATE,语句,TRUNCATE TABLE table_name,例:使用,TRUNCATE,语句清空表,STUDENT1,中的数据。,TRUNCATE TABLE STUDENT1,4.1 Transact-SQL,语言概论,SQL,的含义为结构化查询语言,即,structured query language,常量、变量、表达式、函数、流程控制语句、,事务和游标等,。,4.1.1 Transact-SQL,语言分类,数据定义语言(,data definition language,,,DDL,),数据操作语言(,data manipulation language,,,DML,),数据控制语言(,data control language,,,DCL,),事务管理语言(,transact management language,,,TML,),其他语言元素:如标识符、数据类型、流程控制和函数等。,4.1.2 Transact-SQL,语法约定,Transact-SQL,语法格式约定,数据库对象引用规则,标识符,续行,注释,1,Transact-SQL,语法格式约定,语法约定,说,明,大写,Transact-SQL,的保留字(关键字),通常为一个完整的英文单词或缩写,斜体或小写,Transact-SQL,语法中用户提供的参数,粗体,数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样输入的文本,子句或用户自定义的语法成分,(,大括号,),表示必选语法项,实际应用时大括号不能真正出现,(,方括号,),表示可选语法项,实际应用时方括号不能真正出现,(,竖线,),分隔大括号或方括号中的多个语法项,表示多项中只能选择其中任意一项,n,指示前面的语法项可以重复出现多次,相邻两项之间由逗号分隔,n,指示前面的语法项可以重复出现多次,相邻两项之间由空格分隔,;,可选的,Transact-SQL,语句终止符,实际应用时方括号不能真正出现,:=,子句的语法定义,2,数据库对象引用规则,server_name.database_name.schema_name.,|database_name.schema_name.,|schema_name.object_name,对象引用格式,说,明,server,database,schema,object,4,个部分的名称,server,database,object,省略架构名称,server,schema,object,省略数据库名称,server,object,省略数据库和架构名称,database,schema,object,省略服务器名称,database,object,省略服务器和架构名称,schema,Object,省略服务器和数据库名称,Object,省略服务器、数据库和架构名称,3,标识符,标识数据库对象的名称,第一个字符必须由字母,a,z,、,A,Z,以及来自其他语言的字母字符或者下划线,_,、,、,#,构成,其中以,开头的标识符表示局部变量或参数,以,#,开头的标识符表示全局临时对象,以,开始的标识符表示全局变量,也称为配置函数。,在定义标识符时,不能占用,Transact-SQL,的保留字,如不能将,Table,、,View,、,Index,等定义为一个标识符。,在标识符中不能含有空格或其他的特殊字符,并且标识符中的字符数量不能超过,128,个。,m n “m n”,允许。,4,续行,可以将一条语句放在多行进行编写,,Transact-SQL,会忽略空格和行尾的换行符号数据库对象引用规则,SELECT id,name,sex,nation,FROM student,WHERE nation,汉族,AND sex=,女,ORDER BY name,5,注释,嵌入行内的注释语句,-,块注释语句,/*/,4.2,数据类型,基本数据类型,用户自定义数据类型,4.2.1,基本数据类型,1,整型数据类型,类型名称,取值范围及说明,int,-2,31,2,31,-1,之间的整型数据(所有数字),存储大小为,4,字节,smallint,-2,15,2,15,-1,之间的整型数据,存储大小为,2,字节,bigint,-2,63,2,63,-1,之间的整型数据(所有数字),存储大小为,8,字节,tinyint,0,255,之间的整型数据,存储大小为,1,字节,bit,可以取值为,1,、,0,或,NULL,的整型数据类型。字符串值,TRUE,和,FALSE,可以转换为以下,bit,值:,TRUE,转换为,1,,,FALSE,转换为,0,4.2.1,基本数据类型,2,二进制数据类型,类 型 名 称,取值范围及说明,binary(n),固定长度的,n,字节二进制数据,,1,n,8000,,存储大小为,n,字节,varbinary (n|max),可变长度二进制数据。,1,n,8000,。,max,指示最大存储大小为,2,31,-1,字节。存储大小为所输入数据的实际长度,+2,字节,Image,长度可变的二进制数据,从,0,2,31,-1,字节。在,Microsoft SQL Server,的未来版本将删除该数据类型,请避免在新的开发工作中使用,并考虑修改当前使用该数据类型的应用程序,4.2.1,基本数据类型,3,浮点数据类型,类 型 名 称,取值范围及说明,Real,范围为,-3.40E+38,3.40E+38,,数据精度为,7,位有效数字,存储大小为,4,字节,float(n),其中,n,为用于存储,float,数值尾数的位数(以科学记数法表示),因此可以确定精度和存储大小。如果指定了,n,,则它必须是介于,1,和,53,之间的某个值。,n,的默认值为,53,。,SQL Server,将,n,视为下列两个可能值之一。如果,1,n,24,,则将,n,视为,24,。如果,25,n,53,,则将,n,视为,53,decimal(p,s),固定精度和小数位数。使用最大精度时,有效值从,-10,38,+1,10,38,-1,。,P,为(精度)最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。,1,p,38,。默认精度为,18,。,s,(小数位数)小数点右边为可以存储的十进制数字的最大位数。,0,s,p,。仅在指定精度后才可以指定小数位数。默认的小数位数为,0,。最大存储大小基于精度而变化,numeric(p,s),功能上等价于,decimal(p,s),4.2.1,基本数据类型,4,字符数据类型,类 型 名 称,取值范围及说明,char (n),固定长度,非,Unicode,字符数据,长度为,n,个字节。,1,n,8000,,存储大小是,n,个字节,varchar (n|max),可变长度,非,Uni
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服