数据库 笔记

数据库   是一个mdf结尾的文件
  服务器名称:是指你要连接的安装的数据库服务所在的那台电脑的IP地址,如果是本机的话,就是.
  mdf结尾:数据库数据文件,一个数据库有且只有一个
  ldf:数据库日志文件,一个数据库有且至少有一个
  数据库中存放数据的结构,是通过标的形式来存储的,一个数据库中有多个表

增量:
  按百分比增长:以10M为例,达到10M以10%增长,增长为11M,达到11M,增长为11M的10%
  自增长;按兆增长,1M为一单位
decimal18,2)----->2指的是小数点后两位

语句:
  建表:create table 表名
         (
             列名 数据类型 primary key identity(1,1),
             列名 数据类型,
             列名 数据类型
          )
  增加:insert *from 表明 values (,'',,,)
  删除:delect from 表名 where 列名=‘’
  修改:update 表名 set 列名=''where 编号=''
  查询:运行先后顺序:1from 2、on 3、join 4where 5、group by 6、with cube or with rollup 7、having 8select 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(11)
  添加列: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--提交事务
  

  
原文地址:https://www.cnblogs.com/zxm1002/p/4992089.html