MySQL-基础篇 ( 相关了解 + SQL-DDL )

发布时间 2023-08-17 19:34:42作者: 朱呀朱~

MySQL-基础篇 ( 相关了解 + SQL-DDL )

认知了解

  • 数据库,DataBase 简称 DB,是有组织的存储数据的仓库

  • 数据库管理系统,DBMS,是操纵和管理数据库的大型软件

  • SQL,全名 Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

  • 主流的关系型数据库管理系统

    • Oracle
    • MySQL
    • SQL Server
    • PostgreSQL

MySQL 数据库

  • 数据库的下载过程见另一文章:

  • MySQL 数据库的启动

    • 手动打开任务管理器 ( 可 ctrl + alt + 数字键的"." ),找到服务中的 MySQL 即可右键启动

      image-20230720161031058

    • windows + R,输入 services.msc 直接打开服务

      image-20230720161211194

    • 管理员身份进入命令行输入 net start mysql 启动,输入 net stop mysql 停止

      • 其中 mysql 与上述方法中的服务里显示的一致

      image-20230720161725801

  • 关系型数据库 ( RDBMS )

    • 建立在关系模型基础上,由多张相互连接的二维表组成的数据库
    • 使用表存储数据,格式统一便于维护
    • 使用 SQL 语言操作,标准统一使用方便
    • 一个 DBMS 可建多个库,一个库可建多个表

SQL

通用语法

  • SQL 语句可以单行或多行书写,以分号结尾
  • SQL 语句可以使用空格 / 缩进来增强语句的可读性
  • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写
  • 注解
    • 单行注释:-- 注解内容或者 # 注解内容
    • 多行注释:/* 注释内容 */

分类

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象 ( 库、表、字段 )
DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限
  • 打开命令行输入 mysql -uroot -p,然后输入密码,成功后显示 mysql> 就表示可以对 MySQL 进行操作了

数据类型

  • 数据类型

    • 主要分为三类:数值类型、字符串类型、日期时间类型

数值类型

类型 大小 相当于 java 里的 描述
TINTINT 1 byte byte 小整数值
SMALLINT 2 byte short 大整数值
MEDIUMINT 3 byte 大整数值
INT / INTEGER 4 byte int 大整数值
BIGINT 8 byte long 极大整数值
FLOAT 4 byte float 单精度浮点数值
DOUBLE 8 byte double 双精度浮点数值
DECIMAL 依赖于精度M与标度D 小数值 ( 精确定点数 )
  • decimal 使用时需要指定:如 123.45,则 M 为 5,D 为 2

  • 上述类型后面加上 UNSIGNED 表示无符号位,如:age TINYINT UNSIGNED,就表示 age 字段的范围为 ( 0, 255 )

  • double ( 全部整体长度, 小数点后位数 ):score double(4, 1),

字符串类型

类型 大小 描述
CHAR 0 ~ 255 bytes 定长字符串
VARCHAR 0 ~ 65535 bytes 变长字符串
TEXT 0 ~ 65535 bytes 长文本数据
... ... ...
  • char(10) / varchar(10):括号内指定参数,表示当前字符串能存储的最大长度是 10,超出就会报错
  • char(2):存储 2 个字符,还是占用 10 个字符的空间,未用到的就用空格补位
  • varchar(3):存储 3 个字符,就占用 3 个字符的空间
  • 但是 char 性能更高,因为 varchar 使用时会根据内容计算所占用的空间
  • 如在要求游戏用户名长度时,长短不一,最好用 varchar,而在要求性别时就用 char

日期时间类型

类型 格式 描述
DATE YYYY-MM-DD 日期值
TIME HH:MM:SS 时间值或持续时间
YEAR YYYY 年份值
DATETIME YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP YYYY-MM-DD HH:MM:SS 混合日期和时间值
  • TIMESTAMP:时间戳,范围为 1970-01-01 00:00:01 至 2038-01-19 03:14:07

DDL

数据定义语言,用来定义数据库对象

数据库操作

查询
  • 查询所有数据库 SHOW DATABASES;
  • 查询当前数据库 SELECT DATABASE();
    • 若不知道此时是哪个数据库时使用此语句查询
创建
  • CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];
  • 方括号内的都是可选语句
  • 上述语句中插入 IF NOT EXISTS:只有数据库名不存在时才创建
删除
  • DROP DATABASE[IF EXISTS]数据库名;
  • 上述语句插入 IF EXISTS:不存在就不删,不加此语句的话,若库名不存在就会报错
使用
  • USE 数据库名;

  • 示例

    image-20230720203511859

表操作

查询
  • 查询当前数据库所有表

    • SHOW TABLES;
  • 查询表结构

    • DESC 表名;
  • 查询指定表的建表语句

    • SHOW CREATE TABLE 表名;
创建
  • 创建

    • CREATE TABLE 表名(

      字段1 字段1类型[COMMENT 字段1注释],

      ......

      字段n 字段n类型[COMMENT 字段n注释]

      )[COMMENT 表注释];

    • 注意最后一个字段没有逗号分隔

  • 示例

    image-20230720203624462

    image-20230720204830845

修改删除
  • 添加字段
    • ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];
  • 修改字段数据类型
    • ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
  • 修改字段名和字段数据类型
    • ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
  • 删除字段
    • ALTER TABLE 表名 DROP 字段名;
  • 修改表名
    • ALTER TABLE 表名 RENAME TO 新表名;
  • 删除表
    • DROP TABLE[IF EXISTS] 表名;
  • 删除指定表,并重新创建该表
    • TRUNCATE TABLE 表名;
    • 相当于表名不变所有数据清空

数据库图形化界面工具

  • 可以用 IDEA 自带数据库 ( 似 DataGrip 使用 )

    image-20230721111747366

  • 输入用户名和密码就可以测试使用

    image-20230721112409277

  • 点击连接后面的选择 All 就可以显示所有的库

    image-20230721112441663

  • 右键连接选择 Schema 为新建库

    image-20230721112628385

  • 输入库名即可完成创建,注意:红线画出的 schema 与 database 同义,作用相同

    image-20230721112808860

  • 右键库,创建表

    image-20230721112956578

  • 点击加号或者直接右键都可以选择 Column 创建字段

    image-20230721113118009

  • 完成表格创建,下方为创建表的生成语言

    image-20230721113226506

  • 可以右键对表进行修改

    image-20230721113350469

    image-20230721113636799

  • 也可以选择右键表选择不通过图形化页面工具,而是自行编写 SQL 语句

    image-20230721113747347

  • 显示在 test 库下,可以输入语句,点击运行,显示结果

    image-20230721114128445