首页 > 数据库 >SQL 基础

SQL 基础

时间:2023-11-14 20:23:21浏览次数:30  
标签:语句 数据库 基础 指定 查询 关键字 SQL

SQL 介绍

SQL(Structured Query Language)叫作结构化查询语言,专门用于管理关系型数据库的。用于对数据库中的数据进行查询、更新等操作。

SQL这个语言是1970年由IBM开发的,后来慢慢的SQL就成为了关系型数据库管理的事实标准,被几乎所有的关系数据库系统支持。

后来搞了一个SQL国际化标准,由国际标准化组织(ISO)和美国国家标准学会(ANSI)共同维护。

虽然 SQL 有一个基本的标准集,这个标准被大多数数据库系统遵循,但不同的数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server)也会添加自己独特的扩展或者对某些功能有不同的实现方式。这种特定于数据库系统的扩展或变体通常被称为“SQL 方言”。

例如:MySQL中查看数据库的SQL语句:show databases 就是MySQL的SQL方言,因为它不是 SQL 标准的一部分,因此在其他数据库系统中可能不适用或有不同的命令实现相同的功能。

SQL 分类

标准的SQL 语句可以分为DDL、DML、DQL、DCL、TCL这几类。

1、DDL

Data Defination Language,数据定义语言。这类 SQL 语句用于定义或修改数据库结构。

主要的 DDL 操作包括 CREATE(创建新表或数据库)、ALTER(修改现有数据库对象的结构)和 DROP(删除表、视图或其他数据库对象)。

对DDL的理解:

在数据库术语中,DDL 不仅涉及到从无到有的创建(如 CREATE)和从有到无的删除(如 DROP),还包括修改现有数据库对象结构的操作。ALTER 命令正是用来修改数据库中已经存在的对象(例如表、索引、列等)的结构。

这里的“定义”或“定义语言”并不限于创建新的数据库对象,而是涉及到对数据库结构的任何形式的定义或重新定义。因此使用ALTRT修改表结构,实际上也是在重新定义这个表的结构。这就是为什么 ALTER 也被归类为 DDL 的原因。

2、DML

Data Manipulation Language 数据操纵语言,用于数据的增加、删除、更新等操作。包括 INSERT(向表中插入新数据)、UPDATE(修改表中的数据)和 DELETE(从表中删除数据)。

3、DQL

Data Query Language 数据查询语言,DQL 主要是指 SELECT 语句,用于从数据库中查询数据。它允许用户指定特定的数据检索要求。

4、DCL

Data Control Language 数据控制语言。用于控制对数据的访问。主要的 DCL 操作包括 GRANT(授予用户访问和操作数据库的权限)和 REVOKE(撤销用户的数据库权限)。

5、TCL

Transaction Control Language 事务控制语言。用于管理数据库中的事务,保证数据的完整性。这包括 COMMIT(提交当前事务中的所有更改)、ROLLBACK(撤销当前事务中的更改)和 SAVEPOINT(设置事务中的回滚点)。

SQL 语句

SQL语句其实就是由于若干个关键字,每个关键字与相应的参数一起构成子句,进而形成完整的 SQL 语句。

例如:

select * from Students where name="tom"

select 关键字用于指定查询信息,* 这个参数表示所有信息

from 关键字用于指定需要从哪张表查数据,Students参数就是表名

where 关键字用于指定查询的条件,name="tom"参数就是查询条件

SQL 语句特点

关键字不分区大小写
每条完整的 SQL 语句以 分号(;)结尾
SQL语句中所有的空格都会被忽略
SQL语句的注释使用--(两个连字符),-- 之后的文本就是注释

DQL 语句

select 语句

语法格式:

SELECT 需要查询的列名字  FROM  表名称  WHRER  查询条件

说明:
如果需要查询所有的列,SELECT的参数指定为 * ,如果查询的列名有多个,使用逗号隔开
如果没有使用where指定查询条件,默认就是查询表中所有数据的信息

查询结果排序
默认情况下,使用select查询出来的结果是按照它在表中出现的顺序显示,如果需要将查询出来的数据进行排序,可以使用 ORDER BY 关键字。 ORDER BY 指定的参数就是排序的依据。

例如:

SELECT Name FROM Employees ORDER BY Salary;

ORDER BY特点:
1、ORDER BY关键字只能位于一条SQL语句的最后面,它的后面不能在有SQL关键字
2、使用 ORDER BY 指定的列名来进行排序时,即使这个列在最终的查询结果中没有显示出来也可以
3、如果指定多个列名进行排序时,要用逗号进行隔开
4、ORDER BY的默认排序规则事升序(Ascending即ASC),如果想要以降序(Descending即DESC)排序,需要在 ORDER BY 子句后明确指定 DESC 关键字

指定过滤条件
如果指向查询符合特定条件的行,就需要使用WHRER关键字来指定过滤条件。

