SQL学习记录01

什么是SQL?
Structured Query Language (结构化查询语言),与关系型数据库进行通信的标准语言。

什么是数据库?

“按照数据结构来组织、存储、和管理数据的仓库。”

一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合

SQL的种类有什么?

DDL:  Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表, 字段)

DML:Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改

DQL: Data Query Language 数据查询语言,用来查询数据库中表的记录

DCL: Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的 访问权限

TCL: Transaction Control Language 事务控制语言,是一个或一组SQL语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行。

DQL相关:

查询语句语法结构: SELECT 字段列表 FROM 表名列表 WHERE 条件列表GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段.

DQL 查询语句分类: 基本查询(不带任何条件)

    条件查询(WHERE)

    聚合函数(count、max、min、avg、sum)

分组查询(group by)

排序查询(order by)

分页查询(limit)

DML相关:

添加表数据语法: insert into 表名(列名1,..列名n) values(值1,...值n);

注意:

  • 列名和值要一一对应。
  • 如果表名后,不定义列名,则默认给所有列添加值,如果第一列是主键列,需要在添加值时把第一列的值设置为null。
  • 除了数值类型,其他类型的值需要使用引号引起来。

删除表数据语法: delete from 表名 where 条件

注意:

  • 如果不加条件,则删除表中所有记录。
  • 如果要删除所有记录
  • delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
  • truncate table 表名; -- 推荐使用,效率更高。先删除表,然后再创建一张一样的表。

修改表数据语法:

update 表名 set 列名1 = 值1, 列名2 = 值2,... where 条件;

注意

  • 如果不加任何条件,则会将表中所有记录全部修改

   

DDL 相关:

操作隐形提交,不能rollback。

数据库操作:查询所有数据库:show databases; 创建数据库:create database 数据库名; 删除数据库:drop database 数据库名; 使用数据库:use 数据库名;

表操作:查询当前数据库所有表:show tables;

查看指定表结构:desc 表名; 查询指定表的建表语句:show create table 表名;

创建表结构:create table 表名( 字段1 字段1类型, 字段2 字段2类型 ... );

DCL相关:

授权:GRANT

查询用户: select * from mysql.user;

创建用户: CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码: ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;

删除用户: DROP USER '用户名'@'主机名' ;

注意事项: 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。

MySQL中的数据类型主要分类:数值类型、字符串类型、日期时间类型。

数值类型:有符号:SIGNED、无符号:UNSIGNED。默认是有符号。

浮点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度。

常用类型

int:整型

double:浮点型,例如 double(5,2)表示最多 5 位,其中必须有 2 位小数,即最大值为 999.99;

decimal:泛型型,在表单线方面使用该类型,因为不会出现精度缺失问题;

char:固定长度字符串类型;(当输入的字符不够长度时会补空格)

varchar:可变长度字符串类型;

text:字符串类型;

blob:字节类型;

date:日期类型,格式为:yyyy-MM-dd;

time:时间类型,格式为:hh:mm:ss

timestamp:时间戳类型;

char&varchar:

类型相似,但保存与检索方式不同。

最大长度、是否保留空格等方面也不同。

Binary&Varbinary

固定长度 (Binary) 的或可变长度 (Varbinary) 的 Binary 数据类型。

Binary  ( n )

固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。

Varbinary ( n )

n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 n 个字节。输入的数据长度可能为 0 字节。在 SQL-92 中 varbinary 的同义词为 binary varying。

如果在数据定义或变量声明语句中没有指定 n,默认长度为 1。如果没有用 CAST 函数指定 n,默认长度为 30。

当列数据项大小一致时应使用 binary。

当列数据项大小不一致时应使用 varbinary。

数据类型decimal(p,s)

需要分别指定小数的最大位数(p)和小数位的数量(s):

p (precision) :指定小数的最大位数,小数点的左侧和右侧的数字的总数量不能超过p,p的取值范围是从1到38,默认值为18。

s (scale):指定在小数点右侧的小数位数,p-s是小数点左边的最大位数。s必须是从0到p的值,只有在指定了精度的情况下才能指定s,s的默认值是0,

因此,0 <= s <= p。

