• 第一章:初识MySQL


    第一章:初识MySQL

    什么是数据库?

    • 数据库:(Database,简称DB)
    • 概念:
      长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”
    • 作用:
      保存、管理数据

    数据库分类

    • 关系型数据库(SQL):
      MySQL、Oracle、SQL Server、SQLite、DB2
    • 非关系型数据库(NOSQL):
      Redis、MongoDB

    我们下载和安装的都是DBMS又叫数据库管理系统:
    数据库管理系统(Database Management System):
    数据管理软件,科学组织和存储数据、高效地获取和维护数据

    一,mysql简介

    • 概念:
      是现流行的开源、免费的关系型数据库
    • 特点:
      免费、开源数据库
      小巧、功能齐全
      使用便捷
      可运行于Windows或Linux操作系统
      可适用于中小型甚至大型网站应用
    MySQL的运行机制在这里插入图片描述

    下载安装可以看一下其他博主的博客,这就不再讲安装配置了。

    二,连接数据库

    1. 打开MySQL命令窗口
    2. 在DOS命令行窗口(cmd.exe)
    3. 在窗口中进入 安装目录\mysql\bin
    4. 连接数据库语句:mysql -h 服务器主机地址 –u 用户名 -p用户密码

    三,结构化查询语句分类

    名称解释命令
    DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等CREATE、DROP、ALTER
    DML(数据操作语言)用于操作数据库对象中所包含的数据INSERT、UPDATE、DELETE
    DQL(数据查询语言)用于查询数据库数据SELECT
    DCL(数据控制语言)用来管理数据库的语言,包括管理权限及数据更改GRANT、COMMIT、ROLLBACK

    我们经常使用的是DML和DQL

    命令行操作数据库:

    创建数据库:
    CREATE DATABASE [IF NOT EXISTS] 数据库名;
    删除数据库:
    DROP DATABASE [IF EXISTS] 数据库名;
    查看数据库:
    SHOW DATABASES;
    使用数据库:

    USE 数据库名;

    四,数据表的增删改查

    增:

    创建数据表模板如下,我们会一个一个属性的说:

     CREATE   TABLE [ IF NOT EXISTS ]    `表名`   (
        
            `字段名1`    列类型 [ 属性 ]  [ 索引 ] [注释] ,
            `字段名2`   列类型 [ 属性 ]  [ 索引 ] [注释] , 
             … …    
             `字段名n`   列类型 [ 属性 ]  [ 索引 ] [注释] 
    
    )  [  表类型 ] [ 表字符集 ] [注释] ;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意:表名和字段名是用反引号,用于区别MySQL保留字与普通字符而引入的。

    1.列类型:
    • 列类型:规定数据库中该列存放的数据类型
    • 可分为:
      • 数值类型
      • 字符串类型
      • 日期和时间型数值类型
      • NULL值
    数据类型:
    类型说明取值范围存储需求
    tinyint非常小的数据有符值: -27 ~ 27-1 无符号值:0 ~ 28-11字节
    smallint较小的数据有符值: -215 ~ 215-1 无符号值: 0 ~ 216-12字节
    mediumint中等大小的数据有符值: -223 ~ 223-1 无符号值: 0 ~ 224-13字节
    int标准整数有符值: -231 ~ 231-1 无符号值:0 ~ 232-14字节
    bigint较大的整数有符值: -263 ~263-1无符号值:0 ~264-18字节
    float单精度浮点数±1.1754351e -384字节
    double双精度浮点数±2.2250738585072014e -3088字节
    decimal字符串形式的浮点数decimal(m, d)m个字节

    我们常用的是int,bigint,decimal;

    字符串类型:
    类型说明最大长度
    char[(M)]固定长字符串,检索快但费空间, 0 <= M <= 255M字符
    varchar[(M)]可变字符串0 <= M <= 65535变长度
    tinytext微型文本串28–1字节
    text文本串216–1字节
    日期和时间型数值类型:
    类型说明取值范围
    DATEYYYY-MM-DD,日期格式1000-01-01~ 9999-12-31
    TIMEHh:mm:ss ,时间格式-838:59:59~838:59:59
    DATETIMEYY-MM-DD hh:mm:ss1000-01-01 00:00:00 至9999-12-31 23:59:59
    TIMESTAMPYYYYMMDDhhmmss格式表示的时间戳197010101000000 ~2037年的某个时刻
    YEARYYYY格式的年份值1901~2155

    我们常用的是datatime,和timestamp;

    NULL值

    我们可以理解为“没有值”或“未知值”,不要用NULL进行算术运算,结果仍为NULL。

    列类型设置:
    • UNSIGNED:
      无符号的
      声明该数据列不允许负数
    • ZEROFILL
      0填充的
      不足位数的用0来填充,如 int(3),5则为 005
    • AUTO_INCREMENT
      自动增长的,每添加一条数据,自动在上一个记录数上加1
      通常用于设置主键,且为整数类型
      可定义起始值和步长
    • NULL 和 NOT NULL
      默认为NULL,即没有插入该列的数值
      如果设置为NOT NULL,则该列必须有值
    • DEFAULT
      默认的
      用于设置默认值
      例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
    表列类型注释:

    示例:

     CREATE   TABLE [ IF NOT EXISTS ]    `test`   (
          `id`   int (11)  UNSIGNED  COMMENT   ‘编码号’
    )COMMENT=‘测试表’;
    
    • 1
    • 2
    • 3
    数据表的引擎选择:

    MySQL的数据表的类型:MyISAM、InnoDB 、HEAP、BOB、CSV等,我们常用的是MyISAM,和InnoDB。

    示例:

    CREATE TABLE  表名(
    	#省略一些代码
    ) ENGINE =  MyISAM(/InnoDB)
    
    • 1
    • 2
    • 3

    常见的MyISAM与InnoDB类型区别:

    名称MyISAMInnoDB
    事务处理不支持支持
    数据行锁定不支持支持
    外键约束不支持支持
    全文索引支持不支持
    表空间大小较小较大,约2倍

    使用MyISAM: 节约空间及相应速度
    使用InnoDB: 安全性,事务处理及多用户操作数据表

    设置表字符集
     CREATE TABLE  表名(
    	#省略一些代码
    )CHARSET  =  utf8;
    
    • 1
    • 2
    • 3

    索引我们回来拉出来单独讲解。

    删:

    语法:DROP TABLE [ IF EXISTS ] 表名

    IF EXISTS 为可选,判断是否存在该数据表
    如删除不存在的数据表会抛出错误

    改:
    • 修改表名

      ALTER TABLE 旧表名 RENAME AS 新表名

    • 添加字段

      ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]

    • 修改字段

      ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]

      ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]

    • 删除字段

      ALTER TABLE 表名 DROP 字段名

    查:

    语法:show tables;

  • 相关阅读:
    UE4 创建开始游戏界面UI
    Git常用命令总结(通俗易懂)
    Shadowing Japanese Unit 5
    React-View-UI组件库封装——Loading加载中
    pdf怎么调整大小kb?pdf文件过大这样压缩
    nginx的优化和防盗链
    dji uav建图导航系列()move_base
    Pandas性能优化:进阶篇
    6个使用的Python脚本
    《存储IO路径》专题:不同IO调度器的差异
  • 原文地址:https://blog.csdn.net/NoKris/article/details/126600556