SQL总结(一)

SQL进阶

最近写sql比较多,以前没有详细总结过,现在把经常用的sql语法总结下。相关资料来自于W3School

SQL TOP

top字句可以规定查询的返回条数。

SELECT TOP number|percent column_name(s)
FROM table_name

这个经常用在分页中。可以规定具体的条数,也可以规定百分比。

具体条数:

SELECT TOP N * FROM TableA

百分比:

SELECT TOP N PERCENT * FROM TableA

SQL LIKE

like用来找到内容符合一定条件的返回结果。

//查找最后一个字符是L的
SELECT * FROM table where column_name like ‘%L‘
//查找第一个字符是L的
SELECT * FROM table where column_name like ‘L%‘
//查找中间有字符是L的
SELECT * FROM table where column_name like ‘%L%‘

SQL 通配符

和其他语言的通配符一样,SQL的通配符也是用来匹配字段的,和like连用。

‘%’的用法介绍过了,下面总结下其他的通配符。

‘_’用来替代单个字符。

‘[ ]’作为存放多个单字符,可以理解为数组。

//查找以某个字符开头的,L结尾的内容
SELECT * FROM TABLE where column_name like ‘_L‘
//匹配掉某些字符,可能查出D2D3d这种内容
SELECT * FROM TABLE where column_name like ‘D_D_d‘
//用多个单字符匹配
SELECT * FROM TABLE where column_name like ‘[ABC]%‘
//匹配不包含某几个单字符的内容
SELECT * FROM TABLE where column_name like ‘[!ABC]%‘

总体来说SQL的通配符还是比较简单的,使用的时候根据情况自由发挥就好。

SQL IN

sql in相比于通配符,进一步规定了查询的内容。

SELECT * FROM TABLE where column_name in (‘value1‘,‘value2‘,‘value3‘,...)

SQL Between

Between规定一个查询的范围。一般来说是between valueA and valueB,查询结果会包含两个边界值,但是某些数据库可能不包含边界值,所以在使用之前要了解所用数据库。

SELECT * FROM TABLE where column_name BETWEEN A and B

SQL Alias

SQL Alias 可以为表或者列指定一个别名,这样书写起来会很方便,尤其是对于表名或者列名较长的情况来说。

//表的别名
SELECT * from TABLE as tb_a where tb_a.id = ‘1‘
//列的别名
SELECT Username as name from TABLE

SQL Join

inner join

inner join 在表中存在至少一个匹配时,返回某一行。

//user通过join获取userinfo匹配
select user.username as name,userinfo.u_school as school
from user
inner join userinfo
on user.u_id = userinfo.u_id

left join

返回左边指定的行,不管右边的表有没有内容。

//user通过left join获取userinfo匹配
select user.username as name,userinfo.u_school as school
from user
left join userinfo
on user.u_id = userinfo.u_id

right join

返回右边指定的行,不管左边的表有没有内容。不再举例。

full join

只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

SQL UNION

SQL UNION将两个查询的结果合并,但是这两个查询的结果必须拥有相同数量的列。列也必须拥有相似的数据类型。

SELECT column_name(s) FROM table_name1
UNION //一般不允许重复,如果要求显示重复值,可以用UNION ALL
SELECT column_name(s) FROM table_name2

SQL SELECT INTO

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

SELECT *
INTO Persons_backup
FROM Persons

在mysql中不支持该用法,所以可以这样写:

CREATE TABLE `user_backup` (SELECT `user`.username FROM `user`)

SQL ALTER TABLE

SQL ALTER TABLE 用于在已有的表中修改数据。

//在user表中新建user_moreinfo列
ALTER TABLE user
ADD user_moreinfo VARCHAR(20)
//在user表中删除user_moreinfo列
时间: 2024-08-24 22:42:09

SQL总结(一)的相关文章

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

SQL Server 2008的MSSQLSERVER 请求失败或服务未及时响应

我的是SQL server 2008R2, 以前可以正常的启动SQL server(SQLEXPRESS).SQL server(MSSQLSERVER),有几天没有打开了,就在昨天 开机之后就无法启动MSSQLSERVER了,提示的信息如下图: 快速解决办法如下: 第一步:打开事件查看器,查看windows日志,点击应用程序,查看windows错误日志 http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html 第二步

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

Spark SQL 之 Join 实现

原文地址:Spark SQL 之 Join 实现 Spark SQL 之 Join 实现 涂小刚 2017-07-19 217标签: spark , 数据库 Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的. SparkSQL总体流程介绍 在阐述Join实现之前,我们首先简单介绍SparkSQL

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

sql

use simulation; # 多条SQL语句必须以分号分隔 show DATABASES ; show TABLES ; show COLUMNS from customers; # SQL语句不区分大小写 SHOW COLUMNS FROM products; SHOW COLUMNS FROM vendors; SHOW COLUMNS FROM orders; SHOW COLUMNS FROM productnotes; SHOW COLUMNS FROM orderitems;

MyBatis学习(四)XML配置文件之SQL映射的XML文件

SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select> 这个语句被称作selectUser,接受一个int类型的参数,