首页 > 数据库 >SQL高级语法学习总结(一)

SQL高级语法学习总结(一)

时间:2023-05-24 20:07:02浏览次数:50  
标签:总结 table2 JOIN name column 语法 SQL SELECT


基础语法呢,就是简单的对行列进行增删改。SQL基础语法学习总结,高级用法无非是条件更多,能实现的需求更多,其中涉及到非常多的关键字,本篇博客就进行一下总结。本文所有用法均在mysql环境下测试通过。其他数据库可能某些关键字会有不同。

SQL SELECT LIMIT 子句

 

SELECT LIMIT 子句用于规定要返回的记录的数目。

SELECT LIMIT 子句对于拥有数千上万条记录的大型表来说,是非常有用的。

SELECT column_name(s)
FROM table_name
LIMIT number;

SQL LIKE 语法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL 通配符

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符

描述

%

替代 0 个或多个字符

_

替代一个字符

通配符可用于替代字符串中的任何其他字符。

SELECT * FROM table_name
WHERE column_name LIKE 'pattern%';

查询出以pattern开头的数据。

SELECT * FROM table_name
WHERE column_name LIKE 'pattern_';

查询出以pattern开头,任意一个字符结尾的数据。

SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

IN 操作符允许您在 WHERE 子句中规定多个值。

SQL BETWEEN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

SQL 别名

列的 SQL 别名语法

SELECT column_name AS alias_name
FROM table_name;

表的 SQL 别名语法

SELECT column_name(s)
FROM table_name AS alias_name;

通过使用 SQL,可以为表名称或列名称指定别名。

基本上,创建别名是为了让列名称的可读性更强。

SQL JOIN

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。

不同的 SQL JOIN

四种不同的 SQL JOIN 类型:

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

SQL INNER JOIN 语法

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

INNER JOIN 关键字在表中存在至少一个匹配时返回行。注意:INNER JOIN 与 JOIN 是相同的哦。便于理解,逻辑关系如下图,简单的来说就是返回相交的部分。

SQL高级语法学习总结(一)_SQL

SQL LEFT JOIN 语法

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。便于理解,逻辑关系如下图,简单来说就是返回整个左表,右表没有的话会返回NULL。

SQL高级语法学习总结(一)_操作符_02

SQL RIGHT JOIN 语法

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。便于理解,逻辑关系如下图,刚好和LEFT JOIN 是相反的。

SQL高级语法学习总结(一)_数据_03

SQL FULL OUTER JOIN 语法

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。便于理解,逻辑关系如下,简单来说就是返回两个表的所有数据。

SQL高级语法学习总结(一)_SQL_04

SQL UNION 操作符

SQL UNION 语法

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

SQL INSERT INTO SELECT 语法

我们可以从一个表中复制所有的列插入到另一个已存在的表中:

INSERT INTO table2
SELECT * FROM table1;

或者我们可以只复制希望的列插入到另一个已存在的表中:

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

通过 SQL,可以从一个表复制信息到另一个表。

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。


标签:总结,table2,JOIN,name,column,语法,SQL,SELECT
From: https://blog.51cto.com/u_14480168/6342704

相关文章

  • mysqld_multi实现单机主从复制
    文档课题:mysqld_multi实现单机主从复制.数据库:mysql5.7.18系统:rhel7.3安装包:mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz1、理论知识mysqld_multi用于在一台服务器上管理多个mysqld进程,这些进程使用不同的socket文件并监听不同端口.mysqld_multi可以批量启动、关闭、或报告m......
  • MySQL数据基础知识整理—5
        今天是MySQL数据库基础知识整理的最后一章,本次我们要整理的是隔离性和MVCC多版本并发控制技术。隔离性    在我们进行多事务的处理时,难免会出现多个事务由于不当的操作导致事务发生不可逆转的错误结果。因此,MySQLS数据库为了防止这样的事情发生,使多个并发事物之......
  • Cause: java.sql.SQLException: Invalid value for getInt()
    Cause:java.sql.SQLException:InvalidvalueforgetInt()-'锛?';SQL[];InvalidvalueforgetInt()-'锛';nestedexceptionisjava.sql.SQLException:InvalidvalueforgetInt()-'锛?' 在对错误进行排查时,有以下原因可能导致的原因:出现此问题的原因是因为MyB......
  • 软件工程 期末个人总结
    (1)本学期对第一周提出的计划完成情况。1.基本达到了老师的要求,能够完成老师交给的一个mis系统,完成最基本的增删改查,并把所有的功能都进行流程化。(学生选课管理系统)2.能够实现安卓的开发实现手机端的一个地铁查询系统。(双人团队项目)3.在团队项目中担任队长督促队员完成团队项目,并......
  • 多种数据库注入复线-墨者学院Sql Server数据库手工注入
    SQL手工注入漏洞测试(SqlServer数据库)1.测试注入点点击公告报错,存在数字型的sql注入开注2.orderby查询列数2正常回显,3报错,但是4又正常,5以上报错3.联合查询判断占位但是报错union用于合并两个或多个select语句的结果集,并去除表中任何重复行且union内部的s......
  • 软件工程课程个人总结
    1.关于第一周的计划对于增删改查相对来说比较熟悉,对于测试不那么慌张,从我自身感受来说,无论是上学期的期末还是这学期的开学考试,我整个人都是一个比较慌的状态,就像是高中考数学,明明会做但是因为自己的紧张到处出错,看着一点一点流逝的时间只能更加紧张,但是现在感觉没那么慌张了,或许......
  • 【JavaScript用法】JavaScript(JS)的基本语法(JS数据类型,JS变量,JS运算符,JS流程控制语句
    JavaScript(JS)的基本语法目录JavaScript(JS)的基本语法一.与html结合方式二.注释三.数据类型:四.变量五.运算符(和Java有点类似)六.流程控制语句(和JAVA 类似):七.JS特殊语法:一.与html结合方式       1.内部JS:定义<script>,标签体内容就是js代码(可以理解为和html......
  • 团队问题总结
    经过本团队成员讨论本次团队主要的三个问题第一个:项目需求分析不到位第二个:团队会议效率过低第三个:团队分工出现重复现象本周开展了团队会议,重点讨论团队任务收尾工作,同时总结出现的问题。对于本次团队收尾工作,较为顺利,主要第一阶段已完成项目的整体,新的内容就是在原有的基......
  • 同步mysql数据库binlog用户所需要权限
    同步mysqlbinlog用户读写权限报错提示doesnothaveREPLICATION_CLENTprivilege 使用场景:常用于阿里云flink同步数据库binlog使用解决方案:fiink cdc 的表用户,需要有Replicationclient,Replicationslave权限。授权命令如下:grantReplicationclienton*.* toods_base@......
  • SQL Lesson 3: 条件查询(constraints) (Pt. 2)
    http://xuesql.cn/lesson/select_queries_with_constraints_pt_2--请输入sql--SELECT*FROMmovies;--select*frommovieswheretitlelike"ToyStory%";--like用法--select*frommovieswhereDirectornotlike"JohnLasseter";--notlike--s......