1+X | MySQL

why MySQL

download

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

基本操作

  • 启动(macOS):mysql.server start
  • 进入mysql命令行 - mysql -u root -p
  • 创建数据库 - create database 库名;
  • 查看数据库 - show databases;
  • 删除数据库 - drop database 库名;
  • 打开数据库 - use 库名;
  • 查看数据表 - show tables;
  • 查看数据表详情 - desc 表名;
  • 退出mysql命令行 - quit; / exit;

数据表

  • 注释

    # ;/**/ ;--

  • 数据类型

    • 字符串类型

      char - 定长字符串

      varchar - 变长字符串

      text - 文本

      blob

    • 整型

      tinyint - 极小型

      smallint - 小整型

      int - 整型

      bigint - 大整型

    • 浮点型

      float - 单精度

      double - 双精度

      decimal - 定点型

    • 日期型

      date - 日期型

      time - 时间型

      year - 年份

  • 约束

    not null/null - 非空/空

    default - 默认值

    primary key - 主键

    foreign key - 外键

    unique - 唯一

  • 创建数据表

    • create table 表名(列1 类型 [宽度] 约束,列2 类型 [宽度] 约束,...)

    image-20210713145716442

    use mydb;
    # 创建学生表
    drop table if exists student; create table student (
    sno varchar(3) not null primary key comment '学号', -- 主键约束(值不能为空,且唯一) sname varchar(4) not null, -- 非空约束
    ssex char(2) characterset big5 collate big5_chinese_ci default "男", -- 默认值约束 sbirthday varchar(10) default null,
    class varchar(5) not null
    ) engine=innodb default charset=utf8; -- 设置编码
    # 创建教师表
    drop table if exists teacher; create table teacher (
        tno varchar(3) primary key,
        tname varchar(4) not null,
        tsex varchar(2) not null,
        tbirthday datetime not null,
        prof varchar(6) default null,
        depart varchar(10) not null
    ) engine=innodb default charset=utf8;
    
    • auto_increment - 表示该列是否是自动编号(int,主键,创建主键是会自动生成一个唯一索引)
    • 一张表中只能有一个主键(primary key)
    • desc 表名; - 查看表结构
    • show tables; - 查看所有表
    • InnoDB引擎支持外键

增、删、查、改

  1. 查询

    • 通配符 - _、%、[]、[^]

    • 分组 - group by

    • 排序 - order by

    • 分组条件 - having

    • 分页 - limit 起始下标(如果缺省,默认从0开始),条数

      --查询2-5条
      select * from student limit 1,4
      --前三条
      select * from student limit 3
      
  2. 创建

    • create view - 视图
    • create trigger - 触发器
    • create procedure - 存储过程
      • 调用 - call 存储过程名
      • 定义存储过程时的约束 - in,out,inout
    • create index - 索引(主键索引、唯一索引、全文索引、组合索引)
    • drop - 删除以上对象
  3. 事物

    特征 - 原子性、一致性、隔离性、持久性

  • 权限

    可添加的权限 - all,select,insert,update,delete,create,grant option ,,,

    注意 - 不能添加revoke权限

  • 备份

    • mysqldump -u 账号 -p 密码 数据库名 > [路径]/文件名

      注意 - 备份的文件名的扩展名可以是 - txt,sql,doc等文本文件,一般为sql

  • 还原

    • mysql -u 账号 -p 密码 数据库名 < [路径]/文件名


879 字