首页 > 数据库 >SQL基础知识

SQL基础知识

时间:2023-08-17 17:37:10浏览次数:51  
标签:语句 数据 基础知识 语法 名称 SQL WHERE SELECT

  (一)DDL数据定义语言 作用:用于检索或修改数据 命令:

  • SELECT:用于检索数据
  • INSERT:用于添加数据到数据库
  • UPDATE:用于修改数据库数据
  • DELETE:用于删除数据库数据
(二)DML数据操作语言 作用:用于定义数据结构,比如:创建、修改或删除数据库对象,包括:用于创建用户和重建数据库对象 命令:
  • CREATE TABLE:创建表
  • ALTER TABLE:修改表
  • DROP TABLE:删除表
  • CREATE INDEX
  • DROP INDEX
(三)DCL数据控制语言 作用:用于定义用户权限 命令:
  • ALTER PASSWORD
  • GRANT
  • REVOKE
  • CREATE SYNONYM
语句介绍 (一)SELECT 作用: SELECT语句用于从数据库中选取数据 语法:
  1. SELECT 列名称 FROM 表名称
  2. SELECT * FROM 表名称
补充: 结果集:SELECT语句将取出的数据存储在一个结果表,也称结果集result set (二)DISTINCT 作用: DISTINCT用于不重复的显示查询结果集,即重复数据只显示一次 语法: SELECT DISTINCT 列名称 FROM 表名称 (三)WHERE语句 作用: WHERE能有条件的从表中选取数据 语法: SELECT 列名称 FROM 表名称 WHERE 列运算符值 补充: 列运算中的常见运算符:
运算符 含义
= 等于(注意只有一个等号)
!= 或 <> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 模糊搜索
AND 并且
OR 或者
NOT 取反
引号的使用:
  • 数值类型无需加单引号
  • 字符类型要加单引号
  • 别名使用双引号
  • 双引号还被用来将文本放入日期格式
(四)ORDER BY语句 作用: ORDER BY能给查询的结果集排序 语法:
  1. ORDER BY DESC
  2. ORDER BY ASC
补充:
  1. ORDER BY默认是升序排列(从小到大)
  2. DESC代表降序排列
  3. ASC代表升序排列
  4. Oracle数据库中,null默认为最大值
  5. 指定NULLS FIRST,则表示null值的记录将排在最前(不管是asc,还是desc)
  6. 指定NULLS LAST,则表示null值的记录将排在最后(不管是asc,还是desc)
(五)INSERT语句 作用: INSERT INTO用于向表中插入数据 语法:
  1. INSERT INTO 表名称 VALUES (值1, 值2…)
  2. INSERT INTO 表名称 (列1, 列2…) VALUES (值1, 值2…)
(六)UPDATE语句 作用: UPDATE用于更新表中记录 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 (七)DELETE语句 作用: DELETE用于删除表中的行 语法: DELETE FROM 表名称 WHERE 列名称 = 某值 进阶语句介绍 (一)SELECT TOP语句 作用: SELECT TOP子句用于规定要返回的记录的数目,该子句对大型表来说非常有用 语法: SELECT 列名称 FROM 表名称 WHERE ROWNUM <= number (二)LIKE操作符 作用: LIKE操作符用于在WHERE子句中搜索列中指定模式,加上通配符可以实现很多灵活的条件查询 语法: SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 某值 补充: 通配符:
  • %代表一个或多个字符
  • _代表一个字符
(三)IN操作符 作用: IN操作符允许你在WHERE子句中规定多个值 语法: SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1, 值2…) (四)BETWEEN…AND操作符 作用: BETWEEN...AND选取介于两个值之间的数据范围内的值,这些值可以是数据、文本或日期 语法: SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2 补充: 不同数据库对该字段的处理稍有不同,在Oracle数据库中,查找到的数据包含AND字符前后的两个边界数据 (五)别名 作用: 为表名称或列名称指定别名,创建别名主要是为了更强的可读性 语法: SELECT 列名称 别名 FROM 表名称 (六)SQL连接 作用: SQL JOIN用于把两个或多个表的行结合起来 语法: Join的四种类型:
  • JOIN,如果表中至少有一个匹配,则返回行
  • LEFT JOIN,即使右表没有匹配,也从左表返回所有行
  • RIGHT JOIN,即使左表没有匹配,也从右表返回所有行
  • FULL JOIN,只要其中一张表存在匹配,就返回行