SQL的管理数据对象有哪些?

  1. 表(Table):
    • 定义: 数据库中最基本、最重要的数据对象。
    • 作用: 以行(记录)和列(字段)的结构化格式存储实际数据。每一行代表一个实体(如一个客户、一个订单),每一列代表该实体的一个属性(如客户姓名、订单日期)。
    • 管理操作: CREATE TABLEALTER TABLEDROP TABLE,

TRUNCATE TABLEINSERT INTOUPDATEDELETESELECT

     2.  视图 (View):

  • 定义: 基于一个或多个表(或其他视图)的查询结果集生成的虚拟表
  • 作用:

简化复杂查询(将复杂的 JOIN 或计算封装在视图中)。

提供数据抽象和安全性(只暴露视图定义的列和行,隐藏底层表结构和敏感数据)。逻辑上组织数据。

  • 关键点: 视图本身不存储数据,数据仍然存储在基表中。对视图的查询或更新操作最终会作用在基表上(可更新视图有特定规则)。
  • 管理操作: CREATE VIEWALTER VIEWDROP VIEWSELECT (查询视图)。

     3. 索引 (Index):

  • 定义: 一种特殊的数据库对象,建立在表的一个或多个列上,用于加速数据检索速度
  • 作用: 类似于书籍的目录,允许数据库引擎快速找到特定值,而无需扫描整个表。显著提高 SELECT(尤其是带 WHEREORDER BYJOIN)的速度。
  • 代价: 索引需要额外的存储空间,并且会降低 INSERTUPDATEDELETE 操作的速度(因为索引也需要维护)。
  • 常见类型: B-Tree(最常用)、Hash、Bitmap、全文索引等。
  • 管理操作: CREATE INDEXDROP INDEXALTER INDEX (某些DBMS), REBUILD INDEX/REORGANIZE INDEX (维护)。

      4. 约束 (Constraints):

  • 定义: 应用于表列上的规则,用于强制实施数据的完整性准确性
  • 作用: 确保表中的数据满足特定的业务规则和关系。
  • 主要类型:
  • PRIMARY KEY: 唯一标识表中的每一行(不允许 NULL 和重复值)。
  • FOREIGN KEY: 确保一个表(子表/引用表)中的列值必须存在于另一个表(父表/被引用表)的主键或唯一键中,维护表间引用完整性。
  • UNIQUE: 确保列(或列组合)中的所有值都是唯一的(允许 NULL,但通常只允许一个 NULL)。
  • NOT NULL: 确保列不能存储 NULL 值。
  • CHECK: 确保列中的值满足指定的条件

(如 Age > 0Status IN ('A','I'))。

  • DEFAULT: 当未指定值时,为列提供默认值。

  • 管理操作: 通常在创建或修改表时定义 (CREATE TABLEALTER TABLE ... ADD CONSTRAINT),也可以单独添加或删除 (ALTER TABLE ... DROP CONSTRAINT)

      5. 序列 (Sequence) / 自增列 (Auto-increment / Identity Column):

       定义:

  • 序列: 一个独立的数据对象(在 Oracle, PostgreSQL 等中常见),用于生成唯一的、通常按顺序递增的数字序列。
  • 自增列/Identity列: 表列的一个属性(在 MySQL AUTO_INCREMENT, SQL Server IDENTITY, PostgreSQL SERIAL 等),在插入新行时自动生成唯一的递增值。
  • 作用: 为主键列或其他需要唯一标识符的列自动生成唯一值。
  • 管理操作:
  • 序列: CREATE SEQUENCEALTER SEQUENCEDROP SEQUENCENEXTVAL (获取下一个值)。
  • 自增列: 在 CREATE TABLE / ALTER TABLE 中定义 (AUTO_INCREMENTIDENTITY 等)。

        6. 同义词 (Synonym):

  • 定义: 为现有数据库对象(如表、视图、序列、存储过程、函数,甚至是另一个同义词)提供的别名
  • 作用:
  • 简化对象引用(使用短名称代替冗长的 schema.object 名称)。
  • 提供抽象层(如果底层对象位置或名称改变,只需修改同义词定义,应用程序代码无需改动)。
  • 方便访问不同用户模式下的对象。
  • 管理操作: CREATE [PUBLIC] SYNONYMDROP SYNONYM

  1. 模式 (Schema):
  • 定义: 数据库对象的命名空间或容器。它本身不存储数据,但包含表、视图、索引、过程等对象的集合。
  • 作用:
    • 逻辑上组织和管理数据库对象(如按功能模块划分)。
    • 避免命名冲突(不同模式下的对象可以有相同名称)。
    • 权限管理的基础单元(可以对整个模式授权)。
  • 管理操作: CREATE SCHEMAALTER SCHEMADROP SCHEMA (具体语法和功能因 DBMS 差异较大)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89053.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医疗项目如何应对法规变更?

