SQL Server数据库使用介绍_第1页
SQL Server数据库使用介绍_第2页
SQL Server数据库使用介绍_第3页
SQL Server数据库使用介绍_第4页
SQL Server数据库使用介绍_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server数据库使用介绍1. 数据库简介西安尚学堂1数据库是什么?什么是数据数据的存储什么是数据库使用数据库存储数据的优势数据库的发展历史2主流的数据库Microsoft SQL ServerOracle DB2MySql3SQL Server 2005组成部分可视化的集成管理工具数据库编程语言各类数据库服务数据文件SQL Server 20054数据库文件的分类数据库文件事务日志文件文件组5快速体验数据库开发-登录SQL Server Management StudioadministratorsaSQL Server身份验证windows身份验证6快速体验数据库开发-操作操作创建

2、数据库删除数据库文件的初始大小文件的增长方式最大文件大小数据文件存放位置数据库属性7数据库的分类示范数据库MasterModelMsdbTempdb系统数据库PubsNorthwindAdventureWorks用户数据库数据库的分类8SQL Server数据库使用介绍2. 数据完整性西安尚学堂9什么是完整性?10数据库完整性引用完整性自定义完整性实体完整性域完整性11数据库完整性实体完整性实体的唯一性,即同一张表中无相同记录12数据库完整性域完整性数据列是否符合要求,包括如下几点: 数据类型 数据的范围 数据的格式 数据是否允许为空13数据完整性引用完整性建立两表间的联系,保证外建的值引用主

3、键的值14数据完整性引用完整性失去引用完整性15数据完整性自定义完整性自定义完整性用来制定特定的业务规则,利用存储过程、触发器来实现。16创建表17创建表数据类型备注int存储范围是-2,147,483,648至2,147,483,647float从-1.79E+308到1.79E+308之间的任意数char固定长度(不超过 8 KB)的字符数据类型 varchar可变长度(不超过 8 KB)的字符数据类型datetime数据类型存储从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期money存储范围是 -922,337,203,685,477.5808 至 +922,

4、337,203,685,477.5807bit数据类型只能包括 0 或 1。可以用 bit 数据类型代表 TRUE 或 FALSE、YES 或 NO数据类型18什么是约束?19约束主键约束唯一约束外键约束检查约束默认约束20表中用来唯一标识表中一行的列称为主键。约束主键约束21约束外键约束 一个表可以有多个外键 主表中应该有主键 主键与外键数据类型必须相同 添加数据时要先添加主表记录,后添加子表记录 删除数据时要先删除子表记录,后删除主表记录外键约束实现了引用完整性,注意以下几点:22约束其他类型的约束 默认约束:为表中某列设置一个默认值 检查约束:用来定义可以接受的数据值或数据格式 唯一约束

5、:确保某一列在数据库中是唯一的23约束标识列 标识种子:第一次添加数据时初始值 标识增量:标识列中每次增加的值标识列可以实现自动编号,适合设置为逐渐列24删除表删除表时应先删除子表,再删除主表25SQL Server数据库使用介绍3. SQL语句之DDL西安尚学堂26什么是结构化查询语言?27结构化查询语言结构化查询语言(Structured Query Language)简称SQL管理数据库数据更新数据存取SQL语句28创建数据库CREATE DATABASE ON PRIMARY( -数据文件参数)LOG ON( -逻辑文件参数)语法结构:各个参数间使用“,”隔开 29删除数据库语法结构:

6、DROP DATABASE 删除数据库前,需要判断数据库是否存在30创建数据表CREATE TABLE (字段名 字段类型 NOT NULL|NULL 约束描述, 字段名 字段类型 NOT NULL|NULL 约束描述,)语法结构:31删除数据表语法结构:DROP TABLE 删除数据表前,需要判断数据表是否存在32添加约束回顾约束约束名称关键字简称主键约束PRIMARY KEYPK外键约束FOREIGN KEYFK默认约束DEFAULTDF检查约束CHECKCK唯一约束UNIQUEUQ33添加约束语法结构:ALTER TABLE ADD CONSTRAINT 约束名称定义格式为:约束简称+数

7、据表名+数据列名。例如:CK_Infos_Gender34SQL Server数据库使用介绍4. SQL语句之DML西安尚学堂35INSERT语句语法结构:INSERT INTO (列名,列名,列名,)VALUES (值,值,值,) VALUES中的值,可以用DEFAULT插入默认值 VAULES中的值,尽量使用单引,否则容易出现错误 需要保证列名和值对应,包括数目、类型、小数位数等等 插入的数据需要注意完整性 不可以显示插入自增列,插入时无需指定自增列36UPDATE语句语法结构:UPDATE SET 列名 = 值 , 列名 = 值, .WHERE 条件表达式 如果缺省WHERE子句, 则表

8、示更新所有数据37WHERE子句WHERE子句用于告诉系统对满足条件的行进行修改,即对哪一行或哪些行进行修改基本概念38WHERE子句具体案例如何选择?39WHERE子句关系运算符运算符说明大于=大于等于小于=小于等于或!=不等于=等于40WHERE子句逻辑表达式运算符说明AND与NOT非OR或优先级:AND NOT OR41如何实现?前面的案例如何实现呢?42DELETE语句语法结构:DELETE FROM WHERE 条件表达式 删除具有主外键关系的数据时, 应先删除子表中数据, 再删除主表中的数据, 否则应设置级联删除。43TRUNCATE语句语法结构:TRUNCATE TABLE 删除

