MS SQL 数据查询及函数

本文详细介绍了SQL查询的基本语法,包括如何根据条件查询数据、排序数据以及使用各种字符串和数学函数来处理数据。涵盖了从基础查询到高级函数应用的全过程,旨在帮助读者掌握SQL查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  一查询语法:


--SELECT    <列名> 
--FROM      <表名> 
--[WHERE    <查询条件表达式>] 
--[ORDER BY <排序的列名>[ASC或DESC]]

select * from student;
--1)根据1年级查询学员信息
select * from student where gradeid=1

--2)根据学员学号降序排序DESC 升序不要写ASC(默认)
select * from student where gradeid=1 order by studentno desc;

select * from student where gradeid=1 order by birthday ;

--3)查询2年级的学员的姓名,密码,电话,生日
select  studentName,loginpwd,phone,birthday from student where gradeid=2


--AS命名列可写可不写
select  studentName as 姓名 ,loginpwd 密码,phone 电话,birthday 生日 from student where gradeid=2

--注意:
--1. + 连接的数据类型必须兼容
--2. 如果 + 连接字符型数据,结果为字符串数据的连接
--3. 如果 + 连接数值型数据,结果为数值的和

select  studentName+'-'+loginpwd 密码,phone 电话,birthday 生日 from student where gradeid=2

--使用等号命名列  姓名=列名字段
select 姓名=studentName+'-'+loginpwd ,phone 电话,birthday 生日 from student where gradeid=2


--查询空行
SELECT * FROM dbo.Student WHERE Email IS NOT NULL

SELECT * FROM dbo.Student WHERE Email IS  NULL


--如何查询空字符值
SELECT * FROM dbo.Student WHERE Email=''

--使用常量列   'BDQN'(值)  北大青鸟(字段别名)
SELECT 姓名=studentname,地址=ADDRESS ,'BDQN' 北大青鸟 FROM dbo.Student 


--限制固定行数
SELECT TOP 8 * FROM student;


select * from student
--按百分数返回行  
--student总共有17行数据 ,占20% 显示=17*0.2=3.4~~4
SELECT TOP 50 PERCENT * FROM student;

二、常用的几类函数

--1)字符串函数
--用于控制返回给用户的字符串

--(1)CHARINDEX  寻找一个指定的字符串在另一个字符串中的起始位置
--从1开始数 charindex(要查找的字符,被查找的字符串,[开始位置])
SELECT CHARINDEX('JBNS','My Jbns Course')
SELECT CHARINDEX('he','hellhe',4);

--2)len返回传递给它的字符串长度 
--len(字符串)
SELECT LEN('哈哈bd你好啊啊');

--3)upper把传递给它的字符串转换为大写
 SELECT UPPER('hello');

--4)lower把传递给它的字符串转换为小写
SELECT LOWER('DBDQN')


--5)ltrim清除字符左边的空格
 SELECT ' this is a   ',lTRIM(' this is a   ')

--6)rtrim清除字符右边的空格
 SELECT ' this is a   ',rTRIM(' this is a   ')
 
 
 --7)right 从字符串右边返回指定数目的字符
  --right(字符串,字符个数)
 SELECT RIGHT('hello',2)
 
 --8)left 从字符串左边返回指定数目的字符
 SELECT left('hello',2)
 
 --9)replace替换一个字符串中的字符
  --replace('字符串','要修改字符串',‘修改值’)
   SELECT REPLACE('hellohe','ll','LL')
   
  --10)substring截取字符串
   --substring('字符串',起始位置(包含),字符个数)
  SELECT SUBSTRING('heado',3,2)

--11)stuff在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串
  --stuff(字符串,起始位置(包含),字符个数,'插入的值')
  SELECT STUFF('菲尔顿尔ACCP',3,2,'其他其他')


--2)数学函数
--用于对数值进行代数运算
   --1)rand返回从 0 到 1 之间的随机 float 值 
   SELECT  RAND()
   
   --2)abs 取数值表达式的绝对值
    SELECT ABS(-10)
        
    --3)floor取小于或等于指定表达式的最大整数 (地)
    SELECT FLOOR(44.5),FLOOR(-44.5)
    
   --4)CEILING 取大于或等于指定数值、表达式的最小整数 (天)
    SELECT CEILING(44.5),CEILING(-44.5)
    
    --5)power取数值表达式的幂值
    SELECT POWER(5,2)
    
    --6)round将数值表达式四舍五入为指定精度
     --round(数字,精确的个数)
    SELECT ROUND(193.6783,2)
    
    --7)sign对于正数返回+1,对于负数返回-1,对于0则返回0
    SELECT SIGN(30),SIGN(-10),SIGN(0)
    
    --8)sqrt取浮点表达式的平方根
    SELECT SQRT(2),SQRT(8)
    

--3)系统函数
--获取有关SQL Server中对象和设置的系统信息
--1)convert用来转变数据类型 
 -- CONVERT(数据类型, 数字/字符串)
SELECT CONVERT(VARCHAR(20),1234)+'aa' ,CONVERT(INT,'20')+50

--2)CURRENT_USER 返回当前用户的名字 DBO
SELECT CURRENT_USER

--3)datalenth返回用于指定表达式的字节数
SELECT LEN('哈哈bd你好啊啊'),DATALENGTH('哈哈bd你好啊啊')

--4)HOST_NAME 返回当前用户所登录的计算机名字  --机器名
SELECT HOST_NAME()  
 
--5)SYSTEM_USER返回当前所登录的用户名称  -->当前登录数据库用户名HSX\Administrator
SELECT SYSTEM_USER

--6)USER_NAME从给定的用户ID返回用户名
SELECT USER_NAME(1) dbo ,USER_NAME(2) guest,USER_NAME(3) information


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值