第一章:SQLServer数据库基础
SQLServer按用途分:系统数据库,用户数据库
SQLServer提供的系统数据库有:i1:master数据库i2:tempdb数据库i3:model数据库i4:msdb数据库
蛇者数据库属性时数据库的三种状态:正常状态,只读状态,限制访问
*主要基本点:
1.数据的完整性:是指数据库中数据的准确性。
2.冗余:指数据库中重复的数据。
3.数据库包括:数据库文件,日志文件
4.数据库文件以.mdf结尾;日志文件以.ldf结尾
第二章:SQLserver数据表管理
一.数据完整性约束:
1.实体完整性约束(行):通过设置主键,表示列(只有int类型可以设,自动生成不用填写),唯一约束解决
2.域完整性约束(列):通过设置数据类型,非空约束,检查约束(check约束),默认值来解决。
3.引用完整性约束:通过设置外键来解决
4.自定义完整性约束
设置主键时要注意:表中可以没有主键,但主键只能有一个;主键不能设为“准许为空”;主键可以是组合键。
外键:是用来设定表中各项关系的;外键必须在子表中建立;(在删除表时必须先删除子表后才能删除主表)
二.SQLServer数据类型:
1.二进制数据类型:binary,barbinary,image
2.文本数据类型:char,varchar,nchar,nvarchar,text,ntext
3.数字数据:intsmallinttinyintbigint(整型)floatreal(浮点型)
4.日期与时间:datetime
5.货币数据类型:Mony(十进制货币)
6.Bit数据类型:布尔数据类型1是0否
第三章:SQLServer数据管理
1.条件表达式:语法:列名like'李%'(模糊查询)
2.几种运算符:
a.比较运算符:=><>=<=<>!
b.逻辑运算符:and(并且)or(或者)not(否定)
c.通配符:'_'一个字符%任意长度字符[]括号内所指范围的字符[^]不包括括号内所指字符
在逻辑表达式中in关键字用来限制范围
3.插入数据:
a.使用Insert插入数据语法:insertinto表名values(列表值)
b.通过insertselect语句进行插入:
新表已存在:insertinto新表名select列名值from旧表名
新表不存在:select列名into新表名from旧表名
c.通过union进行多行插入关键字插入:
语法:insert表名(列属性)
select列表值union
.......
select列表值
4.SQLServer更新数据
语法:update表名set列名=更新值where更新条件
5.SQLServer删除数据:
使用delete删除数据语法:deletefrom表名where删除条件
使用truncatetable删除表中的所有行语法:truncatetable列名
truncatetable比delete执行速度快,使用的资源少
truncatetable不能用于有外键约束来引用的表
第四章:数据查询(一)
一.数据的基本查询
1.查询所有的数据行和列:
语法:select*from表名
2.查询部分行列--查询条件:
语法:select列名from表名where查询条件
3.在查询中使用列名,as改变结果集列的名称
语法:select列名as新变名.....
4.查询空行:isnull(有空行)isnotnull(非空行)
语法:select列名from表名where列名isnull/列名=''
5.在查询中使用常量列
6.查询返回限制的行数:
语法:selecttop数字行数/百分比(数percent)
二.查询排序:关键字orderby
语法:select列名
from表名
where查询条件
orderby排序的列名排序种类
asc升序排列desc降序排列
三.在查询中使用函数:
4类常用的查询函数:字符串函数,日期函数,数学函数,系统函数
1.字符串函数:
a.charindex(查找一个字符串在另一个字符串中的起始位置)
b.len(返回传递给他的字符串的长度)
c.upper/lower(把传递给他的字符串转成大写(小写))
e.Ltrim/Rtrim(清除左(右)边的空格)
f.Right(从字符串右边起返回相应的字符串)
G.Replace(替换一个字符串中的字符)
H.stuff(删除指定长度的字符串,比插入一个新的字符串)
2.日期函数:
a.getdate(获得当前系统日期)
语法:selectgetdate()
b.dateadd(见指定数值添加到指定日期后的日期)
语法:selectdateadd(mm,4,'01/01/2009')
返回:05/01/2009
c.datediff(两个日期之间指定日期部分的区别)
语法:selectdatediff(mm,'01/01/2009','05/01/2009')
返回:4
d.datename(日期指定日期部分的字符串形式)用来返回星期
语法:selectdatename(dw,'01/01/2000')
返回:Saturday(星期六)
e.datepart(日期指定日期部分的整数形式)
语法:selectdatepart(day,'01/15/2000')
返回:15
3.数学函数:
a.abs(取数值表达式的绝对值)
b.ceiling(去大于或等于指定值得最小整数)
c.floor(去小于或等于指定值得最大整数)
e.power(取数值表达式的幂值)
f.round(将表达式四舍五入为制定精度)
g.sign(指定表达式的正负或0)
h.sqrt(取浮点表达式的平方根)
4.系统函数:convertcurrent_UserDatelengthHost_Namesystem_useruser_name
第五章:数据查询(二)
5.1.1使用Like进行模糊查询
5.1.2使用between在某个范围内进行查询:
语法:select*fromscorewherescorebetween60and80
5.1.3使用in在列举之内进行查询(必须准确查找)
一.SQLServer中的几个聚合函数:
1.sum(表达式中所有数值的总和)
语法:selectsum(列名)from表名where查询条件
2.avg(求表达式中所有数值的平均值)
语法:selectavg(列名)from表名where条件
3.max和min
max(求最大值)min(求最小值)
4.count(求表达式中非空值的个数)
语法:selectcount(*)as名from表名where查询条件
二.分组查询:
使用groupby进行分组查询(在条件语句中出现“每”一般用groupby进行分组查询)
语法:select列名
from表名
groupby分组项
使用having子句进行分组查询
语法:select列名
from表名
groupby分组项
havingcount(*)>1
三.多表连接查询:内联接,外联接,交叉联接
1.内联接:使用Innerjoin(后可加where条件)关键字进行表间的关联
2.外联接:
a.左外联接leftjoin或leftouterjoin,
b.右外联接Rightjoin或leftouterjoin
c.完整外联接:fulljoin或fullouterjoin
3.交叉联接:相当于两表相乘(crossjoin)
四.内连接查询:
1.在where子句中指定联接条件
语法:select列表项
from各表名
where查询条件
2.在from子句中使用join...on来实现
语法:select列表项
from表名
innerjoin表名
on表间的主外键关系
五.外连接查询:
1.左外联接查询
语法:select各列名
from表名
leftjoin表名
on表间的主外键关系
2.右外联接查询
语法:select各列名
from表名
rightjoin表名
on表间的主外键关系