9、整表数据,相当于DELETE语句缺省WHERE子句 不能对具有主外键关系的主表使用44对比DELETE和TRUNCATE有什么区别呢?45SQL Server数据库使用介绍5. 数据查询西安尚学堂46SELECT语句语法结构:SELECT FROM WHERE 如果缺省WHERE子句,则表示查询所有记录 查询所有列,可以在列名处使用“*” 查询多列时,使用“,”分隔各列47SELECT语句结果集48SELECT语句查询部分列SELECT StuID, StuName, Gender FROM Infos 49怎么办?结果集中的列名怎么用中文表示呢?50SELECT语句使用别名SELECT St

10、uID AS 学号, StuName AS 姓名 ,Gender AS 性别 FROM Infos AS 学员信息表可以使用 AS 关键字更换成指定的列名和表名51SELECT语句使用别名SELECT 学号 = StuID, 姓名 = StuName, 性别 = Gender FROM Infos 还可以使用 “=” 更换成指定的列名52SELECT语句TOP查询-提取指定行数SELECT TOP 5 FROM Scores -提取指定比例行数SELECT TOP 5 PERCENT * FROM Scores TOP 关键字可以限制查询的行数53WHERE条件查询单条件查询多条件查询范围查询

11、模糊查询NULL查询54WHERE条件查询SELECT * FROM Scores WHERE Term = s1单条件查询55WHERE条件查询多条件查询条件1:考试及格条件2:总成绩超过150分LabScore = 60WrittenScore= 60AND 关系OR 关系56WHERE条件查询模糊查询通过 LIKE 关键字实现通配符描述%表示任意零个或多个字符_表示任意一个字符57WHERE条件查询范围查询通过 BETWEEN AND 关键字查询某一范围的值SELECT * FROM scores WHERE WrittenScore BETWEEN 60 AND 8058问题BETWE

12、EN AND 可以用多条件语句代替吗?59ORDER BY子句60ORDER BY子句降序SELECT * FROM scores WHERE Term = s1 ORDER BY writtenscore DESC61ORDER BY子句升序SELECT * FROM scores WHERE Term = s2 ORDER BY labscore ASC62SQL Server数据库使用介绍6. 聚合函数与分组查询西安尚学堂63什么是聚合函数?64聚合函数求和平均值最小值最大值统计65聚合函数数据类型描述语法AVG平均值AVG(表达式)SUM求和SUM(表达式)MIN最小值MIN(表达式)

13、 MAX最大值MAX(表达式)COUNT数据统计COUNT(表达式)66GROUP BY子句数据库分组67GROUP BY子句GROUP BY子句需要结合聚合函数一起使用分组应用问题:如何求男同学的平均年龄和女同学的平均年龄?68GROUP BY子句SELECT Gender AS 性别, AVG(AGE) AS 平均年龄 FROM Infos WHERE ClassNo = 1002 GROUP BY Gender分组应用69HAVING子句语法结构:SELECT FROM WHERE 查询表达式GROUP BY HAVING 查询表达式ORDER BY ASC|DESC70SELECT语句

14、执行顺序1:FROM得到表中所有的数据2:WHERE 保留满足条件的数据3:GROUP BY 对满足条件的数据行进行分组4:HAVING 保留满足条件的分组5:SELECT 将执行步骤4后得到的数据填充结果集6:ORDER BY对结果集中各组的数据进行排序71字符函数SELECT STUFF(ABCDEFG, 2, 3, 我的音乐我的世界)返回:A我的音乐我的世界EFG在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串STUFFSELECT CHARINDEX(first,My first Course,1 )返回:4用来寻找一个指定的字符串在另一个字符串中的起始位置CHARIN

15、DEX举例描述函数名SELECT LEN(SQL Server课程)返回:12返回传递给它的字符串长度LENSELECT LOWER(SQL Server课程)返回:sql server课程把传递给它的字符串转换为小写LOWERSELECT UPPER(sql server课程)返回:SQL SERVER课程把传递给它的字符串转换为大写UPPERSELECT LTRIM ( 周智宇 )返回:周智宇 (后面的空格保留)清除字符左边的空格LTRIMSELECT RTRIM ( 周智宇 )返回: 周智宇(前面的空格保留)清除字符右边的空格RTRIMSELECT RIGHT(买卖提.吐尔松,3)返回:

16、吐尔松从字符串右边返回指定数目的字符RIGHTSELECT REPLACE(莫乐可切.杨可,可,兰)返回:莫乐兰切.杨兰替换一个字符串中的字符REPLACE72日期函数SELECT DATEPART(day, 01/15/2000)返回:15日期中指定日期部分的整数形式DATEPARTSELECT GETDATE()返回:今天的日期取得当前的系统日期GETDATE举例描述函数名SELECT DATEADD(mm,4,01/01/99)返回:以当前的日期格式返回05/01/99将指定的数值添加到指定的日期部分后的日期DATEADDSELECT DATEDIFF(mm,01/01/99,05/01/99)返回:4两个日期之间的指定日期部分的区别DATEDIFFSELECT DATENAME(dw,01/01/2000)返回:Saturday日期中指定日期部分的字符串形式DATENAME73数学函数SELECT SQRT(9)返回:3取浮点表达式的平方根SqrtSELECT ABS(-4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论