where支持很多操作符号,最常用的就是 = 号了,还有其它一些操作符可以使用。

单个值检查:

=   >    <>   >=   IS NULL

IS NULL  # 判断是否为NULL值

# <> 表示的是不等于

多值检查:

BETWEEN:在指定的两个值之间

where说明:
1、whrer 指定的参数就是进行过滤的条件,列名 操作符 值 , 如果值是字符串的话需要用引号括起来,数值不用加引号。

2、如果过滤条件有多个,可以用OR或者AND关键字来进行连接,AND的话输出的是条件都满足的行会输出,OR的话是满足其一即可。

3、还有一个类西域OR的关键字IN,用于指定一个范围检查某列的值是否在这个范围内。

例如:

SELECT * FROM Students where id IN (1,2,3,4,5)

标签:语句,数据库,基础,指定,查询,关键字,SQL
From: https://www.cnblogs.com/heyongshen/p/17831630.html

相关文章

  • Mysql中如何解决You can't specify target table '表名' for update in FROM clause报
    Mysql中如何解决Youcan'tspecifytargettable'表名'forupdateinFROMclause报错为什么会出现这个错误呢?这是因为在MySQL使用时,在同一条SQL语句中,不允许先SELECT出同一个表的某些值,再对该表进行UPDATE操作。解决方式#WriteyourMySQLquerystatementbelowdeletef......
  • Java登陆第六天——SQL之约束
    约束约束用于确保数据库的数据满足特定的规则,多个约束可以作用于一个字段上。在mysql中,约束一般有:primarykey(主键)notnull(非空)unique(唯一)primarykey(主键)主键是唯一标识每一行的列(行也叫字段)。主键拥有以下特性:两种指定方式:创建表时指定:字段名字段类型pr......
  • css基础样式
    CSS简介CSS全称层叠样式表(CascadingStyleSheets)CSS也是一种标记语言,用于给HTML结构设置样式,例如文字大小、颜色元素宽高效果等等核心思想:HTML搭建结构,CSS添加样式,实现结构与样式的分离CSS行内样式行内样式又称内联样式直接在标签内通过style属性设置样式......
  • MYSQL 事务的底层原理
    事务的底层原理在事务的实现机制上,MySQL采用的是WAL:Write-aheadlogging,预写式日志,机制来实现的。在使用WAL的系统中,所有的修改都先被写入到日志中,然后再被应用到系统中。通常包含redo和undo两部分信息。为什么需要使用WAL,然后包含redo和undo信息呢?举个例子,如果一......
  • Linux基础43 nginx多server优先级, nginx禁止IP访问, nginx的alias, nginx的try_file
    Nginx常见问题一、nginx多server优先级在开始处理一个http请求时,nginx会去除header头中的Host变量,与nginx.conf中的每个server_name进行匹配,以此决定到底由哪一个server来处理这个请求,但nginx如果配置多个相同的server_name,会导致server_name出现优先级访问冲突。1.准备多个......
  • 基础网络知识2.0和基础网络工具
    1.1osi七层模型在前面介绍http的博客里已经初步提到了osi七层模型,今天来进一步说明一下。ois模型是一个标准化模型,常用来分析和设计网络体系结构,虽然实际使用的偏向于TCP/IP模型,但osi七层模型更有利于我们理解网络结构,自顶向下,OSI七层模型分别是应用层,表示层会话层传输层网......
  • 视觉VO(10-2-1)优化- 重投影误差 数学基础 李群李代数
    自己的手工推导https://www.cnblogs.com/gooutlook/p/16412222.htmlB站教程https://www.bilibili.com/video/BV1LT411V7zv/?spm_id_from=333.788&vd_source=f88ed35500cb30c7be9bbe418a5998ca                    ......
  • Windows下如何快速移动MySQL/MariaDB数据库文件
    近期遇到一个要迁移数据库的问题,用户说不希望数据库文件存在于C盘。查了一下资料,这里做个总结。这个方法适用于MySQL和MariaDB。 步骤如下:1、停止数据库服务2、将数据库移动到需要迁移的路径3、修改安装路径data目录下的my.ini文件4、将 datadir=xxx改成需要迁移的路径5......
  • SQL查询是否存在的优化
    sql查询一般都喜欢用 SELECTcount(*)会查询很多数据。建议换成下面这种:SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1只查询1条数据,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了。 ......
  • mysql5.7安装插件udp(lib_mysqludf_sys)
    项目应用中需要用mysql执行一下命令行.几经搜索可以安装lib_mysqludf_sys插件可以实现本地window环境安装(mysql8.0,64位,使用lib_mysqludf_sys.dll文件)--查看环境中插件目录showvariableslike'%plugin%';--plugin_dir C:/mysql/lib/plugin/--将lib_mysqludf_sys......