Mysql数据库学习总结【1】

数据库的介绍

  1. 数据库
    1. 数据库 :存储数据的仓库
    2. 数据库软件分类 :
      1. MySQL,Oracle,SQL Server,MongoDB,DB2,
        MariaDB,Redis…
      2. 分类 :
        根据数据的存储方式不同,划分为 :
        1. 关系型数据库
          采用标准化的行和列构建二维表存储数据,
          表与表之间的逻辑关联称为关系。
          MySQL, Oracle, SQL Server,DB2,MariaDB
        2. 非关系型数据库 (NoSQL-Not Only SQL)
          采用键值对的形式存储数据
          MongoDB,Redis(缓存)
      3. 如何选择
        1. 数据存储方式
        2. 是否开源 :
          开源 :MySQL MariaDB MongoDB
          闭源 :Oracle DB2 ,SQL Server
        3. 是否跨平台 :
          不跨平台 : SQL Server
          跨平台 :…
  2. 数据库与数据仓库
    数据库 :提供数据存储和数据操作的服务(DataBase)
    数据仓库 :存储海量数据,提供数据分析与挖掘
    (Data WareHouse - DW/DWH)

**

MySQL 数据库

**

  1. 关系型数据库 :
    1. 数据以二维表形式存储
    2. 表中的每一行,称为一条记录
    3. 表中的每一列,称为一个字段
    2.MySQL 安装

    1. Ubuntu :
      1. 安装服务端
      sudo apt-get install mysql-server
      2. 安装客户端
      sudo apt-get install mysql-client
      3. ubuntu 软件更新
      1. sudo apt-get update
      访问源列表中的所有网址,读取软件列表,保存
      到本地(/var/lib/apt/lists/)
      2. sudo apt-get upgrade
      把本地已安装软件与刚下载的软件列表进行对比
      如果当前软件版本低,则更新
      3. 修复依赖关系
      sudo apt-get -f install
      3.MySQL 语句规范
    2. 每一条命令以;结束
    3. SQL命令不区分大小写
    4. 使用/c终止当前命令
  2. 基本SQL命令

    1. 库的基本操作
      1. 查看已有库
        show databases;
      2. 创建数据库
        create database 库名; (默认字符集为Latin1)
        create database 库名 character set utf8;
        建库的同时指定字符集
      3. 查看创建库的语句(查看字符集)
        show create database 库名;
      4. 查看当前所在库
        select database();
      5. 使用已有库/切换数据库
        use 库名;
      6. 查看当前数据库中的所有表
        show tables;
      7. 删除数据库
        drop database 库名;
  3. 表的基本操作
    1. 创建表
    create table 表名(字段名 数据类型, 字段名 数据类型, 字段名 数据类型);
    2. 查看表的字符集
    show create table 表名;
    3. 查看表结构(表中包含哪些字段)
    desc 表名;
    4. 删除表
    drop table 表名;

  4. 表记录管理
    1. 插入记录
    insert into 表名 values (字段值,字段值),(字段值,字段值);
    指定字段插入数据:
    insert into 表名(字段1,字段2) values(字段值,字段值);
    2. 查询记录
    select * from 表名; (查询所有数据)
    select 字段名,字段名 from 表名; (查询指定字段)
    指定查询条件
    select * from 表名 where 条件;

  5. 更改数据库默认字符集
    1. 方法 :修改数据库的配置文件
    2. 步骤 :
    1. 获取root权限
    sudo -i
    2. cd /etc/mysql/mysql.conf.d/
    3. 文件备份(必须执行)
    cp mysqld.cnf mysqld.cnf.bak
    4. 修改配置文件
    subl mysqld.cnf
    找 :
    [mysqld]
    添加
    character_set_server = utf8
    5. 保存文件,重启服务
    sudo /etc/init.d/mysql restart
    Mac :
    /etc/my.cnf

  6. 客户端的连接与断开
    连接 : mysql -h主机名 -u用户名 -p密码
    只有连接成功,才可以使用数据库服务,书写
    SQL语句
    断开 :
    exit; | quit; | \q;
    断开与客户端的链接,并不会结束服务
    结束服务使用 :
    sudo /etc/init.d/mysql stop

  7. 数据类型

    1. 数值类型
      1. 整数
        1. int (大)整型 (占据4个字节)
          取值范围 :
          无符号整型(unsigned) :0 ~ 2(32)-1
          有符号整型(signed 默认为有符号) : -2(31)~2(31)-1
        2. tinyint 微小整型 (占据1个字节)
          有符号整型 :-128 ~ 127
          无符号整型 :0 ~ 255
          例 :
          age tinyint unsigned
        3. smallint 小整型 (占据2个字节)
        4. bigint (极)大整型 (占据8个字节)
      2. 浮点数
        1. float (4个字节,最多表示小数点后7位)
          用法 :
          字段名 float(m,n)
          m表示总位数,n表示小数位的位数
        2. double(8个字节,最多表示小数点后15位)
        3. decimal 最多表示到小数点后28位
          用法 :
          decimal(m,n)
        4. 浮点型使用注意 :
        5. 如果插入的是整数数据,小数位会自动补0
        6. 如果插入数据的小数位超出指定位数,会自动
          四舍五入
        7. 整数位超出限制,插入失败
    2. 字符类型
      1. 定长 char(长度)
        长度取值范围 :1 ~ 255

      2. 变长 varchar(长度)
        长度取值范围 :1 ~ 65535
        定长与变长的区别 :
        定长 :根据指定的长度固定分配存储空间
        char(10)
        存储’a’,也要分配10个字符的空间
        优点 :效率高,速度快
        缺点 :浪费存储空间

        变长 :在不超过指定长度的情况下,动态分配存储
        空间
        varchar(10)
        存储’a’,动态根据数据的字符长度分配空间
        优点 :节省存储空间
        缺点 :效率比定长存储要低
        共同点 :
        给出的长度,就是最大输入的字符数,超出则
        无法存储
        例 :
        name varchar(10)
        “wangzhaojun” 超出无法存储

      3. 长文本存储
        text
        longtext (4G)

      4. 二进制数据存储
        blob
        longblob (4G)

      5. 数值类型的显示宽度与字符型的最大字符数
        int(11) 显示宽度与存储空间无关
        借助zerofill关键字,查看整型的显示宽度
        例 :
        id int(5) zerofill
        存储数据 :
        insert … (5) ->显示00005
        insert … (1234567) -> 显示1234567
        insert … (123456789012345):
        error : 超过了当前数据类型的表示范围
        int unsigned : 2(32) - 1 (42亿多)

         char(10)设置数据的存储空间,超出则无法存储
        
    3. 枚举类型
      1. enum 类型 (表示单选)
      枚举是一个字符串对象,可以将一些
      不重复的字符串存储成一个预定义的集合,字段存储
      数据时,必须从集合中选择,不在集合范围的都是非法值
      2. set 类型 (实现多选)
      特殊的枚举类型,用法与enum一致,提供字符串类型
      的集合(选项)

猜你喜欢

转载自blog.csdn.net/weixin_43760712/article/details/86550730