• MySQL中的表操作,配置文件,储存引擎,数据类型


    MySQL中的表操作

    1 查库(已密码登陆mysql)

    show databases;


     2 添加库

     create database t1;


     3 表操作

     1选定操作库

    use t1

    2在库里添加表格式

    create table t1(id int, name varchar(32), gender varchar(32),age int);

     3往表里添加具体元素

    insert into t1 values(1, 'kevin', 20,20);

     4往表里添加多组数据

    1. insert into t1 values(2, 'kevin1', 20,20),(3, 'kevin2', 20,20),(4, 'kevin3', 20,30),(5, 'kevin4', 20,20),(6, 'kevin5', 20,20);

     


    4 修改表中数据

    1修改单个值

     update t1 set name='tank' where id=1;

    2把表中2个不同的值改为1个

     update t1 set name='oscar' where name='kevin3' or name='kevin4';

     


     3修改所有值为同一值(危险操作)

    update t1 set name='tony';

    5 删除表数据

    1. delete from t1 where id=1;
    2. delete from t1 where id=2 or id=7;
    3. delete from t1; # 这是清空表

    6 流程一览 

    1. C:\Users\艾森豪>mysql -u root -p # 先登录
    2. mysql> show databases; # 查看所有库
    3. mysql> create database db1; # 创造库
    4. mysql> use db1; # 引用这个db1
    5. mysql> show tables; # 查看所有表
    6. mysql> create table t1(id int,name varchar(3),age int); # 创造表
    7. mysql> show tables; # 看是否创造表成功
    8. mysql> insert into t1 values(1,'zhoujiaqi',21); # 插入记录
    9. mysql> select * from t1; # 查看所有记录

    MySQL配置文件的使用

    1. """mysql的配置文件是:my-default.ini"""
    2. # 修改了配置文件,一定别忘了重启服务端才能生效
    3. """把一下内容加到配置文件中"""
    4. [mysqld]
    5. character-set-server=utf8
    6. collation-server=utf8_general_ci
    7. [client]
    8. default-character-set=utf8
    9. [mysql]
    10. default-character-set=utf8

    MySQL存储引擎的使用(理论,重要)

    存储引擎就是存储数据的方式!

    MySQL支持多少种存储引擎方式
    1. 如何查看存储引擎
    show engines;
    """一共九种存储引擎,重点学习:MyISAM MEMORY InnoDB"""
    MyISAM:
        它是MySQL5.5版本及之前的版本默认的存储引擎、它的读取速度很快相比较与InnoDB,但是它的数据安全性较低,相对于InnoDB存储引擎
        """不支持事务、支持的是表锁"""
    InnoDB:
        它是MySQL5.6及之后的版本默认的存储引擎、它的读取速度相对慢一些,但是数据的安全性较高一些
        """它支持:事务、行锁、外键"""
    MEMORY:
        它是基于内存存储的,意味着断电数据丢失、重启服务端数据就丢失

    1. # 演示
    2. create table t2 (id int, name varchar(64)) engine=MyISAM;
    3. create table t3 (id int, name varchar(64)) engine=InnoDB;
    4. create table t4 (id int, name varchar(64)) engine=MEMORY;

    对于不同的存储引擎,硬盘中保存的文件个数也是不一样的

    对于不同的存储引擎,硬盘中保存的文件个数也是不一样的
    MyISAM:3个文件
            .frm 存储表结构
            .MYD 存储的是表数据
            .MYI 存索引(当成是字典的目录,加快查询速度)
    InnoDB:2个文件
            .frm 存储表结构
            .ibd 存储数据和索引
    MEMORY:1个文件
            .frm 存储表结构 

    MySQL数据类型

    1 整型: 存储整数的

    整型: 存储整数的
        tinyint smallint int bigint 
        # 不同的数据类型区别就是所存储的范围不一样


        tinyint: 它是使用一个字节来保存数据,

        一个字节代表8位 11111111--->256种情况(0-255) (-128-127)


        smallint:2个字节, 代表16位, 65536(0-65535) (-32768-32767)
        mediumint: 3个字节
        int: 4个字节,2**32=42....(-21...- 21...)
        bigint:8个字节(最大的) 可以存手机号(11)
     

        怎么选数据类型:看你这一列存什么数据
          比如:age int
        
        整型默认情况下带不带符号?
            create table t5 (id tinyint);
            insert into t5 values(256);
        结论是:带符号的,所有的整型默认都是带符号的 减半
        怎么样去掉符号
        create table t6 (id tinyint unsigned);

    2 浮点型

    float   double   decimal


        float(255, 30) # 总位数是255位、小数点后60位
        double(255, 30) # 总位数是255位、小数点后60位
        decimal(65, 30) # 总位数是255位、小数点后60位
        
       他们三个区别是什么呢?
        create table t7 (id float(255, 30));
        create table t8 (id double(255, 30));
        create table t9 (id decimal(65, 30));
        
        
        insert into t7 values (1.11111111111111111111111111);
        insert into t8 values (1.11111111111111111111111111);
        insert into t9 values (1.11111111111111111111111111);
        结论:

        三者的精确度不一样:decimal   >>>   double   >>>  float(精确到7位了)
        以后到底是选哪个更好呢
        多年的经验来看,大家都选decimal

    3 字符串(重要)

        
        char(4): 定长类型,超出4位,就报错,不够4位,使用空格填充   abc helloworld
        varchar(4): 可变长类型,超出4位,报错,不够4位的,有几位存几位 abc a
        
        create table t10 (id int, name char(4));
        create table t11 (id int, name varchar(4));
        
        insert into t10 values(1, 'jerry');
        insert into t11 values(1, 'jerry');
        
        如果你想超出范围之后,直接报错,需要设置严格模式!!!


        sql_mode
        show variables like "%mode%";


        设置严格模式


        1. 命令行模式:临时修改
        set global sql_mode='STRICT_TRANS_TABLES'; # 不区分大小写
        2. 配置文件修改:永久修改
        
        研究定长和不定长
        create table t12 (id int, name char(4));
        create table t13 (id int, name varchar(4));
        
        insert into t12 values(1, 'ke');
        insert into t13 values(1, 'ke');
        
        验证是否补充了空格
        select char_length(name) from t12;
        select char_length(name) from t13;
        
        默认情况下,没有对char类型填充空格,如果想看填充了空格,需要设置严格模式


        设置严格模式


        1. 命令行模式:临时修改
        set global sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH'; # 不区分大小写
        
        2. 配置文件修改:永久修改

    4 日期

    date           datetime          time           year
    年月日      年月日 十分秒      十分秒          年

    create table t14 (
        id int, 
        reg_time date, 
        reg1_time datetime, 
        reg2_time time, 
        reg3_time year
    );

    insert into t14 values(1, '2023-10-1', '2023-11-11 11:11:11', '11:11:11', 2023);
     

    5 枚举 

     多选一
        enum
        create table t15 (id int, hobby enum('read', 'music', 'tangtou', 'xijio'));
        insert into t15 values(1, 'read');
        
        
       多选多:包含多选一


        set
        create table t16 (id int, hobby set('read', 'music', 'tangtou', 'xijio'));
        insert into t16 values(2, 'read,music1');

    END


  • 相关阅读:
    深度学习参数初始化(一)Xavier初始化 含代码
    在ubuntu上使用vscode+gcc-arm-none-eabi+openocd工具开发STM32
    Groovy闭包与数组遍历
    梦想CAD控件,CAD插件,网页CAD 2022.06.22更新
    Linux 应用程序CPU调度优化
    如何制作自动输入短信验证码?
    拿走不谢!头条上最细的SpringCloudAlibaba全彩版笔记开源
    【区分vue2和vue3下的element UI Message 消息提示组件,分别详细介绍属性,事件,方法如何使用,并举例】
    CLR Via 读书笔记
    科大讯飞算法笔试1028
  • 原文地址:https://blog.csdn.net/qq_38104453/article/details/133997532