sql读书笔记

SQL  采用E-R 关系模型,具有分布式查询功能
SQL 的基本组件
     SQL 服务器代理(SQL Server Agent)
     SQL Server 服务器
     SQL 邮件系统  (SQL Server Mail)
     分布式事务协调器(Distributed Transaction Coordinator   DTC)
     事件探查器
     企业管理器(Enterprise Manager)
     查询分析器(Analysis Manager)
SQL 的四个基本数据库
    master   用来记录数据库所有的服务器级系统信息和在数据库中的基本操作中使用的信息,用户帐号和配置信息等
    model    建立数据库的模板,包含了每个用户建立的表中自动添加的系统表  用户自定义的类型存储位置
    msdb     调度数据库用来进行复制,调度作业,管理报警和排除故障等活动
    tempdb   临时的数据存储位置
数据库的安装和配置
     本地操作:
         服务设置
             本地系统帐户  可以不用设置密码,但不能访问网络/可能限制SQL Server安装与其他服务器交互。
             域用户帐户    使用Windows身份验证模式
     联网操作:
数据库的操作
    注册服务器
       注册服务器可以实现网络连接
       需要条件
          (1)服务器端和客户端必须配置相同的网络库,并且同时开通
                   配置信息
                       服务器端和客户端的配置工具
          (2)客户端的配置信息必须正确无误    SQL Server的 默认端口:1433
          (3)服务器端和客户端的配置完成后才进行服务器的注册
   
    建议操作数据库在查询分析器中进行操作,应用Transact-SQL语句
    数据的完整性   
       确保数据的正确和合理,数据无误
       数据完整性的方法和形式:
           约束            (contraint)   新建表时的属性设置  设置数据的范围等
           默认值            (default)   只用于插入语句  函数 常量  null
           规则                 (rule)   条件中@开头                          调用需要在用户自定义类型中进行绑定
           存储过程 (stored precedure)   定义好的执行语句
           触发器            (trigger)   正确执行后触发事件
    首先应用 
       use  确定处理的信息在哪个数据库
    数据库的操作语句
             数据操作
       select    查询
          格式:select 要查询的内容  from  查询的表  where  查询的条件
          说明:如果是针对多表的查询则找出来表和表之间的公共联系作为中间的媒介
             全部内容 同配符
           select
              *(具体的列)
              all       列出全部
              distinct  列出来不重复的
              top  n
              连接符号  +
                  列+ '变化'+列   两个列的类型要一直  cast() 转换函数
              case  函数
                 select *,
                     case  课程号
                        when ... then  ....
                        when ... then  ....
                          .....
                     end as ....
                 from ...
              嵌套查询
                 select ..
                       {select .. from ..  where ..) as ...
                 from ..
                         
              对列进行函数运算
                   统计函数
                      sum()   avg()  min()  max() count() 
                      count(*)  满足符合条件的所有内容
                     
                   数学函数
                     abs()
                     ceiling()    大于或等于表达式的最小整数
                     floor()      小于或等于表达式的最大整数
                     round()      四舍五入
                   字符串函数
                     ascii(char)    返回字符串最左边的ASCII码
                     char(int)      将ASCII码转换成字符
                     len(str)       字符串的长度
                     str(float,leng)由数字数据转换来的字符数据
                     substring(str,star,end)
                     upper(str)
                     stuff(str,start,end,str)删除指定长度字符并在指定位置起点插入指定的字符 
                     left(str,int)   返回从左边起指定字符的指定长度
                     right(str,int)
                     ltrim()
                     rtrim()
                     replace(old,"",new)  用第三个字符替换第一个字符中出现的第二个内容
                     reverse(str)   字符串的反转
                   日期函数
                      说明:  date=getdate()
                     getdate()       返回日期和时间
                     day(date) 
                     month(date)
                     year(date)
                     getutcdate()  返回当前的UTC时间(世界时间或格林尼治标准时间)
                                                               
              into   到新表中去    
           from
              单一的表或是多个表
              表 inner join  表  on 条件   
           where
             等式条件  =
             关系条件 >  <  >=  <=  <>
             逻辑条件 and or not
             范围条件 between  and    in()    exists()
             匹配条件 like
          order by  desc/asc
          group by  having 
         
           联接
             用途:多表之间的查询
             内连接  inner join  on
                    可以多表连接
                       inner join   on       inner join  on
             外连接  outer join  on   (取两表都含有的内容) 
                 向右外  right outer join on
                 全部    full  outer join on
           
 
三表联合查询           
 use Test
select student.stuname as 姓名,score.score as 学生成绩,course.courname as 课程
from score ,student,course
where score.stid=student.stid and score.courid=course.courid

内连接
 use Test
select student.stuname as 姓名
  from student inner join score on student.stid=score.stid
 
 
       insert    插入
           insert into 表(列1,列2,...)values('','',...)
           或者
           insert into 表(所列出的列数量和下面的相等)
              select 选择的数量迎合插入的数量
              from  表
              where  ...
            当进行插入的时候如果是插入全部内容可以不用写要插入的列
       update    更新
          update 表  set  列=value,... where  .....
       delete    删除
          delete from  表 where ...
             数据定义
       create table    创建表
       alter  table    修改表
       drop   table    删除表
       drop   view     删除视图
       create view     创建视图
       create index    创建索引
       drop   index    删除索引
       create procedure创建存储过程
       drop   procedure删除存储过程
       create trigger  创建触发器
       drop   trigger  删除触发器
       create schema   向数据库添加新模式
       drop   schema   从数据库删除模式
       create domain   创建新数据值域
       alter  domain   改变域定义
       drop   domain   删除一个域
            数据控制
       grant       授予用户访问权限
       deny        拒绝用户访问
       revoke      解除用户访问权限
            事务控制
       commit          提交,结束当前事务
       rollback        终止当前事务
       set transaction 定义当前事务数据访问特性
            程序化SQL
       declare     为查询定义游标
       explan      为查询描述数据访问计划
       open        检索查询结果打开一个游标
       fetch       检索一行查询结果
       close       关闭游标
       prepare     为动态执行准备SQL语句
       execute     动态执行SQL语句
       describe    描述准备好的查询
      
    数据库的存储过程
      
       数据库的存储过程名是以  SP 开头  主要存在于master数据库中  
       预先编译好的指令集合。
       给存储过程传递参数用  @
   
    数据库的触发器
      
       声明只能在事件被成功的执行后触发的时候才被调用,触发器的功能很重要。
       触发器的作用类型
         insert update delete  instead of   alter
      
       print  ''  输出内容   
   
    数据库的辅助操作(可视化操作)
      
       数据的导入和导出
       数据库的备份和还原以及附加
       数据库的自动备份
   
    数据库的安全管理
       SQL Server的安全等级
          操作系统的安全性
          SQL Server的安全性
          数据库的安全性
          数据库对象的安全性
         
    数据类型
      整数   bit (0/1) tinyint (0-255) smallint int bigint
      小数   real  float decimal  numeric
      日期时间 datetime smalldatetime
      字符   char varchar text
      二进制 binary varbinary image
      统一码 nchar  nvarchar ntext
      货币   money  smallmoney
      特定   timestamp  uniqueidentifier
      新增   sql_variant table bigint
      自定义 sysname 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值