(七)UNION操作符 作用: SQL UNION操作符合并两个或多个SELECT语句的结果,UNION内部的SELECT语句必须拥有相同数量的列,列必须拥有相似的数据类型 同时,每个SELECT语句的列的顺序必须相同 语法: SELECT 列名称 FROM 表名称 UNION SELECT 列名称 FROM 表名称 补充: UNION默认选取不同的值,如果需要允许重复值,使用UNION ALL SQL函数 (一)分组函数
常用函数 作用
AVG 求平均值
COUNT 返回查询的行数
MAX 返回查询列的最大值
MIN 返回查询列的最小值
SUM 返回查询列的总和
分组函数常结合GROUP BY使用 (二)转换函数
常用函数 作用
TO_DATE 将字符串转换为日期
TO_CHAR 转换日期或数值为字符串
TO_NUMBER 转换字符串为数字
举例:
1 2 3 4 -- 获取系统当前时间 select sysdate from dual -- 日期格式化 select sysdate ATIME, to_char(sysdate, 'YYYYMMDDHH24MISS') STIME from dual
 

标签:语句,数据,基础知识,语法,名称,SQL,WHERE,SELECT
From: https://www.cnblogs.com/wangprince2017/p/17638244.html

相关文章

  • mac m1 docker安装mysql
    1、拉取镜像dockerpullmysql/mysql-server2、启动服务dockerrun--namemysql-docker--restartalways--privileged=true\-p3306:3306\-eMYSQL_ROOT_PASSWORD="root"\-eTZ="Asia/Shanghai"\-d mysql/mysql-server说明:-d:后台运行容器-p:指定容器暴露......
  • 教你使用常用的逻辑公式和恒等式等价改写SQL
    今天同事给我一条2秒的SQL看看能不能优化。原始SQL:SELECTpk_deptFROMaaaaWHERE1=1AND((pk_group='0001A110000000000JQ6'ANDpk_orgIN('0001A110000000001M09')))AND(PK_DEPTIN(SELECTt1.ORGIDFROMxxxxxt1......
  • mysql数据库DeadLock处理分析
    1.问题复现数据库新建一个test表,里面包含id,和name字段然后分别开两个窗口,分别开启事务,然后updatename字段,不提交,然后查看一下三个表,看是否出现锁表情况innodb_trx        ##当前运行的所有事务innodb_locks     ##当前出现的锁innodb_lock_waits......
  • python3 安装clickhouse_sqlalchemy(greenlet) 失败
    环境信息:centos7操作系统,python3.8执行pip3installclickhouse_sqlalchemy或者pip3installgreenlet报以下报错:Command"/opt/python3.6.10-customized/bin/python3.6-u-c"importsetuptools,tokenize;file='/tmp/pip-install-wbyi43ip/greenlet/setup.py';f=g......
  • MYSQL与Hive配置的相关步骤
    1、配置元数据到MYSQL1、新建Hive元数据库登录Mysql:mysql-uroot-p//不加分号创建Hive元数据库:createdatabasemetastore;退出mysql:2、将mysql的jdbc驱动拷贝到hive的lib目录下3、在hive的conf目录下新建hive-site.xml文件vihive-site.xml进入到文件编写模......
  • Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间
    场景SpringBoot+Mybatis+定时任务实现大数据量数据分表记录和查询:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126225846通过以上分表实现的同结构不同表名之间的表,如何将一个表中的数据复制到另一个表中,且将日期字段进行同样的新增,时间字段不变。注:博客:ht......
  • 在SQL Server中创建一个新用户并授予他们查询对象的权限
    在SQLServer中创建一个新用户并授予他们查询对象的权限,您可以按照以下步骤操作:使用具有创建新用户和授予权限所需权限的特权帐户连接到SQLServer实例。使用CREATELOGIN语句为用户创建新的登录。以下是一个示例:CREATELOGIN[new_user]WITHPASSWORD='password';将new......
  • PostgreSQL-log函数的用法
    最近在看关于PostgreSQL内部原理的一些东西,并借助翻译软件,做一些翻译,整理成文档,以便自己能够快速理解的同时,加以记录。在单表查询的开销估算中,关于索引扫描的启动开销,有一个等式,使用到了函数ceil和log2。等式是这样写的:'start-upcost'={ceil(log2(10000))+(1+1)*50}*0.0025=......
  • IDEA社区版+SpringBoot+MyBatisPLus+MySQL实现数据库的保存、查询、修改操作
    一、概述使用IDEA社区+SpringBoot+MyBatisPlus+MySQL实现数据的保存修改与查询。主要记录一下踩坑过程。注意事项:1.社区版IDEA并不能直接创建SpringBoot工程,所以我采用的方式是在Spring官网上,让其帮助我创建一个,创建好后,直接下载。//参考案例https://blog.csd......
  • 使用NineData实现亿级别MySQL大表迁移
    MySQL作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和DBA对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高......