1、SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key
2、,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(F
3、oreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型 - E-R图 数据库规范化:将数据库的结构精简为最简单的形式;从表中删除冗余列;标识所有依赖于其他数据库的数据。数据库三范式:第一范式就是无重复的列;第二范式就是非主属性非部分依赖于主关键字;第三范式就是属性不依赖于其他非主属性 2.SQL语句 SQL全称是“结构化查询语言(Structured Query Language)” SQL的4个部分:数据
4、定义语言DDL(Data Definition Language)用来定义数据的结构:create、alter、drop。数据控制语言DCL(Data Control Language)用来控制数据库组件的存取许可、存取权限等得命令:grant、revoke。数据操纵语言DML(Data Manipulation Language)用来操纵数据库中得数据的命令:insert、update、delete。数据查询语言DQL(Data Query Language)用来查询数据库中得数据的命令:select。SQL中得运算符 :算术运算符、位运算符、比较运算符、逻辑运算符、通配运算符、字符串连接符
5、、赋值运算符 3.查询 简单查询,使用TOP子句 查询结果排序order by 带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字, 模糊查询like 在查询中使用聚合函数:sum(x),avg(x),min(x),max(x),count(x),count(*) 使用分组查询group by,having子句 distinct关键字 列别名 select top 6 * from sales order by qty desc select au_id,au_fname,au_lname from authors where state in(&
6、#39;ks&,&ca&mi&) select au_fname,au_lname,phone from authors where au_id like &72234-%&select type,sum(price),avg(price),count(*) from titles group by type having type in(&business&psycheology&)简单子查询:嵌套子查询、相关子查询;子查询的select语句中不能使用order by子句,roder by子句只能对最终查询结果排序。嵌套子查询:执行过程,先执行子查询,子查询得到的结果不被显示,而是传给外层查
7、询,作为外层查询的条件,然后执行外层查询,并显示结果。嵌套子查询的执行不依赖于外层查询,子查询只执行一次。带有比较运算符的子查询,带有in和not in的子查询,带有any或all的子查询 相关子查询:子查询为外层查询的每一行执行一次,外层查询将子查询引用的列的值传给了子查询。相关子查询的执行依赖于外层查询,子查询需要重复的执行。带有exists和not exists的相关子查询。多表联接查询:内联接(inner join)、外联接(left、right、full)outer join)、自联接(self join)和交叉联接(cross join) 在查询上创建新表:select into语
8、句首先创建一个新表,然后用查询的结果填充新表。表别名 select coursename from course where courseid in(select distinct courseid from grade where grade>10) select studname from student where sudbirthday & any (select studbirthday from student where class = &信息系&) and class<&select studname from student where exists (selec
9、t * from grade where studid = student.studid and courseid = &01&select stud1.* from student as stud1 join student as stud2 on stud2.studname = &mm& and stud1.studsex = stud2.studsex select * into girls from student where studsex=&m&4.视图、索引和事务 视图是由一个或多个数据表(基本表)导出的虚拟表或者查询表,是关系数据库系统提供给用户以多种角度观察数据库中数据的重
10、要机制。视图的好处:能够简化用户的操作;视图能够对机密数据提供安全保护。创建视图时,视图的名称存在sysobjects表中。有关视图中所定义列的信息添加到syscolumns表中,而有关视图相关性的信息添加到sysdepends表中。另外,create view语句的文本添加到syscomments表中。 在通过视图向表中插入数据时,如果insert语句列表中包含有视图中没有选择的列和不允许为空值的列,这种操作是不允许的。创建视图:create view view_employee as select emp_id,fname,lname from employee 使用视图:select *
11、 from view_employee 修改视图:alter view view_employee as select emp_id,fname,job_id from employee where job_id&10 删除视图:drop veiw view_employee 查看视图结构:exec sp_help view_employee 查看视图定义信息:exec sp_helptext &view_employee&索引提供了一种基于一列或多列的值对表的数据行进行快速访问的方法。索引提供的是表中得逻辑顺序。聚集索引基于数据行的键值在表内排序和存储这些数据行。当数据表以某列为关键字建立聚
12、集索引时,表中得数据行就以该列(聚集索引键)的排序次序进行存储。每个表只能有一个聚集索引。非聚集索引具有完全独立于数据行的结构,一个表可以建立多个非聚集索引。创建聚集索引:create clustered index studid_ind on stud(studid) 创建非聚集索引:create unique index studfullname_ind on stud(fname desc,lname) 删除索引:drop index stud.studid_ind 查看stud表上得索引:exec sp_helpindex stud 事务是一种机制,是一个操作序列,它包含了一组数据库操
13、作命令,并且所有的命令作为一个整体一起向系统提交或撤销操作请求。事务的特性:原子性(Atomicity)、一致性(Consistenty)、隔离性(Isolation)、永久性(Durability)。事务分类:显示事务、隐性事务、自动提交事务。视图、索引和事务的创建、使用、修改和删除 5.TransactSQL编程 全局变量:由系统定义和维护,其名称以字符开头 局部变量:由用户定义和赋值,其名称以字符开头 输出语句:print 逻辑控制语句:begin.end ;break ;case ;continue ; goto ; if.else ;return ; while 常用函数:行集函数,
14、聚合函数,标量函数 转换函数:convert(dt,e,s),cast() 数学函数:绝对值abs(n),向上取整ceiling(n),向下取整floor(n),指定次幂power(n,y),四舍五入round(n,length),求符号sign(n),平方根sqrt(n) 日期和时间函数:dateadd(datepart,num,date),datediff(datepart,date1,date2),datename(datepart,date),datepart(datepart,date),getdate(),year(date),month(date),day(date) 字符串函数:lower(e),upper(e),left(e,i),right(e,i),replace(s1,s2,s3)用3替换1中的2,replicate(e,i)重复指定次数,stuff(s1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1