码迷,mamicode.com
首页 > 数据库 > 详细

SQL从零到迅速精通【实用函数(2)】

时间:2017-07-29 00:51:33      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:姓名   需要   order   定位   查看   charindex   dex   延迟   评价   

1.对查询结果进行排序

  查询stu_info表中所有学生信息,并按照成绩由高到底进行排序,输入语句如下。

SELECT * FROM stu_info ORDER BY s_score DESC;  --asc是指定列按升序排列,desc则是指定列按降序排列。

 

2.数据控制语句【授权、禁止和收回】

(1)授权权限操作

对名称为guest的用户进行授权,允许其对stu_info数据表执行更新和删除的操作权限,输入语句如下。

GRANT UPDATE,DELETE ON stu_info   --UPDATE和DALETE为允许被授予的操作权限

TO guest WITH GRANT OPTION

(2)拒绝权限操作

禁止guest用户对stu_info表的操作更新权限,输入语句如下。

DENY UPDATE ON stu_info TO guest CASCADE; --CASCADE这里记住就行了,说什么和级联有关系,算是固定语法吧。

(3)收回权限操作

收回guest用户对stu_info表的删除权限,输入语句如下。

REVOKE DELETE ON stu_info FROM guest;

 

3.BEGIN...END语句【与选择语句IF...ELSE和循环语句WHILE搭配使用】

定义布局变量@count,如果@count值小于10,执行WHILE循环操作中的语句块,输入语句如下。

DECLARE @count INT;

SELECT @count=0;

WHILE @count < 10

BEGIN

          PRINT ‘count=‘ + CONVERT(VARCHAR(8),@count)  --CONVERT用来把INT类型转化成浮动字符型VARCHAR

          SELECT @count=@count+1

END

PRINT ‘loop over count = ‘ + CONVERT(VARCHAR(8),@count);

 

4.IF...ELSE语句

DECLARE @age INT;

SELECT @age=40

IF @age<30

     PRINT ‘This is a young man!‘

ELSE

     PRINT ‘This is an old man!‘

 

5.CASE语句(简记:CASE/WHEN/THEN/END)【尽可能全部采用CASE语句,非常清晰】

使用CASE语句根据学生姓名判断个个学生在班级的职位,输入语句如下。

USE test_db

SELECT s_id,s_name,

CASE s_name

          WHEN ‘Jack‘ THEN ‘BOSS‘

          WHEN ‘Rose‘ THEN ‘BEAUTY‘

          WHEN ‘Osmond‘ THEN ‘MILIINIARE‘

          ELSE ‘NO‘  --除上面这三个人名之外,其他人全部的职位都是无。如果需要这样设计的话,CASE很好,如果不需要这样设计的话,可以不加ELSE。

END

AS ‘JOB‘

FROM stu_info

 

6.使用CASE语句对考试成绩进行评定,输入语句如下。

SELECT s_id,s_name,s_score

CASE

        WHEN s_score >90 THEN ‘perfect‘

        WHEN s_score >80 THEN ‘good‘

        WHEN s_score >70 THEN ‘ok‘

        WHEN s_score >60 THEN ‘just soso‘

END

AS ‘评价‘

FROM stu_info

 

7.GOTO【用来跳转】

USE test_db;

BEGIN

SELECT s_name FROM stu_info;

GOTO jump

SELECT s_score FROM stu_info;

jump:

PRINT ‘第二条SELECT语句没有执行’;

END

 

8.WAITFOR语句

    10s的延迟后执行PRINT语句,输入语句如下。

DECLARE @name VARCHAR(50);

SET @name=‘admin‘;

BEGIN

WAITFOR DELAY ‘00:00:10‘;

PRINT @name;

END;

 

9.RETURN【无条件退出】

 

10.ASCII()函数

    查看指定字符的ASCII值,输入语句如下。

SELECT ASCII(‘s‘);

 

11.CHAR()函数

    查看ASCII值115和49对应的字符,输入语句如下。

SELECT CHAR(115),CHAR(49);

 

12.LEFT()函数

    使用LEFT函数返回字符串中左边的字符,输入语句如下。

SELECT LEFT(‘football‘,4);            》》》》》》foot

 

13.RIGHT()函数

    使用RIGHT函数返回字符串中右边的字符,输入语句如下。

SELECT RIGHT(‘football‘,4);           》》》》》》ball

 

14.LTRIM()函数

    使用LTRIM函数删除字符串左边的空格,输入语句如下。

SELECT LTRIM(‘  book  ‘);

 

15.RTRIM()函数(和上面对应)

 

16.STR()函数

    使用STR函数将数字数据转换为字符数据,输入语句如下。

SELECT STR(3141.59,6,1),STR(123.45,5,7);技术分享

 

17.字符串逆序的函数REVERSE(s)

    使用REVERSE函数反转字符串,输入语句如下。

SELECT REVERSE(‘abc‘);技术分享

 

18.LEN(str)函数

SELECT LEN(‘no‘),LEN(‘日期‘),LEN(12345);技术分享

 

19.查找A在数据中的位置(高级查找)

    使用CHARINDEX函数查找字符串中指定子字符串的开始位置,输入语句如下。

SELECT CHARINDEX(‘a‘,‘banana‘),CHARINDEX(‘na‘,‘banana‘,4);技术分享

 

20.范围内取内容

  使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下。

  SELECT

SUBSTRING(‘breakfast‘1,5),SUBSTRING(‘breakfast‘,LEN(‘breakfast‘)/2,LEN(‘breakfast’));

>>>>>>>>break   akfast

 

 

    

 

 

 

        

SQL从零到迅速精通【实用函数(2)】

标签:姓名   需要   order   定位   查看   charindex   dex   延迟   评价   

原文地址:http://www.cnblogs.com/osmondwang/p/7253060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!