当前位置: 首页 > news >正文

数据库系统概论(七)初识SQL与SQL基本概念

数据库系统概论(七)初识SQL与SQL基本概念

  • 前言
  • 一、什么是SQL语言?
    • 1.1 SQL的产生和发展
    • 1.2 SQL的特点
    • 1.3 SQL的基本概念
      • 1.3.1 数据库相关“术语”(类比Excel表格)
      • 1.3.2 四大类核心语句(后面会详细讲,现在了解一下)
  • 二、数据的定义(现在了解一下就好,后面会详细讲解)
    • (1)模式相关操作
      • 1.1 定义模式(创建表结构)
      • 1.2 删除模式
    • (2)数据类型(列的“规则”)
    • (3)基本表的修改(ALTER TABLE)
      • 3.1 添加列
      • 3.2 修改列(数据类型或约束)
      • 3.3 删除列
    • (4)索引(提升查询速度的“目录”)
      • 4.1 建立索引
      • 4.2 删除索引


前言

  • 前面的博客里我们已经了解了关系模型的核心概念(如关系模式、域、属性、键等)。
  • 接下来正式进入 关系数据库的实战阶段—— 通过 标准查询语言 SQL(Structured Query Language) 来操作和管理数据库

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482


一、什么是SQL语言?

SQL(Structured Query Language,结构化查询语言)是一种专门用于管理和操作数据库的编程语言

  • 它的核心功能是让用户能够高效地与数据库进行交互
  • 比如查询数据、插入数据、修改数据、删除数据,以及定义和管理数据库的结构

1.1 SQL的产生和发展

  • 起源:1970年代,IBM的研究员为了解决数据库管理问题,开发了一种名为 SEQUEL 的语言,后来简化为 SQL
  • 标准化:1986年,美国国家标准协会(ANSI)将SQL定为关系型数据库的标准语言,随后国际标准化组织(ISO)也采纳了这一标准。
  • 发展:如今,几乎所有主流数据库(如MySQL、Oracle、SQL Server、PostgreSQL等)都支持SQL,但不同数据库会在标准SQL的基础上增加一些特有的功能(例如MySQL的存储过程、Oracle的PL/SQL)。

在这里插入图片描述

1.2 SQL的特点

  1. 语法简单,接近自然语言

    SQL语句使用英文单词(如SELECT、INSERT、UPDATE、DELETE),即使没有编程基础也能快速理解。

  2. 非过程化

    只需告诉数据库“要做什么”(例如“查询成绩大于80分的学生”),不需要告诉它“怎么做”,数据库会自动优化执行过程。

  3. 跨平台通用

    无论你用的是Windows、Linux还是Mac,也无论你使用哪种数据库(MySQL、Oracle等),基础SQL语法几乎一致,学会一种就能触类旁通。

1.3 SQL的基本概念

在这里插入图片描述

1.3.1 数据库相关“术语”(类比Excel表格)

  • 数据库:相当于一个“文件夹”,用来存放多张表(如“学生数据库”“订单数据库”)。
  • :相当于Excel中的一张表格,由“行”和“列”组成。例如“学生表”,列是字段(如学号、姓名、年龄),行是一条具体记录(如某个学生的信息)。
  • 主键:表中某一列(或多列),用于唯一标识一条记录(类似学生的学号,不能重复)。

1.3.2 四大类核心语句(后面会详细讲,现在了解一下)

  • 数据定义语言(DDL):用来创建或修改数据库结构。

    • CREATE TABLE:创建表(例如创建“学生表”)。
    • ALTER TABLE:修改表结构(例如添加一列“邮箱”)。
    • DROP TABLE:删除表。
  • 数据查询语言(DQL):用来从表中查询数据(最常用!)。

    • SELECT:查询数据,例如:
      SELECT 姓名, 年龄 FROM 学生表 WHERE 年龄 > 18; 
      -- 意思:从“学生表”中选出年龄大于18岁的人的姓名和年龄
      
  • 数据操作语言(DML):用来增、删、改表中的数据。

    • INSERT:插入数据(例如新增一个学生的信息)。
    • UPDATE:修改数据(例如把某个学生的年龄从20改成21)。
    • DELETE:删除数据(例如删除毕业学生的记录)。
  • 数据控制语言(DCL):用来管理数据库的权限(例如给某个用户设置“只能查询”的权限)。

