SQL从零到迅速精通【实用函数(2)】
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)】的更多相关文章
- SQL从零到迅速精通【实用函数(3)】
1.LOWER()函数 使用LOWER函数将字符串中所有字幕字符转换为小写,输入语句如下. SELECT LOWER('BEAUTIFUL'),LOWER('Well'); 2.UPPER()函数 S ...
- SQL从零到迅速精通【实用函数(1)】
语法是一个编程语言的基础,真的想玩的6得飞起还是要靠自己定义的函数和变量. 1.使用DECLARE语句创建int数据类型的名为@mycounter的局部变量,输入语句如下: DECLARE @myco ...
- SQL从零到迅速精通【触发器】
essay from:http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.html 触发器就类似一个小账本,记录了你在数据库做了哪些操作,可 ...
- SQL从零到迅速精通【数据库应用】
数据库理论的研究主要集中于关系规范化理论和关系数据理论等.数据库技术与计算机技术的结合使得数据库中新的技术层出不穷.最初的数据库系统主要应用于银行管理.飞机订票等事务处理环境.后来渐渐应用于工程设计与 ...
- SQL从零到迅速精通【规则和约束】
1.[创建规则] 为stu_info表定义一个规则,指定其成绩列的值必须大于0,小于100,输入语句如下. USE test_db; GO CREATE RULE rule_score AS @sco ...
- SQL从零到迅速精通【数据更新】
1.[导入表]在两个表的格式一样的情况下,将一个表的数据导入另外一个表. person_old表中现在有两条记录.接下来将person_old表中所有的记录插入到person表中,语句如下: INSE ...
- SQL从零到迅速精通【表连接查询】
看了这些表连接,个人感觉'左外连接'.'右外连接'和'全外连接'应用好就可以了. 1.外连接 (1)LEFT JOIN(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录. 在student ...
- SQL从零到迅速精通【查询利器】
1.[列选取]从fruits表中获取f_name和f_price两列,T-SQL语句如下. SELECT f_name,f_price FROM fruits; 2.[去重]查询fruits表中s_i ...
- SQL从零到迅速精通【基本语句】
1.使用T-SQL语句创建数据表authors,输入语句如下. CREATE TABLE authors { auth_id int PRIMARY KEY,--数据表主键 auth_name VAR ...
随机推荐
- ApacheCN Golang 译文集 20211025 更新
Go 云原生编程 零.前言 一.现代微服务架构 二.使用 RESTAPI 构建微服务 三.保护微服务 四.使用消息队列的异步微服务架构 五.使用 React 构建前端 六.在容器中部署应用 七.AWS ...
- SqlServer基础语法
历史 有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server. 1989年 Ashton-Tate/Microsoft SQL Serv ...
- JAVA多线程学习五:线程范围内共享变量&ThreadLocal
一.概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变量. 二.代码 Runnable中的run( ...
- Linux远程访问及控制
Linux远程访问及控制 目录 Linux远程访问及控制 一.SSH远程管理 1. SSH远程管理概述 2. OpenSSH概述 3. 配置OpenSSH服务端 4. sshd服务的验证方式 5. 使 ...
- Cadence物理库 LEF 文件语法学习【持续更新】
我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索. 关注公众号,拉你进"IC设计交流群". @ 目录 一.LEF简介 1.1 通用规则 1.2 管理 LEF 文件 二. ...
- JetBrains官博:将从IntelliJ平台移除Log4j的依赖
今早,DD注意到JetBrains在官方博客发文宣布要将log4j从IntelliJ平台移除了,该变化将在2022.1版本发布. 从博文看,本次移除log4j的漏洞,并非担心log4j2的漏洞问题,因 ...
- js reduce累加器
reduce 是es6 新增的数组操作方法 意为累加器 使用方法如下 [1,1,1,1].reduce((total,currentValue,index)=>{ },initialValu ...
- 框架3--backup结构(rsync复制指令)
目录 框架3--备份结构(rsync复制指令) 一.3个复制指令 二.rsync介绍 三.rsync特性 四.rsync应用场景 4.1 全量备份 4.2 增量备份 五.rsync的传输方式(推+拉) ...
- Redis 源码简洁剖析 12 - 一条命令的处理过程
命令的处理过程 Redis server 和一个客户端建立连接后,会在事件驱动框架中注册可读事件--客户端的命令请求.命令处理对应 4 个阶段: 命令读取:对应 readQueryFromClient ...
- 2018 PHP面试题
2018 PHP面试题 题目来自<PHP程序员面试笔试宝典>,里面涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. 1.PHP常考基础 1.PHP ...