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

数据库原理-第三章——SQL

Structured Query Language

数据查询 Select
数据操纵 Insert、Delete、Update
数据定义 Create、Drop、Alter
数据控制 Grant、Revoke
事务处理 begin transaction、commit、rollback
指针、游标控制(CCL) DECLARE CURSOR、FETCH INTO、UPDATE、WHERE CURRENT

数据库的数据类型

  1. 数值型
  • 整数:INT、BIGINT、SMALLINT、TINYINT
  • 小数/浮点数:DECIMAL(p,s)(精确小数,通过字符串的方式存储每一位)、FLOAT、DOUBLE
    👉 用法区别:
  • 钱这种对精度敏感的,一般用 DECIMAL。
  • 科学计算、近似计算常用 FLOAT/DOUBLE。
  1. 字符型
  • 定长:CHAR(n)(总是固定长度,不够会补空格)
  • 变长:VARCHAR(n)(更常用,按需存储)
  • 大文本:TEXT、CLOB
  1. 日期 / 时间型
  • DATE(只存年月日)
  • TIME(只存时分秒)
  • DATETIME / TIMESTAMP(完整时间戳)
  • INTERVAL(时间间隔,PostgreSQL 有)
  1. 二进制型
  • BLOB(Binary Large Object,存图片、音频、视频等)
  1. 布尔型
  • BOOLEAN(值为 TRUE / FALSE,有的数据库用 1/0 表示)

DML:Data Manipulation Language(数据操纵语言)

DDL:Data Definition Language(数据定义语言)

定义

它用来 定义和管理数据库对象的结构,比如表、视图、索引、模式(schema)等等。
比如:

  • CREATE:创建数据库、表、视图、索引等
  • ALTER:修改表结构(加一列、改数据类型…)
  • DROP:删除表、数据库、索引等
  • TRUNCATE:清空表数据(但保留表结构)

常用操作

  1. CREATE(创建)
  • 创建数据库
CREATE DATABASE school;
  • 创建表
CREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(50),age INT,birthday DATE
);

👉 小提示:定义表时要顺便考虑主键、数据类型、约束。

  1. ALTER(修改)
  • 添加一列
ALTER TABLE student ADD email VARCHAR(100);
  • 修改列的数据类型
ALTER TABLE student MODIFY age SMALLINT;
  • 删除一列
ALTER TABLE student DROP COLUMN birthday;
  • 修改表名
ALTER TABLE student RENAME TO pupil;
  1. DROP(删除)
  • 删除数据库
DROP DATABASE school;
  • 删除表(结构和数据一起删光)
DROP TABLE student;
```sql
4. TRUNCATE(清空表数据,但保留结构)
```sql
TRUNCATE TABLE student;

👉 和 DELETE 的区别是:DELETE 属于 DML,可以带条件、可回滚;而 TRUNCATE 属于 DDL,执行后不可回滚,效率更高。

  1. 约束(Constraints)
    DDL 里经常和 CREATE/ALTER 一起用:
  • PRIMARY KEY(主键)
  • FOREIGN KEY(外键)
  • UNIQUE(唯一约束)
  • NOT NULL(不能为空)
  • CHECK(检查条件)
http://www.hskmm.com/?act=detail&tid=6142

相关文章:

  • 啥是CPU
  • C# Avalonia 15- Animation- CodeAnimation
  • ubuntu 18.04安装mysql 8.0.41
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪(win版)
  • 阿里云基础设施 AI Tech Day AI 原生,智构未来——AI 原生架构与企业实践专场
  • 实用指南:LINUX910 CENTOS8 新建虚拟机;重设root密码/时间同步
  • 零基础学习PYthon记录
  • C++ std::unordered_set
  • 如何将一个项目同时提交到GitHub和Gitee(码云)上
  • 基于Matlab的LeNet-5车牌字符识别系统实现
  • MATLAB的交通标志牌识别实现
  • Python常见的数据结构和代码示例
  • Grafana 中文入门教程 | 构建你的第一个仪表盘
  • Gitee DevOps:中国开发者效率革命的数字引擎
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪
  • 易基因:Nat Genet/IF29:董朝斌团队ChIP-seq等揭示作物株型穗型发育调控新机制 助力表观遗传育种驯化改良(顶刊佳作)
  • Edge浏览器网页长截图
  • Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用
  • C++多线程编程—线程控制、同步与互斥详解
  • MySQL启动失败:mysqld.log Permis 报错处理.250916
  • 源码管理—密钥硬编码问题
  • 无速度传感器交流电机的扩展Luenberger观测器
  • AI Ping体验记:终于有人做大模型服务的“性能监控”了
  • 数据库原理-第二章——关系型数据库
  • mac 的任务栏 Windows-Style Taskbar For macOS
  • 快手Java一面
  • 详细介绍:Elastic APM 入门指南:快速设置应用性能监控
  • 想找Axure替代?这6个原型设计工具值得一试
  • H5游戏性能优化系列-----cpu相关优化
  • IPA 混淆实战 IPA 混淆、IPA 加固、ipa 文件安全与成品包防护全流程指南