关系数据库语言SQL基础

🏗️ SQL地基大揭秘:不写代码,先看架构

大家好!

很多想学习SQL的朋友,一上来就急着学SELECTINSERT,结果往往因为不了解背后的原理,导致学得云里雾里,遇到复杂问题就抓瞎。

其实,SQL就像盖大楼,地基打不牢,楼盖得再高也会塌。本文,就是带你去看一看SQL这座大厦的"地基"。我们将从宏观视角,聊聊SQL的组成、数据定义、数据类型以及核心概念。

友情提示 :本文不涉及具体的SQL语句写法(比如多表联查、复杂聚合函数等),那些是"运用"层面的功夫,需要你在掌握了地基之后,通过大量的练习去熟练。今天的任务,是帮你构建起一个完整的SQL知识框架。

数据库单表查询全攻略

数据库多表查询全攻略

准备好了吗?让我们开始吧!

🧱 第一篇:地基打牢------SQL数据定义语言(DDL)

要想在数据库里"为所欲为",首先得学会怎么盖房子,也就是数据定义。这部分主要由DDL(Data Definition Language)负责,它是数据库的"施工队"。

1、数据库的"生老病死"

一切的开始,都是创建一个数据库。

  • CREATE DATABASE <数据库名> :这是生命的诞生。想象一下,你对着电脑大喊一声:"要有光,哦不,要有库!" 一个崭新的数据库就诞生了。比如,我们要做一个电商系统,第一件事就是 CREATE DATABASE ECommerce;

  • USE <数据库名> :USE命令就像是拿着门禁卡走进了特定的办公楼,告诉系统:"接下来我要在这个库里干活,请给我开门。" 比如 USE ECommerce;,之后所有的操作都在这个库里进行。

  • ALTER DATABASE <数据库名> :人要衣装,佛要金装,数据库也是。随着业务发展,你可能需要修改数据库的属性,比如扩容、改个名字啥的,这就是ALTER的活儿。

  • DROP DATABASE <数据库名> :这是最"残忍"的一步,一键清空,尘归尘,土归土。警告:此操作不可逆,请务必三思而后行,别手滑把自己的"工资表"给DROP了!

2、基本表的"精装修"

有了库,还得建表。表是数据的直接载体。

  • 定义基本表:这就像是在毛坯房里隔断、贴瓷砖。我们需要定义表结构(字段名、类型)和约束(比如这个字段不能为空,那个字段要唯一)。比如,我们要建一个用户表,就得定义用户ID、姓名、手机号等字段。

  • 修改基本表:业务又变卦了!说要加个"微信号"字段。没关系,ALTER TABLE来帮你,在现有的表上增删改列,灵活得很。

  • 删除基本表:DROP TABLE。同上,手滑党请绕道。

3、SQL里的"藏宝图"------索引

数据多了,找起来就慢。这时候,索引就出场了。它就像字典的拼音目录,能让你瞬间定位到数据。

  • 聚簇索引:这是一张"物理藏宝图"。它直接决定了数据在硬盘上怎么摆放。一个表只能有一个聚簇索引,因为数据只能按一种物理顺序存放。比如,我们把"用户ID"设为聚簇索引,那么数据在硬盘上就是按用户ID从小到大排的。

  • 非聚簇索引:这是一张"逻辑藏宝图"。它不改变数据的物理位置,只是在旁边建了个小本本,记录着数据的位置。一个表可以有很多个非聚簇索引。比如,我们给"手机号"建个非聚簇索引,查手机号就快了,但数据本身还是按用户ID排的。

  • 建立与删除:CREATE INDEX 和 DROP INDEX。虽然索引能加速查询,但也会拖慢插入和修改的速度(因为每次改数据,索引也得跟着改)。所以,索引不是越多越好,要像选美一样,精挑细选。

4、你必须知道的数据类型

建表的时候,选对数据类型至关重要。这就好比你不能把大象装进冰箱,也不能把蚂蚁当大象称。

  • 数值型:整型、定点数、浮点数。算数用的。

  • 字符型

    • char / varchar:定长和变长字符串。比如手机号,固定11位,用char(11)就很合适;比如备注,长短不一,就得用varchar。

    • nchar / nvarchar:这是Unicode版的,专门用来对付中文等多语言字符。

  • 大文本:text / next。当你需要存一篇小说或者一篇公众号文章时,就用它们。

  • 日期时间:datetime / smalldatetime。记录时间的。

  • 二进制:binary / varbinary / image。存图片、文件等二进制数据的。