医疗项目应对法规变更的关键策略包括建立法规监测体系、及时内部培训和沟通、调整业务流程和合规标准、技术系统快速迭代升级。 其中&#xff0c;建立有效的法规监测体系尤其重要。这意味着企业需要实时关注监管机构发布的政策更新和公告&#xff0c;迅速理解法规变化内容及对自…

AI Top10

AI 前十排名排名团队/机构名称国家核心优势领域1DeepMind英国强化学习、Alpha系列模型2OpenAI美国GPT系列、多模态大模型3DeepSeek中国高效NLP模型、开源生态建设4Google Brain美国Transformer架构、TensorFlow框架5Meta AI (FAIR)美国计算机视觉、Llama系列模型6NVIDIA Resear…

LabVIEW通知器函数应用

介绍LabVIEW通知器&#xff08;Notifier&#xff09;函数&#xff0c;演示两类并行循环通信场景&#xff1a;单对循环数据交互、多循环通知聚合&#xff0c;含程序框图&#xff08;数据发送 / 接收、多循环通知&#xff09;与前面板&#xff08;数据显示&#xff09;。功能说明…

推荐《Python 编程:从入门到实践》之Python编程的基础知识

在 Python 学习资源琳琅满目的当下&#xff0c;《Python 编程&#xff1a;从入门到实践》脱颖而出&#xff0c;堪称 Python 入门的不二之选。本书由经验丰富的教育工作者撰写&#xff0c;以清晰易懂的语言和循序渐进的方式&#xff0c;引领读者从 Python 的基础语法逐步迈向实际…

Kafka入门和基础配置

目录Kafka入门消息引擎系统ABC快速搞定Kafka术语kafka三层消息架构名词术语Kafka基础Kafka部署参考重要配置参数Broker端参数Topic级别参数JVM参数Kafka是消息引擎系统&#xff0c;也是分布式流处理平台Kafka入门 消息引擎系统ABC 民间版&#xff1a;系统 A 发送消息给消息引…

OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析

&#x1f310; OPENPPP2 VEthernet 网络协议堆栈&#xff08;CTCP&#xff09;VNetStack 深度技术解析&#x1f3d7;️ 一、系统架构全景图 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner发布2025年中国网络安全成熟度曲线:网络安全的重点正转向保护AI、推动业务转型和增强组织韧性

网络安全的重点正转向保护人工智能、推动业务转型和增强组织韧性。首席信息官及其安全和风险管理主管可以利用这份技术成熟度曲线来识别实用且高价值的技术和实践&#xff0c;从而保持安全和敏捷。 战略规划假设 到2027年&#xff0c;60%的中国大型组织将在安全运营中心&#x…

网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线

在当今数字化时代&#xff0c;网络已成为企业运营的基础&#xff0c;随着网络的广泛应用&#xff0c;网络准入控制系统作为保障网络安全的重要手段&#xff0c;正发挥着至关重要的作用。保障网络安全网络准入控制系统如同网络的忠诚卫士&#xff0c;它为网络大门安装了智能锁&a…

java基础(day09)

目录 1.继承的作用 2.继承树 3.protected和super protected super 注&#xff1a;super/this()--构造方法&#xff0c;第一行&#xff0c;一般不同时出现 4.向上向下转型 向上转型 向下转型 final 小结 1.继承的作用 理解&#xff1a;首先就是可以实现代码复用&#x…

如何进行选择。

