精华内容
下载资源
问答
  • SQL语法基础

    千次阅读 多人点赞 2019-10-15 20:36:29
    @SQL语法基础 SQL语法基础 SQL 是用于访问和处理数据库的标准的计算机语言。 SQL 语句 需要在数据库上执行的大部分工作都由 SQL 语句完成。 tips: SQL 对大小写不敏感:SELECT 与 select 是相同的。 一些最...

    @SQL语法基础

    SQL语法基础

    SQL 是用于访问和处理数据库的标准的计算机语言。

    SQL 语句

    需要在数据库上执行的大部分工作都由 SQL 语句完成。

    tips:
    SQL 对大小写不敏感:SELECT 与 select 是相同的。

    一些最重要的 SQL 命令

    SELECT - 从数据库中提取数据
    UPDATE - 更新数据库中的数据
    DELETE - 从数据库中删除数据
    INSERT INTO - 向数据库中插入新数据
    CREATE DATABASE - 创建新数据库
    ALTER DATABASE - 修改数据库
    CREATE TABLE - 创建新表
    ALTER TABLE - 变更(改变)数据库表
    DROP TABLE - 删除表
    CREATE INDEX - 创建索引(搜索键)
    DROP INDEX - 删除索引

    SQL SELECT 语句

    SELECT 语句用于从数据库中选取数据。
    结果被存储在一个结果表中,称为结果集。

    SQL SELECT 语法

    SELECT column_name,column_name FROM table_name;

    SELECT * FROM table_name;

    SQL SELECT DISTINCT 语句

    在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

    DISTINCT 关键词用于返回唯一不同的值。

    SQL SELECT DISTINCT 语法

    SELECT DISTINCT column_name,column_name(列名)
    FROM table_name(表名);

    SQL WHERE 子句

    WHERE 子句用于过滤记录。

    SQL WHERE 语法

    SELECT column_name,column_name
    FROM table_name
    WHERE column_name operator value;

    where 子句的运算符
    where 子句中可使用运算符,例如:
    比较运算符:= > < >= ,<=, !=,<> 表示(不等于)
    逻辑运算符:AND, OR, NOT

    	Select * from emp where sal > 2000 and sal < 3000;
    

    查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。

    Select * from emp where sal > 2000 or comm > 500;
    

    查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。

    select * from emp where not sal > 1500;
    

    查询EMP表中 sal 小于等于 1500 的值。

    特殊条件

    1.空值判断: is null

    Select * from emp where comm is null;
    

    查询 emp 表中 comm 列中的空值。

    2.between and (在 之间的值)

    Select * from emp where sal between 1500 and 3000;
    

    查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

    注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

    3.In

    Select * from emp where sal in (5000,3000,1500);
    

    查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

    4.like

    Like模糊查询

    Select * from emp where ename like 'M%';
    

    查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

    • % 表示多个字值,_ 下划线表示一个字符;
    • M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
    • %M% : 表示查询包含M的所有内容。
    • %M_ : 表示查询以M在倒数第二位的所有内容。

    SQL AND & OR 运算符

    如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
    如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

    结合 AND & OR
    也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。

    SELECT * FROM EMP WHERE  sal > 2000 AND (name = 'CN' OR name = 'USA');
    

    SQL ORDER BY 关键字

    ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
    ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字。

    SQL ORDER BY 语法

    SELECT column_name,column_name
    FROM table_name
    ORDER BY column_name,column_name ASC|DESC;

    例如:

    SELECT * FROM Websites
    ORDER BY country,alexa;
    

    “Websites” 表中选取所有网站,并按照 “country” 和 “alexa” 列排序。

    tips:
    ORDER BY 多列的时候,先按照第一个column name排序,再按照第二个column name排序;

    SQL INSERT INTO 语句

    INSERT INTO 语句用于向表中插入新记录。

    SQL INSERT INTO 语法
    无需指定要插入数据的列名,只需提供被插入的值:

    INSERT INTO table_name
    VALUES (value1,value2,value3,…);

    需要指定列名及被插入的值:

    INSERT INTO table_name (column1,column2,column3,…) VALUES
    (value1,value2,value3,…);

    例如 向 “Websites” 表中插入一个新行:

    INSERT INTO Websites (name, url, alexa, country)
    VALUES ('百度','https://www.baidu.com/','4','CN');
    

    同时,也可以只插入指定的列,例如只在 “name”、“url” 和 “country” 列插入数据:

    INSERT INTO Websites (name, url, country)
    VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');
    

    tips:
    若没有指定要插入数据的列名的形式需要列出插入行的每一列数据。

    SQL UPDATE 语句

    UPDATE 语句用于更新表中已存在的记录。
    SQL UPDATE 语法

    UPDATE table_name
    SET column1=value1,column2=value2,…
    WHERE some_column=some_value;

    注意:
    WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

    把 “百度” 的 alexa 排名更新为 5000,country 改为 USA:

    UPDATE Websites 
    SET alexa='5000', country='USA' 
    WHERE name='百度';
    

    如果我们省略了 WHERE 子句,执行以上代码会将 Websites 表中所有数据的 alexa 改为 5000,country 改为 USA。

    SQL DELETE 语句

    DELETE 语句用于删除表中的行。

    SQL DELETE 语法

    DELETE FROM table_name
    WHERE some_column=some_value;

    注意:
    WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

    从 “Websites” 表中删除网站名为 “百度” 且国家为 CN 的网站 :

    DELETE FROM Websites
    WHERE name='百度' AND country='CN';
    

    删除所有数据
    您可以在不删除表的情况下,删除表中所有的行。
    这意味着表结构、属性、索引将保持不变。

    DELETE FROM table_name;

    DELETE * FROM table_name;

    展开全文
  • 【SQL】SQL语法

    万次阅读 2018-04-08 22:32:57
    1. 为什么会出现SQL语法树? 假设有一个SQL语句 select name,age,count(name) as count_name, count(id) as count_id from mytable where id = ? and name = ? 这是一条sql语句,如果你想运行这个语句(下面写...

    在这里插入图片描述

    1. 为什么会出现SQL语法树?

    假设有一个SQL语句

    select name,age,count(name) as count_name,
    count(id) as count_id from  mytable where id = ?  and name = ?
    

    这是一条sql语句,如果你想运行这个语句(下面写伪代码,具体实现肯定不是这样的但是这是人实现的思想)
    1.找到数据库表mytable这里要获取表名简单一个if判断
    2.假设里面有1000条数据,那么我们先获取1000条

    id name 	age  	sex  	birthday
    1	梁川川  	23  	男		2015-04-08
    2	梁川川1  23  	男		2015-04-08
    3	梁川川2  23  	男		2015-04-08
    。。。。。
    

    3.然后根据语句获取我们需要的列,根据name,age,count(name) as count_name,count(id) as count_id获得id name age,这里我们可能需要些很多if去判断

    id name 	age  	
    1	梁川川  	23  	
    2	梁川川1  23  	
    3	梁川川2  23  	
    。。。。。
    

    4.然后开始过滤 ,后面的就不说了

    对于这个问题,开始的设想比较简单,大致过程是:把Sql语句中不相同的关键字和函数名替换掉,如Oracle中的To_Date换成SqlServer的Convert,就可以在SqlServer上执行了.对一些简单的Sql语句这样确实可以,可是对复杂的应用来说,Sql语句可能多层嵌套,函数也有多层嵌套,如果只是简单的替换,代码中必然会有无数的if else,并且出错后的修改和调试几乎是不可能的。

    通过对Oracle和SqlServer两种数据库的Sql语法的研究比较,认为必须采用语法分析,把Sql语句解析为一棵语法树,然后再按照语法的转换规则把sql语句转换到SqlServer上可执行的语句。

    例如一个Select语句的结构如下
      
    这里写图片描述

    从这张结构图中可以看到,Sql语句可能出现非常复杂的组合结构,如果不使用语法树表示,很难实现不同数据库平台的转换。

    案例2

    一则简单的例子
    如果我们需要让计算机帮忙算一下 「1加2再乘以3」 的结果,该怎么表达呢?
    现在我们大多数的现代编程语言,都是使用「中缀表达式」的方式来编写运算,比如JavaScript:

    (1 + 2) * 3
    

    而FORTH语言则使用「后缀表达式」,这基本上与日语中的语序是一致的:

    1 2 + 3 *
    

    LISP语言使用的「前缀表达式」:

    ( * (+ 1 2) 3)
    

    我们再看一下这三种表达式的语法树:

    这里写图片描述

    可以看出,对于这三种简单的语言,它们只是在这个语法树上按不同的规则遍历而已。三者的代码看起来差别很大,但实际上所用的树结构是相同的。

    总结:

    1. 一条sql语句能否在不同的语言和数据库执行,首先都要生成语法树
    2. 语法树是运行的前提,(还记得数据结构中的二叉树吗)

    2.有了Sql语法树,我们可以做什么?

    看到这里你可能会问,知道语法是又有什么用呢?跟我日常编写代码貌似半毛钱关系都没有。其实语法树还是很有用的,想一下如果想做「语法高亮」、「关键字匹配」、「作用域判断」、以及「代码压缩」等等,都是最好把代码解构成语法树之后再去各种操作,当然仅仅解构还不够,还需要提供各种函数去遍历与修改语法树。

    展开全文
  • 零基础60分钟含SQL语法问答精彩
  • ABAP Open SQL 语法

    千次阅读 2019-01-02 15:30:16
    ABAP Open SQL 语法 如果要在ABAP中使用Open SQL 需要注意使用符合其规则的语法, SOL过程中的变量都需要使用@来转义 以下为普通SQL 与 Open SQL 之间的语法转换 普通SQL: SELECT MAX( MATNR ) INTO IT_...

    ABAP Open SQL 语法

    如果要在ABAP中使用Open SQL 需要注意使用符合其规则的语法,

    SOL过程中的变量都需要使用@来转义

    以下为普通SQL Open SQL 之间的语法转换

    普通SQL

    SELECT MAXMATNR INTO IT_TAB-MATNR
          
    FROM MARA
           
    WHERE MATNR LIKE LV_MATNR_01
            
    .

    Open SQL

     SELECT MAXMATNR )
          FROM MARA
           
    WHERE MATNR LIKE @LV_MATNR_01
            
    INTO @DATA(GV_MATNR)
            .

    展开全文
  • SAP Hana sql语法

    2019-12-24 17:33:48
    SAP Hana sql语法 感觉博主热心作品,如有得罪,尽请告知! https://www.cnblogs.com/renzhituteng/p/11013957.html

    SAP Hana sql语法

    感觉博主热心作品,如有得罪,尽请告知!

    https://www.cnblogs.com/renzhituteng/p/11013957.html

    展开全文
  • 使用Calcite做Sql语法解析

    千次阅读 2020-02-05 21:24:01
    点击箭头处“蓝色字”,关注我们哦!!Flink SQL中使用Calcite作为sql语法解析、校验、优化工具,本篇是实操篇,介绍一下calcite做sql语法解析使用方式。sql经过ca...
  • SQL语法学习笔记

    万次阅读 多人点赞 2019-06-13 19:25:52
    SQL语句: 小提示: 你在数据库上执行的大部分工作都是由SQL语句完成的 SQL对大小写不敏感(SELECT与select是等价的) 某些数据库系统要求在每条 SQL 语句的末端使用分号。 分号是在数据库系统中分隔每条 SQL 语句的...
  • 讲解sql语法入门,sql基础语法,php连接mysql实战操作
  • oracle SQL语法大全

    千次下载 热门讨论 2007-12-07 00:25:45
    oracle SQL语法大全
  • SQL语法——left join on 多条件

    万次阅读 多人点赞 2018-03-30 22:22:30
    left join on +多条件与where区别 重点 先匹配,再筛选where条件。 本文将通过几个例子说明两者的差别。 表1:product id amount 1 100 2 200 3 300 4 400 ......
  • 验证SQL语法是否正确

    千次阅读 2018-05-02 14:28:22
    昨天又有一个新的需求:验证文本框输入的SQL语法是否正确。于是就开始百度,其实也挺简单的。首先需要知道“SET PARSEONLY { ON | OFF }”。 当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。 当...
  • 【T-SQL】〇、 T-SQL语法说明

    千次阅读 2020-10-11 11:24:28
    〇、 T-SQL语法说明 文章目录〇、 T-SQL语法说明 不区分大小写,一般系统保留字大写,用户自定义的名称可用小写。 “[ ]”中的内容表示可以省略,省略时系统取默认值。 “{ } [,…,n]”表示花括号中的内容可以...
  • PostgreSQL中使用的SQL语法

    千次阅读 2018-10-19 17:02:21
    本文将介绍PostgreSQL中使用的几个SQL语法。 标识符和关键词 SQL标识符和关键词必须以一个字母(a-z,也可以是带变音符的字母和非拉丁字母)或一个下划线(_)开始。后续字符可以是字母、下划线(_)、数字(0-9)...
  • PetaPoco Sql 语法及使用

    千次阅读 2015-03-19 18:18:38
    PetaPoco Sql 语法及使用
  • sql常见语法SQL Server Management Studio, errors can be tracked down easily, using the built in 错误列表”窗格,可以轻松跟踪Error List pane. This pane can be activated in the SQL Server Management ...
  • SQL语法(五) 多表联合查询

    万次阅读 多人点赞 2018-09-09 09:00:01
    当需要获取的数据分布在多张中,考虑使用联合查询,本章将学习两种查询方式(sql92/sql99) 范例 1.笛卡儿积 将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。结果的数量为所有表的数量的乘积。 --...
  • Elasticsearch7.x SQL语法查询支持

    千次阅读 2021-01-03 16:24:32
    Elasticsearch7.x SQL语法查询支持 1.前言 原生的DSL语法毕竟有熟悉成本, 而且还容易写错 ? 其实 Elasticsearch 也是支持SQL查询,基本的SQL都支持,同时还具有SQL转DSL语句的功能。 官方Api文档:传送门 1.1.初始...
  • 开源了一个中间件项目,用于 ORACLE -> MYSQL 的SQL 语法转换,以及数据库访问。就是说你可以拿一种你熟悉的SQL去访问另一种你不熟悉的数据库,目前支持 ORACLE -> MYSQL 。 http://github.com/oun111/zas/
  • SQL Server常用函数 & SQL语法函数

    万次阅读 2020-08-07 09:29:10
    关系型数据库: SQL语法&函数(建议):https://www.w3school.com.cn/sql/index.asp 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,160
精华内容 25,664
关键字:

SQL语法