🧩 第二篇:核心概念------数据的"虚"与"实"

在正式学习SQL查询之前,我们需要搞清楚几个核心概念,这能帮你更好地理解数据是怎么组织的。

  • 基本表:实实在在存在的表,是数据的家。

  • 视图:这是一个"虚表"。它就像一个窗口,透过这个窗口,你可以看到一个或多个基本表的数据。视图不存数据,它存的是查询语句。好处是简化复杂查询,还能保护数据安全(比如只给用户看视图,不让他看原表)。比如,我们可以建一个"销售额大于10万"的视图,每次查这个视图,就相当于执行一次复杂的筛选查询。

  • 存储文件:这是数据库的"地下室",存放着所有数据的物理文件。

  • 模式:可以理解为表的集合,一种命名空间。

🛡️ 第三篇:权力的游戏------数据控制(DCL)

当数据库里有了很多重要数据,就得有人来管管谁有权限看,谁有权限改。这就是DCL(Data Control Language)的职责。

  • 安全性控制:谁是超级管理员,谁是普通游客。

  • 完整性控制:保证数据的准确性和有效性。比如年龄不能是负数,邮箱格式要正确。

  • 事务管理:这是数据库的"后悔药"。COMMIT(提交)意味着把一系列操作永久保存;ROLLBACK(回滚)意味着如果中间出错了,就撤销所有操作,回到最初的状态。比如转账,A扣钱和B加钱必须同时成功或同时失败,这就是事务的原子性。

  • 并发控制:当很多人同时抢购一件商品时,数据库怎么保证库存不变成负数?这就是并发控制的魔法。

🌟 第四篇:SQL的"性格"分析

最后,我们来总结一下SQL这门语言的特点,这也是它能统治数据库界这么多年的原因:

  • 综合统一:DDL、DML、DCL,一套语法全搞定。

  • 高度非过程化:你只需要告诉它"想要什么"(What),而不需要告诉它"怎么去做"(How)。比如你要查"所有男生的名单",你不需要写循环、写指针去遍历,直接一句SELECT搞定,数据库引擎会自动帮你找。

  • 面向集合的操作方式:它不是一行一行地处理数据,而是一组一组地处理。比如UPDATE,它是一次性更新所有符合条件的行,效率极高。

  • 两种使用方式:既可以像命令行一样交互式使用,也可以嵌入到Java、Python等高级语言中使用。

  • 简洁易学:关键词就那么几个(SELECT, FROM, WHERE, GROUP BY...),背下来就能入门,但要精通,还得下功夫。

📌 写在最后

好了,今天的SQL地基科普就到这里。希望这篇文章能帮你构建起一个完整的SQL知识框架。

记住:数据库的世界里没有"差不多",只有"对"与"错"。

本文虽然没有教你具体的SQL语句怎么写,但这些基础知识,是你通往SQL高手之路的必经之地。具体的SQL运用(如多表查询、窗口函数等),需要你在掌握了这些地基之后,去实战中多加练习。

P.S. 别忘了,DROP DATABASE 是有风险的,就像生活,有些东西删了,可没有 ROLLBACK 哦。

相关推荐
jonyleek4 小时前
性能就是生命线?规则引擎如何支撑实时决策
java·开发语言·数据库
ZFSS4 小时前
Midjourney Shorten API 的集成与使用
java·前端·数据库·人工智能·ai·midjourney·ai编程
思麟呀4 小时前
MySQL的事物管理
数据库·mysql
m0_617493945 小时前
PySide6 数据库操作深度实测:从 SQLite 连接到增删改查避坑指南
jvm·数据库·sqlite
OpsEye5 小时前
数据库连接池爆了,这3个命令能救你一次
运维·数据库·后端
csdn小瓯5 小时前
PostgreSQL迁移实战:从SQLite到生产级数据库的平滑演进
数据库·postgresql·sqlite
码云骑士6 小时前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存
YL200404266 小时前
MySQL-进阶篇-锁
数据库·mysql
爱喝水的鱼丶6 小时前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流