• 数据类型与SQL语句


    针对记录的SQL语句

    记录:表中的一行一行的数据称之为是一条记录

    # 需要先有库、在有表、最后操作记录

    id   name    age    gender
    1    kevin   20     male

    1、查看记录

    select * from t1; # 查所有

    2、增加数据

    1.     insert into t1 values(1, 'kevin', 20); # 第一种方式,全字段增加, 单条增加
    2.     insert into t1 values(2, 'kevin1', 20),(3, 'kevin2', 20),(4, 'kevin3', 20),(5, 'kevin4', 20),(6, 'kevin5', 20); # 第二种方式,全字段增加, 批量增加
    3.     insert into t1(id, name) values(7, 'kevin7'); # 空的使用NULL填充


        
    3、修改

    1. update t1 set name='tank' where id=1;
    2. update t1 set age=30 where name='tank';
    3. update t1 set name='jerry',age=30 where id=3;
    4. update t1 set name='oscar' where name='tank' and age=30;
    5. update t1 set name='oscar' where name='kevin3' or name='kevin4';
    6. update t1 set name='tony';

    """以后再自行更新和删除的sql语句的时候,一定要细心、好好看看你的条件是否正确"""


    案例:
            update t1 set age=age+40 where id=1;
            update t1 set price=price+10;
     """一定要谨慎!!!!"""


    4、删除

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

    配置文件的使用

    将默认编码修改为utf-8

    步骤:

    1.找到配置文件:my-default.ini

    2.复制一份,命名为:my.ini

    3.将以下内容写入文件

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci


    [client]
    default-character-set=utf8


    [mysql]
    default-character-set=utf8

    4.保存即可

    存储引擎的使用

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

    MySQL支持多少种存储引擎方式

    如何查看存储引擎:

    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;

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

    数据类型(重要)

    1、整型: 存储整数的类型

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

    1.     tinyint: 它是使用一个字节来保存数据,一个字节代表811111111--->256种情况(0-255) (-128-127)
    2.     smallint:2个字节, 代表16位, 65536(0-65535) (-32768-32767)
    3.     mediumint: 3个字节
    4.     int: 4个字节,2**32=42....(-21...- 21...)
    5.     bigint:8个字节(最大的) 可以存手机号(11)


        """怎么选数据类型:看你这一列存什么数据"""
        比如:age int

    1. ## 整型默认情况下带不带符号?
    2. create table t5 (id tinyint);
    3. insert into t5 values(256);
    4. 结论是:带符号的,所有的整型默认都是带符号的 减半
    5. # 怎么样去掉符号
    6. 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位 

    三者的精确度不一样:decimal   >>>   double   >>>  float(精确到7位)
        # 以后到底是选哪个更好呢
        decimal



    3、字符串(重要)

    char(4): 定长类型,超出4位,就报错,不够4位,使用空格填充   abc helloworld
    varchar(4): 可变长类型,超出4位,报错,不够4位的,有几位存几位 abc a    

    1. create table t10 (id int, name char(4));
    2. create table t11 (id int, name varchar(4));
    3.     
    4. insert into t10 values(1, 'jerry');
    5. insert into t11 values(1, 'jerry');
    6.     


        """如果你想超出范围之后,直接报错,需要设置严格模式!!!"""

    1. sql_mode
    2. show variables like "%mode%";

    # 设置严格模式
        1. 命令行模式:临时修改
        set global sql_mode='STRICT_TRANS_TABLES'; # 不区分大小写


        2. 配置文件修改:永久修改


    ## 研究定长和不定长

    1. create table t12 (id int, name char(4));
    2. create table t13 (id int, name varchar(4));
    3.     
    4. insert into t12 values(1, 'ke');
    5. insert into t13 values(1, 'ke');

    ## 验证是否补充了空格

    1. select char_length(name) from t12;
    2. 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
    年月日      年月日 十分秒      十分秒          年

    1. create table t14 (
    2.     id int
    3.     reg_time date
    4.     reg1_time datetime, 
    5.     reg2_time time
    6.     reg3_time year
    7. );
    8. insert into t14 values(1, '2023-10-1', '2023-11-11 11:11:11', '11:11:11', 2023);

    5、枚举


    # 多选一

    1. # enum
    2. create table t15 (id int, hobby enum('read', 'music', 'tangtou', 'xijio'));
    3. insert into t15 values(1, 'read');


        
    # 多选多:包含多选一

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

  • 相关阅读:
    08-Redis 【哨兵挂了,redis 还能正常工作吗?】
    vscode快捷键设置
    SpringBoot相关知识点
    .net餐厅管理系统数据层OperServer服务类
    研究生综合英语上第五单元
    IMX6ULL + SPI LCD(驱动IC ILI9341)显示简单的QT界面
    LeetCode 第6题:Z字形变换(Python3解法)
    【图论 树 深度优先搜索】2246. 相邻字符不同的最长路径
    什么是黑盒测试
    【论文整理1】On the Continuity of Rotation Representations in Neural Networks
  • 原文地址:https://blog.csdn.net/m0_71115526/article/details/133990031