<div id="single_top"></div> <p>SQL语句分为以下三种类型:</p>
讯享网
- DML:Data Manipulation Language 数据操纵语言
- INSERT
- UPDATE
- DELETE
- SELECT
- DDL:Data Definition Language 数据定义语言
- CREATE TABLE
- ALTER TABLE
- DROP TABLE
- CREATE INDEX
- DROP INDEX
- DCL:Data Control Language 数据控制语言
- GRANT 授予访问权限
- REMOVE 撤销访问权限
- COMMIT 提交事务处理
- ROLLBACK 事务处理回退
- SAVEPOINT 设置保存点
- LOCK 对数据库的特定部分进行锁定
一、基本的SQL-SELECT语句
别名
①直接在字段名后面写 select last_name name,employee_id id from empolyees;
②在字段名后加as select last_name as name,employee_id as id from empolyees;
③加双引号(当别名由多个单词构成且中间以空格隔开时必用) select last_name “my name”,employee_id as id from empolyees;
连接符
①把列与列,列与字符连接在一起
②用 || 表示
③可以用来’合成’列
select last_name||‘`s job_id is ‘||job_id as details from employees
重复行(去重)distinct
select distinct department_id from employees;
注意:null值也单独为一行
注意:字符和日期必须用单引号括起来(SQL中只有在上面提到的别名时会用到双引号,其它情况都用单引号),SQL语言大小写不敏感,但”括起来的字符串严格区分大小写
二、过滤和排序
过滤 where
– AND OR NOT 逻辑且/逻辑或/逻辑否
– [NOT] BETWEEN AND 表示区间内的值,包含边界 等价于 >= and <=
– [NOT] IN 表示离散的值,where department_id in(70,80,90) 等价于 where department_id=70 or department_id=80 or department_id=90
– [NOT] LIKE 模糊查询
百分号%表示0…n个字符;
下划线_表示单个字符;
转义字符 ESCAPE,where lastname like ‘%%’ escape “ (转义字符可以是任何字符 如 # \( 等)</p> <p>-- IS [NOT] NULL 空值</p> <p>-- 运算优先级</p> <p>算术运算符>连接符>比较符>IS NULL,LIKE,IN>BETWEEN>NOT>AND>OR</p> <p>括号可以改变优先级</p></blockquote> <blockquote><p>排序</p> <p>ORDER BY … DESC(逆序)/ASC(顺序,默认)</p> <p>select last_name,department_id,salary*12 annual_sal<br />from employees</p> <p>--order by 可以不放在where子句</p> <p>--where department_id > 80</p> <p>--多级排序</p> <p>--依字段别名排序<br />order by annul_sal,last_name desc</p></blockquote> <p>三、单行函数</p> <blockquote><p>字符</p> <p>① 大小写控制函数:因为被单引号括出来的内容是严格区分大小写,而有时候查询不在乎大小写,这时候此类函数派上用场</p> <p>LOWER('SQL Course') → sql course 全部小写</p> <p>UPPER('SQL Course') → SQL COURSE 全部大写</p> <p>INITCAP('SQL Course') → Sql Course 单词首字母大写</p> <p>② 字符控制函数:</p> <p>CONCAT('Hello','World') → HelloWorld 连接字符串</p> <p>SUBSTR('HelloWorld',1,5) → Hello 从第1个下角标位置开始截取长度为5的子字符串--Java中下标从0开始,-1代表无效数据;SQL中下标从1开始,0代表无效数据</p> <p>LENGTH('HelloWorld') → 10 字符串长度</p> <p>INSTER('HelloWorld','W') → 6 字符在字符串中的位置</p> <p>LPAD(salary,10,'*') → *24000 字符串左对齐,用10个位去存,不足在左端用*补齐</p> <p>RPAD(salary,10,'*') → 24000* 字符串右对齐,用10个位去存,不足在右端用*补齐</p> <p>TRIM('H' FROM 'HelloHWorldH') → elloHWorld 去除原字符串中首尾与指定字符相同的字符</p> <p>REPLACE('abcdb','b','m') → amcdm 将字符串中所有与指定字符相同的字符替换为另一个字符</p></blockquote> <blockquote><p>数值</p> <p>ROUND() 四舍五入</p> <p>,1) ROUND(435.45) ROUND(43.45,-1)<br /> 435.5 435 440</p> <p>TRUNC() 截断</p> <p>,1) ROUND(435.45) ROUND(43.45,-1)<br /> 435.4 435 430</p> <p>MOD() 求余</p> <p>--MOD(1600,15)</p> <p>10</p></blockquote> <blockquote><p>日期:Oracle中的日期型数据实际含有两个值(日期和时间)</p> <p>在日期上加上或减去一个数字结果仍为日期</p> <p>两个日期相减返回日期之间相差的天数</p> <p>MONTHS_BETWEEN 两个日期相差的月数</p> <p>ADD_MONTHS 向指定日期中加上若干月数</p> <p>NEXT_DAY 指定日期的下一个星期几对应的日期</p> <p>LAST_DAY 本月的最后一天</p> <p>ROUND 日期四舍五入</p> <p>TRUNC 日期截断</p></blockquote> <blockquote><p>数据类型转换</p> <p>① 隐式 DATE ←→ VARCHAR2 ←→ NUMBER</p> <div> <tbody> <tr> <td>源数据类型</td> <td>目标数据类型</td> </tr> <tr> <td>VARCHAR2/CHAR</td> <td>NUMBER</td> </tr> <tr> <td>VARCHAR2/CHAR</td> <td>DATE</td> </tr> <tr> <td>NUMBER</td> <td>VARCHAR2</td> </tr> <tr> <td>DATE</td> <td>VARCHAR2</td> </tr> </tbody> </div> <p>--注意区别,JAVA中+号在字符串运算中代表字符串连接,SQL中字符串连接用的是 ||,+号则表示数学加法运算</p> <p>select '12' + 2 from dual; --此处'12'隐性转换为NUMBER类型的12</p> <p>② 显式</p> <p><img referrerpolicy="no-referrer"src="http://images0.cnblogs.com/blog///9467.png" /></p> <p>TO_CHAR</p> <p>select employee_id,to_char(hire_date,'yyyy"年"mm"月"dd"日"') --此处在输出日期格式中穿插的字符要用""括起来<br /> from employees<br /> where to_char(hire_date,'yyyy/mm/dd') = '1994/06/07' -- to_date('1994/06/07','yyyy/mm/dd')</p> <p>TO_DATE</p> <p>TO_NUMBER</p> <p>select to_char(.89,'999,999,999.99') from dual; -- 1,234,567.89 不足不用补零</p> <p>select to_char(.89,'000,000,999.99') from dual; -- 001,234,567.89 不足位数补零</p> <p>select to_char(.89,'\)999,999,999.99’) from dual; – $1,234,567.89 美元符号
select to_char(.89,‘L999,999,999.99’) from dual; – ¥1,234,567.89 本地货币符号
select to_number(‘¥1,234,567.89’,‘L999,999,999.99’) from dual; – .89 格式要对应上
通用
这些函数适用于任何数据类型,同时也适用于空值
NVL(expr1,expr2) 等价于 expr1!=null?expr1:expr2
–commission_pct 奖金率字段的值有可能为null,是null则用 0 代替
select employee_id,last_name,salary12(1+nvl(commission_pct,0)) annual_sal,commission_pct from employees;
–由于department_id是NUMBER类型,而’没有部门’是严格的字符类型,直接调用NVL函数报“无效数字”错误,需进行处理
select last_name,nvl(to_char(department_id),‘没有部门’) from employees;
NVL2(expr1,expr2,expr3) 等价于 expr1!=null?expr2:expr3
select last_name,nvl2(commission_pct,commission_pct + 0.015,0.01) from employees;
NULLIF(expr1,expr2) 等价于 expr1==expr2?null:expr1
select first_name,length(first_name) “expr1”,
last_name,length(last_name) “expr2”,
nullif(length(first_name),length(last_name)) result
from employees
COALESCE(expr1,expr2,…,exprn) 如果第一个表达式为null,则返回下一个表达式,依次迭代
条件表达式(IF-THEN-ELSE逻辑)
① CASE表达式
CASE expr1 WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]END
–查询部门号为10,20,30的员工信息,若部门号为10,则打印
–其工作的1.1倍,20号部门,1.2倍,30号部门,1.3倍
select employee_id,last_name,department_id,
case department_id when 10 then salary*1.1
when 20 then salary*1.2
else salary*1.3
end REVISED_SALARY
from employees
where department_id in(10,20,30)
② DECODE函数
select employee_id,last_name,department_id,
decode(department_id,10,salary*1.1,
20,salary*1.2,
salary*1.3) REVISED_SALARY
from employees
where department_id in(10,20,30)
- [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步
同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/ 连接数据库与SQL语句的Select语句初步 ”前文再续, ...
- 第一篇 SQL Server安全概述
本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- 第一篇 SQL Server代理概述
本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...
- 第三篇——第二部分——第一文 SQL Server镜像简介
原文:第三篇--第二部分--第一文 SQL Server镜像简介 原文出处:http://blog.csdn.net/dba_huangzj/article/details/ 镜像是什 ...
- 第一篇——第一文 SQL Server 备份基础
原文:第一篇--第一文 SQL Server 备份基础 当看这篇文章之前,请先给你的所有重要的库做一次完整数据库备份.下面正式开始备份还原的旅程. 原文出处: http://blog.csdn.net ...
- 【译】第一篇 SQL Server安全概述
本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- 【译】第一篇 SQL Server代理概述
本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...
- 利用pl/sql执行计划评估SQL语句的性能简析
一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在. 那么,作为 ...
- 使用sql语句创建修改SQL Server标识列(即自动增长列)
一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统 ...
讯享网 <li>word-wrap: break-word;和word-break: break-all;的区别 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">详细查看以下链接.(转载自张鑫旭大神空间) http://www.zhangxinxu.com/wordpress/2015/11/diff-word-break-break-all-word-wra ...</p> </li> <li>wordpress 安装 "Table Prefix" must not be empty. <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">时隔一年了,一年没有写代码了.又重拾代码,心情无法言表啊.互联网还是有机会的. 安装wordpress怎么装 setp2了就 报 "Table Prefix" must not b ...</p> </li> <li>Android Studio插件美化Android Studio,文艺清新范 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">一:重新定义你工作区的颜色 1:原生的工作区文字的颜色反人类,来这个网站下载自己喜欢的主题:http://www.riaway.com/ 轻松定义:下载后是个jar包. 2:导入jar包 file ...</p> </li> <li>jQuery用法小结 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">jQuery加载1.$(document).ready()2.添加css样式:单个:$("p").css("color","red"); 多 ...</p> </li> <li>计算LDA模型困惑度 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA主题模型评估方法--Perplexity http:/ ...</p> </li> <li>八月25日认识java <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">java的起源:1991年SUN公司启动的“Green”项目制作出的Star7, java的发展:于1995年5月23日正NSU式发布第一个java开发工具:java在1998年推出JDK1.2,表示 ...</p> </li> <li>Servlet异步上传文件 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">这里需要用到插件ajaxfileupload.js,jar包:commons-fileupload-1.3.2.jar,commons-io-2.5.jar 注意红色部分的字!!!! 1.创建一个we ...</p> </li> <li>10 款最好的 Python IDE <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">Python 非常易学,强大的编程语言.Python 包括高效高级的数据结构,提供简单且高效的面向对象编程. Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE).这 ...</p> </li> <li>Alamofire 的使用 <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">最近,AFNetworking 的作者Mattt Thompson提交了一个新的类似于 AFNetworking 的网络 基础库,并且是专门使用最新的 Swift 语言来编写的,名为:Alamofir ...</p> </li> <li>redis3.2新增属性protected mode <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">在安装新版redis时(3.2) , 一直出现问题 , 只能本机连接其他机器访问失败 , 后来发现是新版增加了安全机制 在配置文件里可以发现多出了protected-mode这一项 , 如果为yes ...</p> </li> </ol>



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/192697.html