2025年sql文件怎么写(sql文件怎么写注释)

sql文件怎么写(sql文件怎么写注释)div id single top div p SQL 语句分为以下三种类型 p DML Data Manipulation Language 数据操纵语言 INSERT UPDATE DELETE SELECT DDL Data Definition Language

大家好,我是讯享网,很高兴认识大家。



 <div id="single_top"></div> <p>SQL语句分为以下三种类型:</p> 

讯享网

  • DML:Data Manipulation Language 数据操纵语言
    1. INSERT
    2. UPDATE
    3. DELETE
    4. SELECT
  • DDL:Data Definition Language 数据定义语言
    1. CREATE TABLE
    2. ALTER TABLE
    3. DROP TABLE
    4. CREATE INDEX
    5. DROP INDEX
  • DCL:Data Control Language 数据控制语言
    1. GRANT 授予访问权限
    2. REMOVE 撤销访问权限
    3. COMMIT 提交事务处理
    4. ROLLBACK 事务处理回退
    5. SAVEPOINT 设置保存点
    6. LOCK 对数据库的特定部分进行锁定

一、基本的SQL-SELECT语句

别名

①直接在字段名后面写&nbsp; select last_name name,employee_id id from empolyees;

②在字段名后加as&nbsp; select last_name as name,employee_id as id from empolyees;

③加双引号(当别名由多个单词构成且中间以空格隔开时必用)&nbsp; select last_name “my name”,employee_id as id from empolyees;

连接符

①把列与列,列与字符连接在一起

②用&nbsp;||&nbsp;表示

③可以用来’合成’列

