Transact

Easter79
• 阅读 605

正文共:2136 字 5 图  预计阅读时间:6 分钟

前文推送

  1. SQL Server入门

  2. Transact-SQL基础(上)

  3. Transact-SQL基础(下)

  4. SQL笔试50题(上)

  5. SQL笔试50题(下)

  6. SQL基础查询方法

  7. SQL高级查询方法

本文目录:

  • 1.1 系统函数

  • 1.2 安全函数

  • 1.3 元数据函数

1.1 系统函数

 1-- 返回工作站标识号,是连接到 SQL Server的客户端计算机上的应用程序的进程 ID (PID) 2SELECT HOST_ID(); 3-- 返回工作站名 4SELECT HOST_NAME(); 5-- 创建 uniqueidentifier 类型的唯一值 6SELECT NEWID();   7-- 确定表达式是否为有效的数值类型;ISNUMERIC ( expression ) 8SELECT distinct  9    ISNUMERIC(sid),ISNUMERIC(ssex)10from Student 11-- 使用指定的替换值替换 NULL。12-- ISNULL ( check_expression , replacement_value )

Transact

system_function

1.1.1 CAST 和 CONVERT

CAST 和 CONVERT函数是将一种数据类型的表达式转换为另一种数据类型的表达式。

     1
    
      
 
     
     
     -- CAST()语法:
    
      
 
     
     
     
    
      
 
     
     
     2CAST ( expression AS data_type [ ( length ) ] )
    
      
 
     
     
     
    
      
 
     
     
     3
    
      
 
     
     
     -- CONVERT()语法:
    
      
 
     
     
     
    
      
 
     
     
     4CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
    
      
 
     
     
     
   
     

    
    
    
  • expression
    任何有效的表达式。

  • data_type
    目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。

  • length
    指定目标数据类型长度的可选整数。默认值为 30。

  • style
    指定 CONVERT 函数如何转换 expression 的整数表达式。如果样式为 NULL,则返回 NULL。该范围是由 data_type 确定的。有关详细信息,请参阅“备注”部分。

1.2 安全函数

对管理安全性有用的函数

      1
    
      
 
     
     
     -- 当前用户的名称, 两者等价
    
      
 
     
     
     
    
      
 
     
     
      2
    
      
 
     
     
     SELECT 
    
      
 
     
     
     CURRENT_USER;
    
      
 
     
     
     
    
      
 
     
     
      3
    
      
 
     
     
     SELECT USER_NAME();
    
      
 
     
     
     
    
      
 
     
     
      4
    
      
 
     
     
     -- 数据库指定用户的标识号, 用户名缺省则表示当前用户
    
      
 
     
     
     
    
      
 
     
     
      5
    
      
 
     
     
     SELECT USER_ID ( [ 
    
      
 
     
     
     'user' ] );
    
      
 
     
     
     
    
      
 
     
     
      6
    
      
 
     
     
     SELECT USER_ID();
    
      
 
     
     
     
    
      
 
     
     
      7
    
      
 
     
     
     -- 数据库指定标识号的用户名
    
      
 
     
     
     
    
      
 
     
     
      8
    
      
 
     
     
     SELECT USER_NAME([ 
    
      
 
     
     
     id ] );
    
      
 
     
     
     
    
      
 
     
     
      9
    
      
 
     
     
     SELECT USER_NAME();
    
      
 
     
     
     
    
      
 
     
     
     10
    
      
 
     
     
     -- 当前数据库中当前上下文的用户名
    
      
 
     
     
     
    
      
 
     
     
     11
    
      
 
     
     
     SELECT 
    
      
 
     
     
     SESSION_USER;
    
      
 
     
     
     
    
      
 
     
     
     12
    
      
 
     
     
     -- 用户的登录标识号 SUSER_ID ( [ 'login' ] ) login为登录名
    
      
 
     
     
     
    
      
 
     
     
     13
    
      
 
     
     
     SELECT SUSER_ID(
    
      
 
     
     
     'sa');
    
      
 
     
     
     
    
      
 
     
     
     14
    
      
 
     
     
     SELECT SUSER_ID(USER_NAME()); 
    
      
 
     
     
     
    
      
 
     
     
     15
    
      
 
     
     
     -- 根据用户登录标识号返回用户的登录标识名SUSER_NAME ( [ server_user_id ] )
    
      
 
     
     
     
    
      
 
     
     
     16
    
      
 
     
     
     SELECT SUSER_NAME(
    
      
 
     
     
     1);
    
      
 
     
     
     
    
      
 
     
     
     17
    
      
 
     
     
     -- 指定登录名的安全标识号 (SID)
    
      
 
     
     
     
    
      
 
     
     
     18
    
      
 
     
     
     SELECT SUSER_SID(
    
      
 
     
     
     'sa');
    
      
 
     
     
     
    
      
 
     
     
     19
    
      
 
     
     
     -- 与安全标识号 (SID) 关联的登录名
    
      
 
     
     
     
    
      
 
     
     
     20
    
      
 
     
     
     SELECT SUSER_SNAME(
    
      
 
     
     
     0x01);
    
      
 
     
     
     
   
     

    
    
    