在这里插入图片描述

二、数据的定义(现在了解一下就好,后面会详细讲解)

(1)模式相关操作

1.1 定义模式(创建表结构)

目的:设计表的“模板”,规定表有哪些列、每列的数据类型等。
语句

CREATE TABLE 表名 (列名1 数据类型1 [约束条件],  -- 例如:id INT PRIMARY KEY列名2 数据类型2,...
);

例子:创建学生表

CREATE TABLE student (stu_id INT PRIMARY KEY,  -- 学号(整数,主键)stu_name VARCHAR(50)     -- 姓名(最长50个字符的字符串)
);

1.2 删除模式

目的:彻底删除整张表(包括数据和表结构)。
语句

DROP TABLE 表名;

例子:删除学生表

DROP TABLE student;

(2)数据类型(列的“规则”)

表中每一列必须指定数据类型,限制该列能存储的数据格式,常见类型:

  • 字符串VARCHAR(n)(可变长,如VARCHAR(20))、CHAR(n)(固定长)。
  • 数值INT(整数)、FLOAT(浮点数)、DECIMAL(m,n)(精确小数,如DECIMAL(5,2)表示最多5位,小数点后2位)。
  • 日期/时间DATE(日期,如2023-10-01)、DATETIME(日期+时间,如2023-10-01 12:30:00)。
  • 布尔BOOLEANTRUE/FALSE,部分数据库用TINYINT代替)。

(3)基本表的修改(ALTER TABLE)

目的:在不删除表的前提下,新增、修改或删除列。

3.1 添加列

ALTER TABLE 表名 ADD COLUMN 新列名 数据类型;

例子:给学生表添加“年龄”列

ALTER TABLE student ADD COLUMN age INT;

3.2 修改列(数据类型或约束)

ALTER TABLE 表名 ALTER COLUMN 列名 TYPE 新数据类型;  -- 部分数据库语法不同(如PostgreSQL)
-- 或直接重命名列(少数数据库支持)
ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

3.3 删除列

ALTER TABLE 表名 DROP COLUMN 列名;

(4)索引(提升查询速度的“目录”)

4.1 建立索引

目的:给表的某列(或多列)创建索引,加快查询速度。

CREATE INDEX 索引名 ON 表名 (列名);

例子:给学生表的“姓名”列创建索引

CREATE INDEX idx_name ON student (stu_name);

4.2 删除索引

DROP INDEX 索引名;

例子:删除上述索引

DROP INDEX idx_name;

以上就是这篇博客的全部内容,下一篇我们将继续探索更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

相关文章:

  • `timescale 1ns/1ps的意义
  • DeepResearch深度搜索实现方法调研
  • 【大模型ChatGPT+ArcGIS】数据处理、空间分析、可视化及多案例综合应用
  • 34.笔记1
  • 如何用Jmeter实现自动化测试?
  • wsl - install RabbiqMQ
  • 复杂网络鲁棒性理论基础
  • 使用Python 打造多格式文件预览工具 — 图、PDF、Word、Excel 一站式查看
  • 极客说|Unsloth 的全微调之路:从 Adapter 到 Full Fine-tuning
  • Git标签删除脚本解析与实践:轻松管理本地与远程标签
  • 大数据——Mac环境DataSpell集成Jupyter
  • 零基础学Java——第十一章:实战项目 - 控制台应用开发
  • 开目新一代MOM:AI赋能高端制造的破局之道
  • 【C++进阶】第2课—多态
  • 星光云720全景VR系统升级版,720全景,360全景,vr全景,720vr全景
  • Jsp技术入门指南【十一】SQL标签库
  • flask开启https服务支持
  • 嵌入式openharmony标准系统中GPIO口控制详解
  • 【教学类-34-12】20250509(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+数字提示+参考图灰色)
  • 打造专属AI好友:小智AI聊天机器人详解
  • 第一集|《刑警的日子》很生活,《执法者们》有班味
  • 国家税务总局泰安市税务局:山东泰山啤酒公司欠税超536万元
  • 欧盟委员会计划对950亿欧元美国进口产品采取反制措施
  • 成都公积金新政征求意见:购买保障性住房最高贷款额度上浮50%
  • 中俄合拍电影《红丝绸》将于今年9月在中国上映
  • “穿越看洪武”,明太祖及其皇后像台北故宫博物院南院展出