初始理解问题 首先&#xff0c;我们需要明确题目在问什么。题目“House Robber”描述的是一个强盗在一排房屋前&#xff0c;每个房屋都有一定数量的钱。强盗不能连续抢劫两个相邻的房屋&#xff0c;否则会触发警报。目标是抢劫到最多的钱。 动态规划的思路 这个问题可以使用动态…

PHP语法高级篇(三):Cookie与会话

Cookie与会话在 Web 编程中十分实用&#xff1a;Cookie 能实现一周免登录&#xff0c;还能记住用户的主题偏好&#xff1b;会话可保存当前用户信息&#xff0c;也能临时存储购物车数据。本篇文章将记录Cookie与会话的学习过程。 一、Cookie cookie 常用于识别用户。cookie 是服…

11. JVM中的分代回收

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

基于PaddleOCR的营业执照识别与数据分析系统

基于PaddleOCR的营业执照识别与数据分析系统 1. 项目概述 本项目旨在利用百度PaddleOCR技术识别营业执照图片中的关键信息,结合自然语言处理(NLP)和卷积神经网络(CNN)对OCR结果进行分类处理,最后对识别出的收入流水数据进行深度分析与可视化展示。系统将实现从图像识别到数…

SpringBoot JSON字典序列化翻译

&#x1f9e9; 一、效果预期 Data public class UserVO {private String status;DictTranslate(type "user_status")private String statusName; }最终返回 JSON&#xff1a; {"status": "1","statusName": "启用" }&#…

基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(5)失败用例截图与重试

在UI自动化测试用例执行过程中&#xff0c;经常会有很多不确定的因素导致用例执行失败&#xff0c;比如网络原因、环境问题等&#xff0c;所以我们有必要引入重试机制&#xff08;失败重跑&#xff09;&#xff0c;来提高测试用例执行稳定性。准备工作&#xff1a;我们在进行失…

【Oracle】centos7静默安装oracle19c

静默安装三步骤&#xff1a; 1、数据库安装db_install.rsp&#xff08;数据库软件安装响应文件&#xff09;2、配置监听netca.rap&#xff08;监听配置响应文件&#xff09;3、建库dbca.rsp&#xff08;建库响应文件&#xff09;安装oracle19c先决条件准备&#xff1a; 1.检查主…

MCP基础知识二(实战通信方式之Streamable HTTP)

介绍 MCP 使用 JSON-RPC 2.0 作为其传输格式。传输层负责将 MCP 协议消息转换为 JSON-RPC 格式进行传输&#xff0c;并将接收到的 JSON-RPC 消息转换回 MCP 协议消息。其中SSE被废弃了&#xff08;Server-Sent Events (SSE) - Deprecated&#xff09; SSE as a standalone tra…

量子计算与AI的融合:开启智能革命的“量子跃迁”新范式

当量子计算的并行算力与人工智能的深度学习能力相遇,一场颠覆传统认知的技术革命正在酝酿。从药物研发到自动驾驶,从金融风控到气候预测,两者的融合不仅突破了经典计算的算力天花板,更催生出全新的算法范式与产业生态。本文将深入解析量子计算与AI融合的技术逻辑、核心突破…

【氮化镓】不同偏压应力下电荷俘获效应导致的P-GaN HEMT阈值电压不稳定性

2022年12月7日,意大利国家研究委员会微电子与微系统研究所的Giuseppe Greco等人在《Applied Physics Letters》期刊发表了题为《Threshold voltage instability by charge trapping effects in the gate region of p-GaN HEMTs》的文章,基于对p-GaN高电子迁移率晶体管(HEMTs…

ONLYOFFICE深度解锁系列.10-如何识别图像和PDF扫描件中的文本?用ONLYOFFICE的AI OCR轻松搞定!

ONLYOFFICE 文档版本 9.0带来多项 AI 关键改进&#xff0c;显著提升您处理电子表格和 PDF 文件的工作效率。本指南将重点介绍新增的 OCR 功能&#xff0c;并讲解如何在 PDF 编辑器中利用 AI 助手将图像转为可编辑文本。什么是 OCR 文字识别&#xff1f;OCR 技术能够扫描各类文档…