`
it_超
  • 浏览: 233 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Sql_Server基础知识总结

 
阅读更多
--------------------------------------第一章  Sql Server数据库基础-----------------------------------------------
1,sql server的历史:
     第一代数据库:网状与层次模型
     第二代数据库:关系模型 (sql server属于关系模型数据库)
     第三代数据库:对象模型
2,实体:客观存在的可以被描述的事物叫实体
3,冗余:存在重复的数据
     消除冗余的办法:分类存储
4,完整性:指的是数据的准确性
5,系统的内置数据库:
     (1)master:存储着系统信息。
     (2)model:所有数据库的模板
     (3)msdb:sql server代理服务存储系统任务以及自动化作业使用的数据库。
     (4)tempdb:存放临时数据的数据库,包括临时表,临时存储过程等。
6,数据库文件后缀
     mdf:主数据库文件,一个数据库只可以有一个主数据库文件,但可以有多个次数据库文件
     ldf:事物日志文件,用于存储对数据库的操作
     ndf:次要数据库文件
7,创建数据库用户并设置权限
     (1)权限:用户对服务器的操作权限
          sysadmin:可以在sql server中执行任何操作
          serveradmin:可以设置服务器范围的配置选项,关闭服务器。
          setupadmin:可以管理链接服务器和启动过程
          securityadmin:可以管理登录和create database 权限,还可以读取错误日志和更改密码
          processadmin:可以管理在sql server中运行的进程
          dbcreator:可以创建、更改和除去数据库
          diskadmin:可以管理磁盘文件
          bulkadmin:可以执行 bulk insert 语句
     (2)用户映射:指定用户对指定数据库的操作权限
     db_owner:拥有数据库的所有许可
     db_securityadmin:能建立架构、更改角色
     db_accessadmin:能添加删除用户、组或成员
     db_backupoperator:能备份数据库
     db_datareader:能从数据库中读取数据
     db_datawriter:能修改数据库表中的数据
     db_ddladmin:能添加、修改或删除数据库对象
     db_denydatareader:不能从数据库表中读数据
     db_denydatawriter:不能修改数据库表中的数据
     public 维护默认的权限
-------------------------------------第二章   数据库表的创建与管理-------------------------------------
1,数据表的完整性
     (1)实体完整性:保证表中每行数据都是唯一的,不能重复存在
     (2)域完整性:某一列数据的完整性
     (3)引用完整性:保证数据先在主表中存在,然后才能出现在子表。
     (4)自定义完整性:自己定义的完整性
2,sql server中常用的数据类型
     (1)二进制数据类型:
          binary    固定长度的二进制数据
          varbinary  可变长度的二进制数据
          image     可用来存储图像
     (2)文本数据类型
          char  固定长度的字符串,最大长度为8000个字符(一个字符占一个字节)
          varchar   可变长度的字符串
          nchar     固定长度的字符串(一个字符占两个字节)
          nvarchar  可变长度的字符串(一个字符占两个字节)
          text     长文本信息
          ntext     可变长度的文本信息
     (3)日期类型
          datetime   日期和时间
     (4)整数
          int ,smalint,tinyint,bigint
     (5)浮点数
          decimal,float,real
     (6),货币数据类型
          money
     (7),bit数据类型
          表示是/否  1代表true 0代表false
3,约束
     主键约束,默认值约束,标识列,检查约束,外键约束
--------------------------------------第三章  T-SQL编程--------------------------------------------
1,T-SQL的组成:
     (1)DML(数据操作语言):增删改查数据操作
     (2)DDL(数据定义语言):用来建立数据库、数据库对象和定义
     (3)DCL(数据控制语言):用来控制存取许可、存取权限等
2,T-SQL中的条件表达式和逻辑运算符
     (1),比较运算符
          =   等于
          >   大于
          <   小于
          >=  大于等于
          <=  小于等于
          <>  不等于
          !   取反
     (2)通配符
          _   任意一个字符
          %   任意长度的字符
          []  括号内指定范围的一个字符(只包括数字和字母)
          [^] 不在括号内指定的范围内的一个字符
     (3)逻辑表达式
          and   并且
          or    或者
          not   非
     (4)模糊查询(like)
          select * form 表名
          where 列名 like '%许超%'
     (5)len()函数
          获取长度
3,数据基本操作
     增:
          单行:insert into 表名(列名) values(值)
          多行:insert into 表名(列名)
          select 值  union
          select 值  union
          select 值  
     删:
          delete from 表名  where  条件
     改:
          update 表名  set  列名=新值 where 条件
     查:
          select * from 表名  where 条件
4,截断表
     trun cate table 表名
     速度快,不可恢复
5,数据备份
     (1),
          select 列名  into  新表名   from 源表名   (只会备份表结构不会备份表约束)
     (2),把现有数据复制到另一个现有的表,必须先建好一章新的表
          insert into 新表名 (新列名)  select 源列名   from  源表名
----------------------------------第四章,T-SQL查询基础--------------------------------------
1,和并列、起别名、查空行、常量列
     合并列和起别名:
          select 列名+列名 as 别名和别名 from 表名
     查空行和查无空行:
          select * from 表名  where 列名 is null or 列名=''
          select * form 表名  where is not null and 列名<>''
     常量列:
          select * form 列名1 as 别名,列名2 as 别名,新值 as 新列名   from 表名
2,限制返回行数(top)
     select top 3 * from 表名
3,排序(order by)
     asc 升序(默认)
     desc 倒叙
     select * from 表名  where 条件   
     order by  列名,可加多列  顺序(ase或desc)
4,消除重复列(distinct)
     select distinct  列名  from  表名
5,函数
     (1)字符串函数
          CharIndex()  用来寻找指定的字符串在另一个字符串中的起始位置。      例:select charIndex('china','inchina',1),返回3
          len()        返回指定字符串的长度                                例:select len('ab'),返回2
          Upper()      将指定的字符串全部大写                               例:select upper('ab'),输出AB
          lower()      将指定的字符串全部大写                               例:select lower('AB'),输出ab
          Ltrim()      清除字符串左边空格                                   例:select Ltrim(' ab'),输出ab
          Rtrim()      清除字符串右边空格                                   例:select Rtrim('ab '),输出ab
          right()      从字符串右边返回指定数目的字符串                      例:select right('abacd',2),返回cd
          left()       从字符串左边返回指定数目的字符串                      例:select left('abacd',2),返回ab
          replace()    替换字符串中的字符                                    例:select replace('china','a','ese'),输出chinese
          stuff()      在一个字符串中删除指定长度的字符,并在该位置插入一个新的字符   例:select stuff('china',2,3,'-'),返回c-a
          substring()  提取字符串                                                例:select substring('abcd',2,1),返回b
     (2)日期函数
          getdate()    获取当前系统日期   例:select dateadd(dd,10,getdate())  输出:2015-01-21 20:22:21.783
          dateadd()    在日期的指定部分加上或减去指定的值       例:select dateadd(dd,10,'2015-01-21')   输出:2015-01-31
          datediff()   获取两个日期之间指定部分之差             例:select datediff(yy,'2014-8-15','2015-01-21')  输出:1
          datename()   获取日期中指定的部分,返回字符串类型     例:select datename(mm,'2015-01-21')    输出:01
          datepart()   获取日期中指定的部分,返回int类型        例:select datepart(yy,'2015-01-21')    输出:2015
          year()       获取日期中年的部分                       例:select year('2015-01-21')            输出:2015
          month()      获取日期中月的部分                       例:select month'2015-01-21')        输出:01
          day()        获取日期中日的部分                       例:select day('2015-01-21')          输出:21
注:
     日期的指定部分:
          yy 年
          mm 月
          dd 日
          hh 小时
          mi 分钟
          ss 秒
          ms 毫秒
          dw 星期
          sql server中日期的格式必须为 2015-01-21 或 2015/01/21
     (3)数学函数
          abs() 获取数值表达式的绝对值                  例:select abs(-2)  输出:2
          ceiling()  返回大于或等于所给数字的最小整数    例:select ceiling(2) 输出:2    select ceiling(2.1) 输出:3
          floor()    返回小于或等于指定表达式的最大整数   例:select floor(3)  输出3     select floor(3.1)   输出:3
          power()    取数值表达式的幂值                   例:select power(5,2)  输出:25   注:power(底数,幂数)
          round()    将数值表达式四舍五入为指定精度       例:select  round(56.765,1) 输出:56.8
          sign()     正数返回1,负数返回-1,0返回0        例:select sign(-55)  输出:-1
          sqrt()     去浮点表达式的平方根                例:select sqrt(9)    输出:3
     (4)系统函数
          convert()  用来转变数据类型    例:select '他的年龄是'+convert(varchar(20),userAge) from users   注:convert(目标类型,'需要转换的值')
          current_user   返回登录的用户名和类型
          host_name      返回当前登录用户的计算机名
          user_name     返回当前登录的用户名类型
          system_user    返回当前登录sql server的用户名
          datalength  返回指定的字节数     例:select datelength('中国A盟')
      
-------------------------------------第五章 T-SQL 高级查询------------------------------------------------------
1,模糊查询(like)
     select *
     from 表名  where name like  '许%'            //查询所有以许开头的数据
2,查询指定范围内的数据(between and)
     select * from 表名  where id  between 5  and   10     //查询从id从5到10的所有数据,包括5和10
3,使用in在指定集合内查询
     select * from 表名 where name in('许超','李四')      //查询name为许超,或者李四的所有信息
4,聚合函数
     (1)sum()     求和,只能用于数值类型的列
     (2)avg()     求平均数,只能用于数值类型的列
     (3)max()     求最大值,能用于数值类型和字符类型的列
     (4)min()     求最小值,能用于数值类型和字符类型的列
     (5)count()   统计行数,能用于数值类型和字符类型的列
5,分组查询(group by)
     规则:
          (1)如果select后除了聚合函数还有其他列,就必须使用group by
          (2)group by后放除了聚合函数的其他列,都要添加到group by 后面
          (2)where 条件必须写在group by之前,在group by 之后添加条件用 having
          (3)order by 必须在group by后面使用
          select stateid as '状态',sum(userpoint) as '积分' from users
          where 条件
          group by stateid
6,使用having分组筛选
     //使用having分组筛选,总积分大于200的用户和人数,并倒叙排序
     select username as '用户',count(*) as '人数' from users
     group by username
     having sum(userpoint)>200
     order by count(*) desc
7,多表连接
     (1)内连接
          1>第一种:在where子句中指定连接条件,实现多表连接
          select a.Statename,b.Rolename,c.username  from state as a,Roleinfo as b,users as c
          where a.stateid=c.stateid and b.reoleid=c.roleid
          2>第二种:在from子句使用 join...no,实现两表连接
          select a.StateName,b.username from
          state as a inner join users as b on a.stateid=b.stateid
     (2)外连接
          1>左外连接  left join
          左表中的数据全部显示
          右表中有关系的连成一行
          没有关系的添null
     例:
     select a.StateName,b.username from
     state as a left join users as b on a.stateid=b.stateid
     2>右外连接  right join
          右表中的数据全部显示
          左表中有对应的拼成一行
          没有对应的补null
     例:
     select a.StateName,b.username from
     state as a right join users as b on a.stateid=b.stateid
     3>完全外连接  full join
          左表中的数据全部显示
          右表中的数据全部显示
          有对应的拼成一行
          没有对应的补null
     例:
     select a.StateName,b.username from
     state as a full join users as b on a.stateid=b.stateid
     (3)交叉连接  cross join
          左表中的数据和右表中的数据每次都拼接
     例:
     select a.StateName,b.username from
     state as a cross join users as b
分享到:
评论

相关推荐

    SQL_SERVER_2008基础知识篇

    SQL_SERVER_2008基础知识篇

    SQL_Server数据库基础知识

    超有用的SQL_Server数据库基础知识

    SqlServer基础知识总结.pdf

    SqlServer基础知识总结.pdf

    SQL_Server_2000菜鸟入门

    SQL_Server_2000菜鸟入门,从基础知识讲起

    SQL_Server_2008基础教程指导

    共计173张PPT,几乎囊括SqlServer2008所有知识点,适合初学者学习,中高级数据库使用人员研究。 业务数据存储在什么地方?数据库对象存储在哪里?对于业务数据而言,什么样的存储方式是合理的?如果数据量剧增之后...

    SQL_Server2008基础教程

     从现在开始,本书将使你的基础知识得以扩展,让你很快从初学者成长为合格的专业开发人员。本书面向广大开发人员,从喜欢使用图形界面的程序员,到希望成为SQL Server 2008编程语言Transact SQL(T-SQL)高手的...

    SQL_Server_2005基础教程

    介绍数据库的基本知识,入门级的参考资料,希望初学者有所领悟。

    数据库基础知识_SQLSERVER介绍和使用

    数据库基础知识_SQLSERVER介绍和使用

    SQL数据库(SQL Server)基础知识思维导图(整理版)

    SQL数据库(SQL Server)基础知识思维导图(整理版),较之前的版本,进行了一些整理,具体内容没变

    sql server 2008基础知识

    <sql server 2008基础知识> 里面sql server数据库的基础知识 内容 适用于入门的人员

    SQL Server基础知识(html)

    SQL Server基础知识(html),SQL Server基础知识(html),SQL Server基础知识(html)

    SQL_Server_2005从入门到实践讲义

    SQL Server 2005是Microsoft推出的新一代数据管理和分析解决方案。它为企业级应用数据和分析程序提供了增强的...本章将在简要介绍关系数据库基础知识之后,详细介绍SQL Server 2005的基础知识,主要包括以下知识点。

    SQL_Server_2008之基础教程

    本书针对那些想成为开发人员、数据库管理员或者...无论你是否拥有数据库知识,是否了解桌面数据库(如Microsoft Access),甚至是否具有服务器(如Oracle)的背景,本书都能为你提供SQL Server 2008入门和运行的知识。

    SQL_Server_2000

    教授SQL SERVER 2000的基础性知识,pdf格式浏览方便

    SQL_Road脚本.sql

    这是文档《SQL基础知识第二版》的附带源码,方便大家直接在数据库中执行进行相关的测试与练习。

    SQL_server入门

    比较笼统地介绍SQL server的基本知识,以及数据库软件的使用 设和0基础的人学习

    SQL Server 索引基础知识

    整理了一下郭红俊大哥的关于SQL索引的10篇基础知识,转为PDF文1.记录数据的基本格式 2.聚集索引,非聚集索引 3.测试中一些常看的指标和清除缓存的方法 4.主键与聚集索引 5.理解newid()和newsequentialid() 6.索引的...

    sqlserver基础知识.doc

    SQL Server 2000是一个具备完全Web支持的数据库产品,提供了可扩展标记语言核心支持以及Internet上和防火墙外进行查询的能力,具有可伸缩性、灵活性、扩充性好,而且价格便宜等特点,而Oracle...sqlserver基础知识.doc

    SQL server数据库基础知识ppt

    sql server数据库基础知识ppt讲解,包含sql基本操作。

    SQLServer基础知识.pdf

    SQLServer基础知识.pdf

Global site tag (gtag.js) - Google Analytics