hincky的主页 hincky的主页
  • 2023

    • nginx
    • prometheus
    • 小工具
    • 部署
  • 数据库

    • MySQL是怎么使用/运行的
    • Redis核心技术与实战
  • 极客时间

    • Web协议详解与抓包实战
    • SQL必知必会
    • MySQL45讲
个人日常
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 2023

    • nginx
    • prometheus
    • 小工具
    • 部署
  • 数据库

    • MySQL是怎么使用/运行的
    • Redis核心技术与实战
  • 极客时间

    • Web协议详解与抓包实战
    • SQL必知必会
    • MySQL45讲
个人日常
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 编程语言

  • 数据库

  • 极客时间

    • Web协议详解与抓包实战

    • GO语言第一课

    • MySQL45

    • SQL必知必会

      • SQL快查
        • 语句顺序
        • 执行顺序
        • like用法
        • 最值
        • 特殊
        • 子查询
        • 关键字
      • 数据语言
        • DDL 数据定义语言
          • 对库定义
          • 对表定义
        • DML
        • DCL
        • DQL
      • select查询
        • select语句sql关键字顺序
        • sql语句实际执行顺序
        • 提升查询效率的方法
      • where条件查询
        • 比较运算符
        • 逻辑运算符
        • like + 通配符 (小心索引失效)
        • 分组
      • 函数
        • 聚合函数
        • 算术函数
        • 字符串函数
        • 日期函数
        • 转换函数
      • 分组查询
      • 子查询
        • 关联子查询
        • 非关联子查询
        • 集合比较子查询
          • IN 和 EXISTS 如何选择
          • NOT IN 和 NOT EXISTS 如何选择
        • 子查询作为计算字段
      • 多表查询
        • 交叉连接
        • 等值与自然连接
        • 非等值连接
        • 左连接
        • 右连接
        • 自连接
      • 牛客网题目整合
      • SQL简介
        • 创建DBMS
          • SQL大小写
          • DBMS种类
        • MySQL开发规范
      • SQL如何执行
        • Oracle中如何执行
        • MySQL中如何执行
          • mysql如何对sql执行时间进行分析
          • 查看mysql的执行计划
    • Linux性能优化实战

  • 读书笔记
  • 极客时间
  • SQL必知必会
hincky
2022-10-29
目录

数据语言

# DDL 数据定义语言

用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。

增删改create drop alter

最好有个说明文档,说清楚每个字段的定义

# 对库定义

CREATE DATABASE nba; ---创建一个名为nba的数据库
DROP DATABASE nba; ---删除一个名为nba的数据库
1
2

# 对表定义

创建表

CREATE TABLE [table_name](字段名 数据类型,......)

CREATE TABLE player  (
  player_id int(11) NOT NULL AUTO_INCREMENT,
  player_name varchar(255) NOT NULL
);
1
2
3
4
5
6

语句最后以分号(;)作为结束符,最后一个字段的定义结束后没有逗号。


现在一般借助数据库连接工具,创建好库表结构之后,在转化成sql语句

navicat:转储 SQL 文件”→“仅结构

DROP TABLE IF EXISTS `player`;
CREATE TABLE `player`  (
  `player_id` int(11) NOT NULL AUTO_INCREMENT,
  `team_id` int(11) NOT NULL,
  `player_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `height` float(3, 2) NULL DEFAULT 0.00,
  PRIMARY KEY (`player_id`) USING BTREE,
  UNIQUE INDEX `player_name`(`player_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
1
2
3
4
5
6
7
8
9

修改表

ALTER TABLE player ADD (age int(11)); ---添加一个 age 字段,类型为int(11)
ALTER TABLE player RENAME COLUMN age to player_age ---age 字段改成player_age
ALTER TABLE player MODIFY (player_age float(3,1)); ---player_age的数据类型设置为float(3,1)
ALTER TABLE player DROP COLUMN player_age; ---删除刚才添加的player_age字段
1
2
3
4

约束

约束 特征,作用
主键 UNIQUE+NOT NULL
外键 表与表之间引用的完整性
唯一 不能重复
NOT NULL 不应为空,必须有取值
DEFAULT 有取值,就设置为默认值
CHECK 查特定字段取值范围的有效性

数据表的个数越少越好 数据表中的字段个数越少越好 数据表中联合主键的字段个数越少越好 使用主键和外键越多越好

# DML

用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。

# DCL

# DQL

用它查询想要的记录,它是 SQL 语言的重中之重。

编辑 (opens new window)
#SQL
SQL快查
select查询

← SQL快查 select查询→

最近更新
01
集成chatgpt的工具
05-24
02
修改服务器ssh默认连接端口
05-22
03
阿里云免费证书
05-15
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式