数据库 笔记
数据库 是一个mdf结尾的文件 服务器名称:是指你要连接的安装的数据库服务所在的那台电脑的IP地址,如果是本机的话,就是. mdf结尾:数据库数据文件,一个数据库有且只有一个 ldf:数据库日志文件,一个数据库有且至少有一个 数据库中存放数据的结构,是通过标的形式来存储的,一个数据库中有多个表 增量: 按百分比增长:以10M为例,达到10M以10%增长,增长为11M,达到11M,增长为11M的10% 自增长;按兆增长,1M为一单位 decimal(18,2)----->2指的是小数点后两位 语句: 建表:create table 表名 ( 列名 数据类型 primary key identity(1,1), 列名 数据类型, 列名 数据类型 ) 增加:insert *from 表明 values (,'',,,) 删除:delect from 表名 where 列名=‘’ 修改:update 表名 set 列名=''where 编号='' 查询:运行先后顺序:1、from 2、on 3、join 4、where 5、group by 6、with cube or with rollup 7、having 8、select 9、distinct 去重 10、order by 11、top select*from 表名 where 列名like''and列名< select 列名,列名from 表名 where列='' select top 2*from表名 where 列名 like'%查询内容%'——模糊查询 :_ 占用一个字符 [1-9]一个字符的位置上可以是中括号里的任何一个,[^1-9]不在括号里边的 select查询语句语法 去msdn查 筛选(having):select 列名 from 表名 group by 列名 having 要求 分组(group by):select 列名 from 表名 group by 列名——group by 按照。。。分组 去重(distinct):select distinct 列名 from 表名 排序(order by 默认升序asc):select*from 表名 order by 列名———>升序asc 降序desc 比较运算符>,<,>=,<=,!= 逻辑运算符 and or select*from 表名 where列名 like ''and 列名<=要求 聚合函数:对一组值执行计算,并返回一个值——聚合函数只能跟聚合函数在一块用 AVG平均值 MIN最小值 SUM和 MAX最大值 COUNT行数——count(*) 查询最小值:select min(列名)from 表名 多表查询: select 列名,列名,列名from (select表名.列名from 表名1 join 表名2 on 表名1.列名1=表名2.列名1 join 表名3 on表名2.列名2=表名3.列名2 ) table1 自增长:identity(1,1) 添加列:alter table 表名 add 列名 数据类型 删除列:alter table 表名 drop column 列名 若列中有约束需先删除约束再删除列(表——右键——键/约束——右键删除) 约束:对某列数据的限制 check 约束:设置输入的范围 右键——添加——sex>=0andsex<=1 代码:表名 数据类型 check(约束内容) 唯一约束:右键——索引/键——添加——唯一约束 如果表格里边有数据则不能添加 代码:列名 数据类型 unique 主键(primary key):可以由一列或者两列组合都可以,必须是唯一的,不能为空的 设置主键:单击右键——设置主键 代码:列名 数据类型 primary key identity(1,1), 外键(references): 代码:表名 数据类型 references 表名(列) 存在主外键关系的表相对来说就是主键表跟外键表 函数: 聚合函数:对一组值执行计算,并返回一个值——聚合函数只能跟聚合函数在一块用 AVG平均值 MIN最小值 SUM和 MAX最大值 COUNT行数——count(*) 日期时间函数: 查询系统时间:select getdate()/select sysdatetime()——输出到消息框 输出系统时间:print getdate()/print sysdatetime()——输出到结果框 是今年的多少天:select datepart/datename(dayodyear,'2015-5-5') 是星期几:select datepart(weekday,'2015-5-5') 日期相加:select dateadd(day,50,getdate()) 字符串函数: str四舍五入 replace替换 left从左边开始截 len长度 right从右边开始截 substring截取字符串 upper大写 lower小写 ltrim去除左空格 rtrim去除右空格 四舍五入:select str(123.45,4,1) 替换(replace):select replace('asdfasdf','as','xx') 截取字符串(substring):select substring('adsfa',3,2) 从左边开始截(left):select left('adfasddfa',3) 从右边开始截(right):select right('adfasddfa',3) 长度(len):select len ('adsfas') 反转(reverse):select reverse('adfs') 大写(upper):select upper('fasd') 小写(lower):select lower('ADF') 去除左空格(ltrim):select ltrim(' fasdfasdf ') 去除右空格(rtrim):select rtrim(' fasdfasdf ') 类型转换函数: select cast('变量' as 数据类型) select convert('数据类型','变量') 视图——虚拟的表,一般情况下用于多表连接,只能用于查询,随着数据的变化而变化 创建视图 create view tableview as select 列名,列名,列名from (select表名.列名from 表名1 join 表名2 on 表名1.列名1=表名2.列名1 join 表名3 on表名2.列名2=表名3.列名2 ) table1 go 删除视图:drop view 视图名 修改视图:alter view视图名 查看视图:select*from view视图名 范式理论 1、每个表都要有主键 2、每个表的列都要直接跟主键相关 3、每一列都要是单独的数据列 定义变量 declare @变量名 数据类型 变量赋值 set @变量名=1 输出 print @变量名 存储过程 触发器——一种特殊的存储过程,通过对数据库表的操作的动作,来触发,增删改 事务——保证一个流程的完整执行,如果一步失败就回到起点,重新开始 begin tran --开始事务 执行语句 if @@error>0 rollback tran--回滚事务 执行语句 if @@error>0 rollback tran--回滚事务 else commit tran--提交事务