首页 > 数据库 >SQL - 语法

SQL - 语法

时间:2023-03-31 16:13:15浏览次数:51  
标签:语句 数据库 语法 SQL 排序 数据 SELECT

一、概念

1. 语法

  • 语法结构:

  • 要点:

    • 语句不区分大小写;

    • 多条语句以“;”分割;

    • 处理SQL语句时,所有空格都被忽略

2. 分类

  • 数据操纵语言DML

  • 数据定义语言DDL

  • 事务控制语言TCL

  • 数据控制语言DCL

 


二、数据操纵语言DML

  • 用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句;
  • 主要功能是读写数据库实现增删改查(CRUD);
  • 核心指令是 INSERT, UPDATE, DELETE, SELECT

1. 增删改查

  • 插入:

    • INSERT INTO

  • 更新:

    • UPDATE
  • 删除:

    • DELETE
    • TRUNCATE TABLE 清空表,删除所有行
  • 查询:

    • SELECT 
    • DISTINCT 返回唯一不同的值,作用于所有的列
    • LIMIT ASC/DESC 限制返回行数(升序/降序),(起始行,返回行数)、

 

2. 排序

  • order by

    • 对结果集按照一个列或多个列排序,默认升序

    • 对多列排序时,先排序的列放在前面,并且不同的列可以有不同的排序规则

 

3. 分组 

  • group by

    • 将记录分组到汇总行中,为每个组返回一个记录,可以按一列或多列进行分组

4. 子查询

5. 连接

6. 组合

7. 函数

 

 


 

 

三、数据定义语言DDL

  • 是集中负责数据结构定义与数据库对象定义的语言

  • 主要功能是定义数据库对象
  • 核心指令:CREATE, ALTER, DROP

1. 数据库

2. 数据表

3. 视图

  • 定义:是基于SQL语句的结果集的可视化表,是虚拟的,本身不包含数据,不可对其进行索引操作

  • 作用:简化复杂的SQL操作;只使用实际表的一部分数据;只提供访问视图来保证数据安全;更改数据格式和表示

4. 索引

  • 定义:是一种用于快速查询和检索数据的数据结构,相当于目录

  • 优点:加快数据的检索速度,减少检索数据量;创建唯一索引可以保证表中每一行数据的唯一性

  • 缺点:创建和维护需要耗费很多时间;需要物理文件存储,耗费空间

5. 约束

 

 


 

四、事务控制语言TCL

  • 用于管理数据库中的事务,管理由DML语句所作的更改

  • 核心指令:COMMIT, ROLLBACK

1. 事务处理

不可回退SELECT,CREATE,DROP语句

 


 

五、数据控制语言DCL

  • 是一种可对数据访问权进行控制的指令,控制指定用户账户对数据表、查看表等数据库对象的控制权

  • 核心指令:GRANT, REVOKE

  • 可利用DCL控制的权限有:CONNECT, SELECT, INSERT, UPDATE, DELETE, EXECUTE. USAGE, REFERENCES

1. 权限控制

  • GRANT 授予权限
  • REVOKE 撤销权限

2. 存储过程

3. 游标

4. 触发器

 

SQL语法基础知识总结 | JavaGuide(Java面试+学习指南)

 

标签:语句,数据库,语法,SQL,排序,数据,SELECT
From: https://www.cnblogs.com/yy528/p/17276563.html

相关文章

  • 前端React框架和jsx语法的编码规范
    基本规则(BasicRules)每个文件只包含一个React组件然而,在一个文件里包含多个没有state或纯组件是允许的。eslint:react/no-multi-comp.经常用JSX语法。不要用React.createElement,除非你从一个非JSX文件中初始化app。ClassvsReact.createClassvsstateless......
  • 12 SQL语句的补充----复制表数据
    复制数据表1、复制数据1.1创建一个字段和源表不同的虚拟表 createtemporarytablet_yy( idint(16), namevarchar(25), sexvarchar(25) );源表与目标字段不一致,复制数据需要指定字段insertintot_yy(id,name,sex)selectid,sname,sexfromt_student;1.2创建一......
  • vue3 - 在单独的项目制作自定义组件插件,支持vite【前提不要使用webpack专属语法】
    1.背景与vue2组件不一样,没有那么随意,如果想要支持vite,那么不要使用webpack专属语法,如defide和 require等2.解决在 package.json文件属性  main配置为插件入口文件位置,至于是js还是ts随意 目录  简单做了个组件  入口文件内容如下importComponentf......
  • java.sql.SQLException: sql injection violation, multi-statement not allow?已解决
    今天在使用mybatis-oracle时有需求需要同时更新多个字段,在跑完接口后我发现有如下异常sqlinjectionviolation,multi-statementnotallow原因是没有配置allowMultiQueries=truespringboot项目直接在配置文件写上如下配置即可还有用config类来解决的在配置类中添加如下两......
  • SQL Server – 执行计划和各种 join 方式 (Execution plan & Join Pattern)
    What,When,Why?什么是ExecutionPlan?Executionplan里头包含了query执行时的各做information,比如IO速度,查找了多少rows等等为什么要看ExecutionPlan?当query慢的时候,可以通过分析executionplan,知道它为什么慢,然后做优化.怎样优化?优化的方法有......
  • Mysql之SQL语句基础1
    一、基本概念——后续的内容将会记录作者在计科学习内容DB(数据库):存储数据的仓库,数据是有组织进行存储DBMS(数据库管理系统):操纵和管理数据库的大型软件SQL:操纵关系数据库的编程语言,是一套标准有Mysql,Oracle,SQLSever,PostgreSQlRDBMS(关系型......
  • mysql Error:index column size too large. the maximum column size is 767 bytes
    问题现象mysql在执行脚本create创建表时,提示以下错误:indexcolumnsizetoolarge.themaximumcolumnsizeis767bytes异常原因INNODB引擎,UTF-8,主键字符串默认最大767,需要修改解决方案对数据库进行设置setglobalinnodb_large_prefix=ON参考博客......
  • SQL SERVER - 如何检测游标cursor是否打开?
     IFCURSOR_STATUS('global','mycursor')>=0BEGINPRINT'Cursorexistsandisopen';ENDELSEBEGINPRINT'Cursordoesnotexistorisnotopen';END;    REF:https://stacktuts.com/how-to-check-if-cursor-......
  • php站点导入大mysql文件(linux系统)
    问题描述:站点数据多,mysql导出后大于1G,使用phpmyadmin,导入一半报错,白白浪费等待时间,使用navicat导入,执行时间过长提示错误解决思路:1.拆分mysql文件,分批次导入,亲测还是比较花费时间,小于100M可以尝试,大于100M不推荐2.推荐使用进入linux系统导入mysql,步骤如下:2.1:把导出的.sql大文......
  • mysql的查询--子查询,order by,group by,having
    一、1.多表查询 格式1: select字段列表 from表1join表2on表1.字段1=表2.字段1 where查询条件 格式2: select字段列表 from表1join表2on表1.字段1=表2.字段1 join表3on表2.字段2=表3.字段2 where查询条件 格式......