Skip to content

数据库相关概念

image-20240926184113665

关系型数据库

概念:建立在关系模型的基础上,由多张相互连接的二维表组成的数据库。

特点:

  • 使用表存储数据,格式统一,便于维护
  • 使用SQL语言操作,标准统一,操作方便

Mysql数据库的数据模型

image-20240926185237024

客户端通过数据库管理系统(DBMS,DatabaseManagementSystem)操作数据库,就是Mysql的数据模型。

image-20240926185422898

SQL语言

image-20240926185517761

SQL通用语法

image-20240926185613938

SQL语句的分类

  • DDL
  • DML
  • DQL
  • DCL

image-20240926185704498

DDL语句

DDL数据库操作

查询

  • 查询所有数据库
sql
SHOW DATABASES;
  • 查询当前数据库
SQL
SELECT DATABASE();
  • 创建数据库
sql
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET UTF8] [COLLATE 排序规则]
  • 删除数据库
sql
DROP DATABASE [IF EXISTS] 数据库名;
  • 使用数据库
sql
USE 数据库名

上述所有代码的 [ ] 里为可选内容,不写也能创建

DDL数据表操作

数据类型

  • 数值类型

    image-20240926192548911

    举个例子

    sql
    age INT UNSIGNED
    score DOUBLE(4,1)    -- 4代表数据整体长度,1代表小数位数
    money DECIMAL(10,2)  -- 10代表数据整体长度,2代表小数位数
  • 字符串类型

    image-20240926193050382

    举个例子:

    sql
    gender char(1)             -- 性能好,必须是1位,超过截断,不够补位
    company varchar(64) 		   -- 性能较差,最大长度为64
  • 日期时间类型

    image-20240926193447375

    举个例子

    sql
    birthday DATE

创建表结构

sql
CREATE TABLE 表名(
		字段1 字段1类型 [COMMENT字段1注释],
		字段2 字段2类型 [COMMENT字段2注释],
		……
		字段n 字段n类型 [COMMENT字段n注释],
) [COMMENT 表注释]

举个例子

sql
CREATE TABLE INFO(
		id int COMMENT "ID",             
		name varchar(32) COMMENT "姓名",   
		age int COMMENT "年龄",            
		gender varchar(8) COMMENT "性别",      
) COMMENT "用户信息"

查询表结构

  • 查询当前数据库所有表
sql
SHOW TABLES;
  • 查询表结构
sql
DESC 表名
  • 查询指定表的建表语句
sql
SHOW CREATE TABLE 表名

-- 返回的是这张表当初用什么语句creaet的

修改表结构

image-20240926194749172

  • 添加字段

    sql
    ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]

    举个例子

    sql
    ALTER TABLE empt ADD nickname varchar(20) COMMENT "昵称"
  • 修改指定字段的数据类型

    sql
    ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度)
    
    -- 举个例子
    ALTER TABLE INFO MODIFY nickname char(10)
  • 修改字段名和字段类型

    sql
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释][约束]
    
    -- 举个例子
    ALTER TABLE INFO CHANGE name nickname varchar(15) COMMENT "昵称"
  • 删除字段

    sql
    ALERT TABLE 表名 DROP 字段名;
    
    -- 举个例子
    ALERT TABLE INFO DROP nickname
  • 修改表名

    sql
    ALERT TABLE 表名 RENAME TO 新表名
    
    -- 举个例子
    ALERT TABLE INFO RENAME TO INFOMATION

删除表结构

image-20240926195619079

  • 删除表结构

    sql
    DROP TABLE [IF EXISTS] 表名;
  • 删除表结构,并重新创建表结构

    sql
    TRUNCATE TABLE 表名

DDL小结

image-20240926200146893

Mysql图形化界面

  • Sqlyog
  • Navicat
  • DataGrip