select last_name||‘`s job_id is ‘||job_id as details from employees

重复行(去重)distinct

select distinct department_id from employees;

注意:null值也单独为一行

注意:字符和日期必须用单引号括起来(SQL中只有在上面提到的别名时会用到双引号,其它情况都用单引号),SQL语言大小写不敏感,但”括起来的字符串严格区分大小写

二、过滤和排序

过滤 where

–&nbsp;AND OR NOT&nbsp;逻辑且/逻辑或/逻辑否

–&nbsp;[NOT]&nbsp;BETWEEN AND&nbsp;表示区间内的值,包含边界 等价于 &gt;= and &lt;=


讯享网

–&nbsp;[NOT] IN&nbsp;表示离散的值,where department_id in(70,80,90) 等价于 where department_id=70 or department_id=80 or department_id=90

–&nbsp;[NOT]&nbsp;LIKE&nbsp;模糊查询

百分号%表示0&hellip;n个字符;

下划线_表示单个字符;

转义字符&nbsp;ESCAPE,where lastname like&nbsp; ‘%%’ escape “ (转义字符可以是任何字符 如 # \( 等)</p> <p>--&nbsp;IS [NOT] NULL&nbsp;空值</p> <p>-- 运算优先级</p> <p>算术运算符&gt;连接符&gt;比较符&gt;IS NULL,LIKE,IN&gt;BETWEEN&gt;NOT&gt;AND&gt;OR</p> <p>括号可以改变优先级</p></blockquote> <blockquote><p>排序</p> <p>ORDER BY&nbsp;&hellip;&nbsp;DESC(逆序)/ASC(顺序,默认)</p> <p>select last_name,department_id,salary*12&nbsp;annual_sal<br />from employees</p> <p>--order by 可以不放在where子句</p> <p>--where department_id &gt; 80</p> <p>--多级排序</p> <p>--依字段别名排序<br />order by&nbsp;annul_sal,last_name desc</p></blockquote> <p>三、单行函数</p> <blockquote><p>字符</p> <p>① 大小写控制函数:因为被单引号括出来的内容是严格区分大小写,而有时候查询不在乎大小写,这时候此类函数派上用场</p> <p>LOWER('SQL Course') &rarr; sql course&nbsp;&nbsp;&nbsp; 全部小写</p> <p>UPPER('SQL Course') &rarr; SQL COURSE 全部大写</p> <p>INITCAP('SQL Course') &rarr; Sql Course&nbsp; 单词首字母大写</p> <p>② 字符控制函数:</p> <p>CONCAT('Hello','World') &rarr; HelloWorld 连接字符串</p> <p>SUBSTR('HelloWorld',1,5) &rarr; Hello&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从第1个下角标位置开始截取长度为5的子字符串--Java中下标从0开始,-1代表无效数据;SQL中下标从1开始,0代表无效数据</p> <p>LENGTH('HelloWorld') &rarr; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符串长度</p> <p>INSTER('HelloWorld','W') &rarr; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符在字符串中的位置</p> <p>LPAD(salary,10,'*') &rarr; *24000&nbsp;&nbsp;&nbsp;&nbsp; 字符串左对齐,用10个位去存,不足在左端用*补齐</p> <p>RPAD(salary,10,'*') &rarr; 24000*&nbsp;&nbsp;&nbsp;&nbsp; 字符串右对齐,用10个位去存,不足在右端用*补齐</p> <p>TRIM('H'&nbsp;FROM&nbsp;'HelloHWorldH') &rarr; elloHWorld 去除原字符串中首尾与指定字符相同的字符</p> <p>REPLACE('abcdb','b','m') &rarr; amcdm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将字符串中所有与指定字符相同的字符替换为另一个字符</p></blockquote> <blockquote><p>数值</p> <p>ROUND()&nbsp;四舍五入</p> <p>,1) ROUND(435.45) ROUND(43.45,-1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 435.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 435&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 440</p> <p>TRUNC()&nbsp;截断</p> <p>,1) ROUND(435.45) ROUND(43.45,-1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 435.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 435&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 430</p> <p>MOD()&nbsp;求余</p> <p>--MOD(1600,15)</p> <p>10</p></blockquote> <blockquote><p>日期:Oracle中的日期型数据实际含有两个值(日期和时间)</p> <p>在日期上加上或减去一个数字结果仍为日期</p> <p>两个日期相减返回日期之间相差的天数</p> <p>MONTHS_BETWEEN&nbsp;两个日期相差的月数</p> <p>ADD_MONTHS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;向指定日期中加上若干月数</p> <p>NEXT_DAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定日期的下一个星期几对应的日期</p> <p>LAST_DAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本月的最后一天</p> <p>ROUND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期四舍五入</p> <p>TRUNC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期截断</p></blockquote> <blockquote><p>数据类型转换</p> <p>① 隐式&nbsp;DATE &larr;&rarr; VARCHAR2 &larr;&rarr; 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;&nbsp;--此处'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 />&nbsp;&nbsp; from employees<br />&nbsp;&nbsp; where&nbsp;to_char(hire_date,'yyyy/mm/dd') = '1994/06/07'&nbsp; --&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不足不用补零</p> <p>select to_char(.89,'000,000,999.99') from dual; -- 001,234,567.89&nbsp;&nbsp; 不足位数补零</p> <p>select to_char(.89,'\)999,999,999.99’) from dual; – $1,234,567.89&nbsp;&nbsp; 美元符号

select to_char(.89,‘L999,999,999.99’) from dual; – ¥1,234,567.89&nbsp; 本地货币符号

select to_number(‘¥1,234,567.89’,‘L999,999,999.99’) from dual; – .89 格式要对应上

通用

这些函数适用于任何数据类型,同时也适用于空值

NVL(expr1,expr2)&nbsp;等价于 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函数报&ldquo;无效数字&rdquo;错误,需进行处理

select last_name,nvl(to_char(department_id),‘没有部门’)&nbsp;from employees;

NVL2(expr1,expr2,expr3)&nbsp;等价于 expr1!=null?expr2:expr3

select last_name,nvl2(commission_pct,commission_pct + 0.015,0.01)&nbsp;from employees;

NULLIF(expr1,expr2)&nbsp;等价于 expr1==expr2?null:expr1

select first_name,length(first_name) “expr1”,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; last_name,length(last_name) “expr2”,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nullif(length(first_name),length(last_name))&nbsp;result
from employees

COALESCE(expr1,expr2,&hellip;,exprn)&nbsp;如果第一个表达式为null,则返回下一个表达式,依次迭代

条件表达式(IF-THEN-ELSE逻辑)

① CASE表达式

CASE&nbsp;expr1&nbsp;WHEN&nbsp;comparison_expr1&nbsp;THEN&nbsp;return_expr1
&nbsp; [WHEN&nbsp;comparison_expr2&nbsp;THEN&nbsp;return_expr2
&nbsp;&nbsp;&nbsp;WHEN&nbsp;comparison_exprn&nbsp;THEN&nbsp;return_exprn
&nbsp;&nbsp;&nbsp;ELSE&nbsp;else_expr]

END

–查询部门号为10,20,30的员工信息,若部门号为10,则打印
–其工作的1.1倍,20号部门,1.2倍,30号部门,1.3倍
select employee_id,last_name,department_id,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case department_id when 10 then salary*1.1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when 20 then salary*1.2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else salary*1.3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end REVISED_SALARY
from employees
where department_id in(10,20,30)

② DECODE函数

select employee_id,last_name,department_id,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decode(department_id,10,salary*1.1,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20,salary*1.2,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; salary*1.3) REVISED_SALARY
from employees
where department_id in(10,20,30)

  1. [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步

    同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/ 连接数据库与SQL语句的Select语句初步 ”前文再续, ...

  2. 第一篇 SQL Server安全概述

    本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  3. 第一篇 SQL Server代理概述

    本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...

  4. 第三篇——第二部分——第一文 SQL Server镜像简介

    原文:第三篇--第二部分--第一文 SQL Server镜像简介 原文出处:http://blog.csdn.net/dba_huangzj/article/details/ 镜像是什 ...

  5. 第一篇——第一文 SQL Server 备份基础

    原文:第一篇--第一文 SQL Server 备份基础 当看这篇文章之前,请先给你的所有重要的库做一次完整数据库备份.下面正式开始备份还原的旅程. 原文出处: http://blog.csdn.net ...

  6. 【译】第一篇 SQL Server安全概述

    本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  7. 【译】第一篇 SQL Server代理概述

    本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...

  8. 利用pl/sql执行计划评估SQL语句的性能简析

    一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在.  那么,作为 ...

  9. 使用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 安装 &quot;Table Prefix&quot; must not be empty. <p style="color: rgba(0, 0, 0, 0.32);margin-bottom: 8px;">时隔一年了,一年没有写代码了.又重拾代码,心情无法言表啊.互联网还是有机会的. 安装wordpress怎么装 setp2了就 报 &quot;Table Prefix&quot; 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样式:单个:$(&quot;p&quot;).css(&quot;color&quot;,&quot;red&quot;); 多 ...</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> 
小讯
上一篇 2025-05-04 15:25
下一篇 2025-05-31 21:14

相关推荐

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