Transact

security_functions

     1
    
      
 
     
     
     -- 判断当前账户是否可以访问指定的数据库
    
      
 
     
     
     
    
      
 
     
     
     2
    
      
 
     
     
     SELECT HAS_DBACCESS (
    
      
 
     
     
     'database_name');
    
      
 
     
     
     
    
      
 
     
     
     3
    
      
 
     
     
     -- 判断当前用户是否为指定Microsoft Windows组或SQL Server数据库角色的成员
    
      
 
     
     
     
    
      
 
     
     
     4
    
      
 
     
     
     SELECT IS_MEMBER ( { 
    
      
 
     
     
     'group' | 
    
      
 
     
     
     'role' } )
    
      
 
     
     
     
   
     

    
    
    

1.3 元数据函数

返回有关数据库和数据库对象的信息

      1
    
      
 
     
     
     -- 与架构 ID 关联的架构名称 SCHEMA_NAME ([ schema_id ])
    
      
 
     
     
     
    
      
 
     
     
      2
    
      
 
     
     
     SELECT SCHEMA_NAME();
    
      
 
     
     
     
    
      
 
     
     
      3
    
      
 
     
     
     -- 与架构名称关联的架构ID SCHEMA_ID ([ schema_name ])
    
      
 
     
     
     
    
      
 
     
     
      4
    
      
 
     
     
     SELECT SCHEMA_ID();
    
      
 
     
     
     
    
      
 
     
     
      5
    
      
 
     
     
     -- 数据库标识 (ID)号, DB_ID ( [ 'database_name' ] ) 
    
      
 
     
     
     
    
      
 
     
     
      6
    
      
 
     
     
     SELECT DB_ID();
    
      
 
     
     
     
    
      
 
     
     
      7
    
      
 
     
     
     -- 数据库名称 DB_NAME ( [ database_id ] )
    
      
 
     
     
     
    
      
 
     
     
      8
    
      
 
     
     
     SELECT DB_NAME();
    
      
 
     
     
     
    
      
 
     
     
      9
    
      
 
     
     
     -- 指定表中指定列的定义长度(以字节为单位)
    
      
 
     
     
     
    
      
 
     
     
     10COL_LENGTH ( 'table' , 'column' ) 
    
      
 
     
     
     
   
     

    
    
    

Transact

meta_functions

===

本文项目地址:

https://github.com/firewang/sql50

(喜欢的话,Star一下)

阅读原文,或者访问该链接可以在线观看

https://sql50.readthedocs.io/zh\_CN/latest/

参考网址:

PS:

1. 后台回复“线性代数”,“SQL” 等任一关键词获取资源链接

2. 后台回复“联系“, “投稿“, “加入“ 等任一关键词联系我们

3. 后台回复 “红包” 领取红包

Transact

零维领域,由内而外深入机器学习

dive into machine learning

微信号:零维领域

英文ID:lingweilingyu

Transact

本文分享自微信公众号 - 零维领域(lingweilingyu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
SQL高级查询方法
正文共:5024字2图  预计阅读时间:14分钟前文推送1.SQLServer入门(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzU5MTgxNTQyNA%3D%3D%26mid%3D2247
Wesley13 Wesley13
3年前
SQL笔试50题(下)
正文共:4832字22图  预计阅读时间:13分钟前文推送1.MIT线性代数相关资源汇总(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzU5MTgxNTQyNA%3D%3D%26mid%3D224748
Stella981 Stella981
3年前
AssemblyScript 入门指南[每日前端夜话0xEB]
每日前端夜话0xEB每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2459 字预计阅读时间:10分钟作者:DannyGuo翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/b880277c594152a503
Stella981 Stella981
3年前
Node.js 12中的ES模块[每日前端夜话0x9E]
每日前端夜话0x9E每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2552字预计阅读时间:10 分钟作者:BrianDeSousa翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/2ccaf94cecd3
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
Flink SQL Window源码全解析
!(https://oscimg.oschina.net/oscnet/72793fbade36fc18d649681ebaeee4cdf00.jpg)(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzU3MzgwNT
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k