好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

SQLServer数据库学习笔记.docx

18页
  • 卖家[上传人]:飞***
  • 文档编号:44973725
  • 上传时间:2018-06-14
  • 文档格式:DOCX
  • 文档大小:1.06MB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 数据库 一、数据库基础知识 1、 发展阶段 萌芽期(文件系统)  初级阶段(层次模型和网状模型)主要代表为 IBM 公司的 IMS(信息管理系统) 中级阶段(关系型数据库)主要代表为甲骨文公 司 Oracle,微软 SQL Server 和 IBM 的 DB2 高级阶段(关系对象型数据库) 2、 数据模型层次模型:结构型数据库主要数据模型,代表数据库为 IMS网状模型:构成网状数据库的主要数据模型关系模型: 采用二维表结构 采用关系模型组织数据 查询效率有时不高 面向对象模型: 3、数据库系统结构 (1)用户级数据库:外模式 (2)概念机数据库:模式 (3)乌力吉数据库:内模式,最接近数据的物理存储与组织级别 4、数据库三模式 (1)外模式:模式的子集,应用程序都是和外模式打交道 (2)模式: (3)内模式:只有一个内模式5、数据库的二级映像(1)外模式/模式映像:保障物理独立性 (2)模式/内模式映像:保证逻辑独立性 6、关系模型 完整性约束 实体完整性(所有主属性都不能取空值) ;参照完整性(多个表之间) ;用户 自定义的完整性 7、SQL:(结构化查询语言) T-SQL :SQL Server,包括数据定义语言,数据操作语言,数据查询语言,数据控 制语言 PL_SQL:Oracle,声明,执行体开始,异常处理,执行体结束。

      二、SQL Server 数据库基础 1、系统数据库:包括 Resource 数据库(只读数据库) 、master 数据库、msdb 数据库、 tempdb 数据库、model 数据库(数据库模板) ;系统数据库存储在隐藏的系统表中 2、用户数据库: 数据库的存储机构包括逻辑存储结构和物理存储结构 SQL Server 数据文件类型:主数据文件(mdf 文件,只能有一个) 、辅助数据文件 (ndf,可以没有,也可以有多个)文件、日志文件(ldf,记录对数据库记录的操作,至少 有一个,可以有多个) ;数据存储的基本单位是“页” ,一个页的大小为 8Kb,一个区有 8 个页 (1)创建数据库 名称遵循规则:第一个字符必须是字母或“_” “@” “#” ;数据库名称不能是 Transaction-SQL 的保留字;不允许嵌入空格或其他特殊字符 USE masterif exists(select * from sysdatabases where name = 'mytest')drop database mytestcreate database myteston primary(name = 'mytest',filename = 'D:\Program Files\SQL Server Data\SQL Server Data\Data\mytest.mdf',size = 5MB,maxsize = 100MB,filegrowth = 15%),(name = 'mytest1',filename = 'D:\Program Files\SQL Server Data\SQL Server Data\Data\mytest1.mdf',size = 5MB,maxsize = 100MB,filegrowth = 15%)log on(name = 'mytest_log',filename = 'D:\Program Files\SQL Server Data\SQL Server Data\Data\mytest_log.ldf',size = 2MB,filegrowth = 1MB)Go(2)删除数据库 DROP DATABASE 数据库名 (3)收缩数据库 手动收缩和自动收缩 3、数据表 数据完整性:实体完整性约束,表中不能存在相同的数据项;域完整性,给定列的输 入内容具有有效性;引用完整性,保存表之间的定义关系;自定义完整性 主键:一个表只能有一个主键,可以没有主键,选择时,要确保最少性和稳定性 外键:确保子表中的数据对应主表中的主键或者唯一键 常用数据类型: 数字类型:int,float,decimal(必须制定范围和精度) 文本类型:char,varchar,nvarchar,text Bit 数据类型:bool 日期时间类型:datatime 货币型数据:money (1)创建数据表 (2)删除数据表 USE TrainingBasegoif exists(select * from sysobjects where name = 'Trainee')drop table Traineecreate table Trainee(TraineeNo int NOT NULL,TraineeName nvarchar(50) not null,Sex bit not null,GradeID int not null,Phone nvarchar(50) null,Address nvarchar(255) null,BornDate datetime not null,Email nvarchar(50) null,IdentityCard varchar(18) not null)(3)创建删除约束 主键约束:主键值必须唯一 ALTER TABLE TraineeADD CONSTRANINT PK_Trainee PRIMARY KEY(TraineeNo)非空约束: ALTER TABLE Trainee ADD CONSTRANINT PK_Trainee PRIMARY KEY(TraineeNo)唯一约束: ALTER TABLE Trainee ADD CONSTRANINT UQ_IdentityCard UNIQUE(IdentityCard)检查约束: ALTER TABLE Trainee ADD CONSTRANINT CK_BornDate CHECK(BornDate>’1980-1-1’)默认约束: ALTER TABLE TraineeADD CONSTRANINT DF_Address DEFAULT (‘地址不详’) for Address 外键约束: ALTER TABLE Trainee ADD CONSTRANINT FK_Grade FOREIGN KEY (GradeId) REFERENCE GradeId4、SQL Server 身份验证 (1)Windows 身份验证(更安全) (2)SQL Server 身份验证(Windows 身份验证改为 SQLServer 身份验证的方式: 首先,属性更改,然后改安全性中的内容) 5、访问权限 对数据库服务器控制权限 对数据库中数据控制权限 添加用户 6、导入导出数据 7、数据库优化 (1)调整数据库结构的设计 (2)调整应用程序机构设计 (3)调整数据库 SQL 语句 (4)调整服务器内存分配 避免多表连接查询 使用同一的 SQL 语句规范 批量导入数据时,设置恢复模式为“大容量日志恢复模式” ,导入前禁用索引。

      一、T_SQL 1、运算符 算术运算符:+、-、*、/,% 赋值运算符:= 比较运算符:,=,!=,,>= 逻辑运算符:AND,OR,NOT 2、表操作 插入:一般插入一行,INSERT INTO Grade[GradeName] VALUES('实习阶段'),可用关键字 DEFAULT 表示用默认值修改:可更新一行数据,也可更新多行数据,也可能一行数据都不更新,UPDATE 表明 SET(字段名)=更新值[WHERE 更新条件] UPDATE Result SET TraineeResult = TraineeResult + 5 WHERE TraineeResult ,删除数据行数与 WHERE 删除条 件确定的行数相关,删除有外键关系的数据时,必须先把外键表中的数据删除掉:DELETE FROM Trainee WHERE TraineeName = ‘张庆艳’,TRUNCATE TABLE 表名,数据不能恢复,效 率更高,删除所有行数,但不删除表结构、索引、关系等,不能删除有外键的表 3、数据查询 (1)简单的查询语句: 全部查询:SELECT * FROM 表名(尽量少使用,效率比较低) ; 条件查询:SELECT [字段名,字段名,字段名] FROM 表名 [WHERE 查询 条件] 使用别名:SELECT 列名 AS 列的别名 FROM 表名;SELECT 列名 列的 别名 FROM 表名;SELECT 列的别名=列名 FROM 表名(使用中文别名时,可不用引号, 但不能使用全角引号;使用的英文别名超过两个单词时,必须使用引号将别名括起来) 查询中使用常量列:SELECT 姓名=TraineeName,地址=Address, ‘河北 新龙’AS 实习地点 FROM Trainee 查询空值:SELECT [字段名] FROM 表名 WHERE 字段名 IS(NOT) NULL 限制查询返回的行数:SELECT TOP 数量 字段名 FROM 表名 WHERE 条 件; 按百分比 SELECT TOP 数量 PERCENT 字段名 FROM 表 名 WHERE 条件 顺序排列查询结果:查询语句 ORDER BY 字段名 DESD/ASC(2)查询中使用函数: 字符串函数:日期函数:数学函数:系统函数:(3)模糊查询: 通配符:替代字符,通配符必须加上 LIKELIKE:仅与字符数据类型联合使用 BETWEEN…AND:包含起始值和终止值,起始值不能大于终止值 IN(NOT IN):查询匹配的记录,SELECT TraineeName AS 实习生姓名 FROM Trainee WHERE Address IN(‘北京市海淀区’ , ‘广州’ , ‘上海虹桥’ )聚合函数:基于列进行计算 SUM:求和,用于数字类型的列 AVG:求平均值,所有数字的平均值 MAX()和 MIN():最值 COUNT():求行数;COUNT(*),检索所有列;COUNT(1),检所使用列;COUNT(列 名)检索指定列非空的行数 分组查询:使用 GROUP BY 子句实现分组统计,HAVING,对分组进行筛选 SELECT SubjectNo,AVG(TraineeResult)AS 课程平均成绩 FROM Result GROUP BY SubjectNo HAVING AVG(TraineeResult) >=60(4)创建新表:SELECT INTO,新表必须不存在 SELECT Trainee.TraineeName,Trainee.Address,Trainee.Email INTO NewAddressList Comment [h1]: 将全部行并入结果中, 其中包括重复行FROM TraineeWHERE 180 AND B.Subject = (SELECT C.SubjectNo FROM Subject C WHERE UPPER( C.SubjectName )=’SQLSERVER’) )  SELECT * FROM Trainee A JOIN Result B ON A.TraineeNo = B.TraineeNo JOIN Subject C ON C.SubjectNo = B.SubjectNo WHERE UPPER(C.SubjectName) = ‘SQLServer’ AND B.TraineeResult > 804、多表查询 (1)内联接:从两个或两个以上的表组合中挑选出符合联接条件的数据,如果数 据无法满足联接条件则将其丢弃,在内联接中,参与联接的表的地位是平等的。

      SELECT 表名 1.字段名,…,表名 2.字段名,… FROM 表名 1,表名 2 WHERE 表名 1.字段名 = 表名 2.字段名 SELECT Trainee.TraineeName,Result.SubjectN。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.