`

SQL SERVER学习日志

 
阅读更多

SQL SERVER学习日志<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

By yanleigis 联系Email:landgis@126.com

一、 系统表

1、 Sysobjects: 为数据库内创建的每个对象(约束,规则,表,视图,触发器等)创建一条记录。

该表相关字段的含义如下:

sysobjects.name 对象名,如:表名,视图名。

sysobjects.id 对象id

sysobjects.type 对象类型(p存储过程,v视图,s系统表,u用户表,

C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
)。

应用实例:判断一个表是否存在

select * from sysobjects where name='cp_flowCode' and type='u' 只支持小写,字符串为单引号

2、  Syscolumns:视图中的每个列和每个存储过程的每个参数创建一条记录。  

该表相关字段的含义如下:(此处的列系指数据库中每个表、视图中的列)

syscolumns. id 该列所属的表的id,可与sysobjects.id相关联

syscolumns.colid id,表示该列是表或视图的第几列。

syscolumns. xtype 物理存储类型,可与systypes. xusertype相关联。

syscolumns.name 列名字,即字段名。

syscolumns .prec列的长度。

syscolumns .scale 精度级。

应用实例1、判断一个表的某个字段是否存在

select o.name,c.* from syscolumns c,

sysobjects o where o.id=c.id

and c.name='f_code' and o.name='cantoncode'

应用实例2:获得一个表的结构sql:

select c.name,t.name,c.PREC,isnull(c.Scale,0),c.isnullable from syscolumns c,

sysobjects o,systypes t where o.id=c.id

and o.name='cantoncode' and t.xusertype

=c.xtype

更全面的,包括默认值

SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS COLUMN_NAME,
systypes.name AS DATA_TYPE, syscolumns.length as CHARACTER_MAXIMUM_LENGTH,
sysproperties.[value] AS COLUMN_DESCRIPTION, syscomments.text as
COLUMN_DEFAULT,syscolumns.isnullable as IS_NULLABLE FROM syscolumns
INNER JOIN systypes
ON syscolumns.xtype = systypes.xtype
LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id
LEFT OUTER JOIN sysproperties ON
( sysproperties.smallid = syscolumns.colid
AND sysproperties.id = syscolumns.id)
LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
WHERE syscolumns.id IN
(SELECT id FROM SYSOBJECTS WHERE xtype = 'U') AND (systypes.name <> 'sysname')
ORDER BY Sysobjects.name, syscolumns.colid

二、 函数学习

1.字符串函数

  长度与分析用

  datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格

  substring(expression,start,length) 不多说了,取子串

  right(char_expr,int_expr) 返回字符串右边int_expr个字符

  字符操作类

  upper(char_expr) 转为大写

  lower(char_expr) 转为小写

  space(int_expr) 生成int_expr个空格

  replicate(char_expr,int_expr)复制字符串int_expr

  reverse(char_expr) 反转字符串

  stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从

  start开始的length个字符用char_expr2代替

  ltrim(char_expr) rtrim(char_expr) 取掉空格

  ascii(char) char(ascii) 两函数对应,ascii,根据ascii吗取字符

  字符串查找

  charindex(char_expr,expression) 返回char_expr的起始位置

  patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0

  2.数学函数

  abs(numeric_expr) 求绝对值

  ceiling(numeric_expr) 取大于等于指定值的最小整数

  exp(float_expr) 取指数

  floor(numeric_expr) 小于等于指定值得最大整数

  pi() 3.1415926.........

  power(numeric_expr,power) 返回power次方

  rand([int_expr]) 随机数产生器

  round(numeric_expr,int_expr) int_expr规定的精度四舍五入

  sign(int_expr) 根据正数,0,负数,,返回+1,0,-1

  sqrt(float_expr) 平方根

  3.日期函数

  getdate() 返回日期

  datename(datepart,date_expr) 返回名称如 June

  datepart(datepart,date_expr) 取日期一部份

  datediff(datepart,date_expr1.dateexpr2) 日期差

  dateadd(datepart,number,date_expr) 返回日期加上 number

  上述函数中datepart

  写法 取值和意义

  yy 1753-9999 年份

  qq 1-4

  mm 1-12

  dy 1-366

  dd 1-31

  wk 1-54

  dw 1-7 周几

  hh 0-23 小时

  mi 0-59 分钟

  ss 0-59

  ms 0-999 毫秒

  日期转换

  convert()

  4.系统函数

  suser_name() 用户登录名

  user_name() 用户在数据库中的名字

  user 用户在数据库中的名字

  db_name() 数据库名

  object_name(obj_id) 数据库对象名

  col_name(obj_id,col_id) 列名

  col_length(objname,colname) 列长度

  valid_name(char_expr) 是否是有效标识符

三、 JOIN的应用

左向外联接:LEFT JOIN 等同LEFT OUTER JOIN。返回第一个表的信息

右向外联接:RIGHT JOIN RIGHT OUTER JOIN。返回第二个表的信息
全联:FULL JOIN FULL OUTER JOIN。完整外部联接返回左表和右表中的所有行。

例子:

reate table a (a int,b int)

create table b (a int,b int)

insert a values(1,1)

insert a values(2,2)

insert b values(1,1)

insert b values(3,3)

1--左联

select * from a Aa left join b Bb on Aa.a=Bb.a

结果:

1 1 1 1

2 2 NULL NULL

2--右:

select * from a Aa right join b Bb on Aa.a=Bb.a

结果:

1 1 1 1

NULL NULL 3 3

3--

select * from a Aa join b Bb on Aa.a=Bb.a

结果:

1 1 1 1

4--外:

select * from a Aa full join b Bb on Aa.a=Bb.a

结果:

1 1 1 1

NULL NULL 3 3

2 2 NULL NULL

4----完全

select * from a,b

结果:

1 1 1 1

2 2 1 1

1 1 3 3

2 2 3 3

四、

分享到:
评论

相关推荐

    sql server事务日志解析工具

    你是否想读取和分析SQL Server日志文件 (.ldf) ?正找不到合适的软件呢?以上一款强大的sql数据库日志分析工具,可以轻松打开查看ldf,mdf日志文件,还可以连接sql数据库进行分析。 事务日志是数据库的一个关键组件。...

    SQLSERVER日志分析工具

    SQLSERVER 日志分析工具及使用文档 ,实用工具,可以根据日志数据还原,分析日志

    浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 .docx

    SQL Server中的事务日志无疑是SQL Server中最重要的部分之一。因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。从而还部分确保了事务的ACID属性.在SQL Server崩溃时,DBA还可以通过事务...

    sqlserver日志查看工具

    可以查看sqlserver日志,并对日志做反向处理。

    SQL Server数据库状态监控 – 错误日志

    Windows Event Log和 SQL Server Error Log是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件。  一. 错误日志简介  1. Windows事件日志与SQL Server 错误日志  Windows...

    SqlServer日志清除专家

    这是一个清除SQLServer中日志文件冗余的专业工具,蛮好用的!

    快速清除SQLServer日志的两种方法

    日志文件满而造成SQL数据库无法写入文件时,本文介绍了可以用清空日志、删除LOG文件快速清除SQLServer日志的方法。

    SqlServer日志清除专家7

    一款小巧方便的SqlServer日志清除工具,可用于SQL Server 7、SQL Server 2000、SQL Server 2005的各种版本的数据库日志的清除,使您再也不用担心数据库日志文件超过几百兆或上GB级而烦恼,使您的Sql Server数据库既...

    SQL SERVER 日志收缩工具

    SQL SERVER 日志收缩工具,收缩前请备份好数据库!

    微软MS SQL SERVER 日志收缩工具(2019重构版)支持sqlserver 2008及以后版本,trunc绿色版单文件。

    MS SQL Server日志收缩工具是款小巧好用的sql日志清理工具,主要就是帮助用户清除系统红无用的SQL日志文件,更具备了日志文件压缩功能,有需要的朋友快来下载。 重构版,兼容sqlserver 2008及以后版本,依旧是trunc...

    SQL Server 2000 日志浏览器

    可以打开SQL Server 日志文件,对于数据恢复时有效的查看SQL的命令

    SQLSERVER 事务日志详解

    详细介绍了,通过[fn_dblog]函数,查询出所有的数据库的操作日志,以及针对此函数,对应关键列名的详细介绍。图文并茂,通过自身测试,提供详细的分析解释。

    SqlServer日志清除工具

    一款小巧方便的SqlServer日志清除工具,可用于Sql Server 6.5到Sql Server 2000的各种版本的数据库日志的清除,使您再也不用担心数据库日志文件超过几百兆或上GB级而烦恼,使您的Sql Server数据库既小巧又精练。...

    SQL SERVER2008 日志清理

    数据库文件 400M 日志文件3G ,执行完SQL SERVER日志清理后 直接将日志文件初始为1M。

    sqlserver错误日志

    sqlserver错误日志,报错701,是内存问题

    浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色.docx

    SQL Server中的事务日志无疑是SQL Server中最重要的部分之一。因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。从而还部分确保了事务的ACID属性.在SQL Server崩溃时,DBA还可以通过事务...

    SQLServer日志文件太大如何解决

    MS SQL清除日志的命令 如何清除sqlserver 日志? 【手工方式】 设置数据库为简单模式,自动收缩 1打开查询分析器输入命令 backup log databasename with no_log 2.再打开企业管理器--右键你要压缩的数据库--...

    sqlserver清理数据库日志

    "SQL Server 清理数据库日志" SQL Server 中的数据库日志是记录数据库所有操作的日志文件,这些日志文件会不断增长,占用大量的磁盘空间。如果不定期清理这些日志文件,可能会导致磁盘空间不足,影响数据库性能。...

    sqlserver完全备份和日志备份

    sqlserver完全备份和日志备份

    用sql语句dbcclog查看SQLServer数据库的事务日志[定义].pdf

    "用sql语句dbcclog查看SQLServer数据库的事务日志" SQL Server 数据库的事务日志是对数据库中的所有操作进行跟踪和记录的机制,它记录了数据库中的每一个操作,包括INSERT、UPDATE、DELETE等。通过查看事务日志,...

Global site tag (gtag.js) - Google Analytics