2440 发表于 2018-10-23 08:41:07

21. SQL -- TSQL架构,系统数据库,文件,SQL 认证,TSQL语句

  T-SQL 运行架构:

  系统数据库:
  Master:master 数据库记录SQL Server 系统的所有系统级信息。主要包括实例范围的元数据、端点、链接服务器和系统配置设置以及记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息
  Model: 提供了SQL Server 实例上创建的所有数据库的模板
  Msdb: 主要由 SQL Server 代理用于计划警报和作业
  Tempdb: tempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用于保存显式创建的临时用户对象、SQL Server 数据库引擎创建的内部对象,行版本数据等
  
  SQL 文件:
  SQL Server 数据库具有三种类型的文件:
  A、主数据文件(行数据文件):主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。
  B、次要数据文件(行数据文件):除主数据文件以外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。
  C、日志文件(记录数据变化的过程):日志文件包含着用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个。日志文件的推荐文件扩展名是 .ldf。
  文件名:分逻辑名及物理名
  文件组的概念:
  任何一个行数据文件必须属于一个文件组
  文件组是一个管理单位,一个文件组下有多个文件
  SQL 认证方式:
  1)、WINDOWS 身份认证
  2)、WINDOWS 和SQL 混合身份认证
  常用T-SQL 语句复习:
  1)、查询6 月11日后所有打卡记录
  select *
  from TimeRecords
  where sign_time > '2011-06-11'
  2)、查询7 月13日的所有打卡记录
  select *
  from TimeRecords
  where CONVERT (char(10),sign_time,121)= '2011-07-13'
  3)、使用运算符
  select N'firstname '+N' lastname'
  使用N:强制为Unicode(即一个英文字母占用2 个字节)
  4)、使用函数DATEADD,在当前时间加一天:
  select getdate()
  select DATEADD (DAY,1,GETDATE())
  GETADD:取当前时间
  day:时间元素,可为year,month,hour 等
  1:需增加的数
  例:
  select DATEADD (DAY,1,GETDATE())
  select DATEADD (year,1,getdate())
  select DATEADD(month,1,getdate())
  5)、使用函数:datediff,取2 个日期之间折指定日期部分的区
  select DATEDIFF(year,'2011-09-9','2002-09-09')
  year:时间元素,即取两个日期间年的差距
  例:
  select DATEDIFF (day,'2011-02-09','2030-09-09')
  6)、使用函数:datename,返回日期中指定
  select DATENAME (year,'2011-01-08')
  select DATEPART (month,'2009-08-09')
  7)、使用函数ABS:取绝对值
  select ABS(5)
  select ABS (-5)
  8)、使用函数LOWER:返回指定字母的小写
  select LOWER ('ABCd')
  9)、使用函数UPPER:返回指定字母的大写
  select UPPER ('abCd')
  10)、使用函数round: 从指定位数返回指定数值的四舍五入
  select ROUND (34.3545,2)
  select ROUND (34.3545,1)
  10)、select 语句高级应用:
  A、查询6 月11日有多少条打卡记录
  select COUNT(sign_time)
  from TimeRecords
  where CONVERT (char(10),sign_time,121) = '2011-06-11'
  B、查询6 月11日最晚及最早打卡记录
  select MAX(sign_time)
  from TimeRecords
  where CONVERT (char(10),sign_time,121) = '2011-06-11'
  select MIN(sign_time)
  from TimeRecords
  where CONVERT (char(10),sign_time,121) = '2011-06-11'
  C、查询6 月11日每人打卡次数
  select emp_id,COUNT(sign_time)
  from TimeRecords
  where CONVERT (char(10),sign_time,121) = '2011-06-11'
  group by emp_id
  D、查询6 月11日至6 月15日每天打卡记录汇总
  select CONVERT (char(10),sign_time,121) as ,COUNT(sign_time) as con
  from TimeRecords
  where CONVERT (char(10),sign_time,121)>= '2011-06-11'
  and CONVERT (char(10),sign_time,121) = '2011-06-11'
  and sign_time = '2011-06-11'
  and CONVERT (char(10),sign_time,121) = '2011-06-11'
  and sign_time
页: [1]
查看完整版本: 21. SQL -- TSQL架构,系统数据库,文件,SQL 认证,TSQL语句