MySQL记录相关的基本操作

针对记录的SQL语句

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

我们在记录之前需要先有库,再有表,最后操作记录

如果我们需要得到以下的数据我们需要以下几步
id   name    age    gender
1    kevin   20     male

1.创建一个表

        create table t1(id int,name char(16), age int, gender char(16));

2.查看记录

        select * from t1;查看t1表下的所有数据

3. 增加数据

        insert into t1 values(1,'star',20,'male');

4.修改

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

       可以修改同一条数据的多个值

        update t1 set name='jerry',age=20 where id=3;

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

         update t1 set name='oscar' where name='tank' and age=30;

5.删除

        delete from t1 where id=1;

        delete from t1 where id=2 or id=7;

        delete from t1;  # 这是清空表

配置文件的使用

my-default.ini
ini结尾的一般都是配置文件

程序启动会先加载配置文件中的配置之后才真正的启动

[mysqld]  # 一旦服务端启动立刻加载下面的配置
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]  # 一旦客户端启动立刻加载下面的配置
...
[client]  # 其他客户端

 需要你自己新建一个my.ini的配置文件

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

注意:修改配置文件后一定要重启服务才能生效

            统一编码的配置无需掌握直接copy即可

存储引擎的使用

我们可以通过 show engines;来查看自己所装的MySQL支持多少种存储引擎

MyISAM:
    它是MySQL5.5版本及之前的版本默认的存储引擎、它的读取速度很快相比较与InnoDB,但是它的数据安全性较低,相对于InnoDB存储引擎
    """不支持事务、支持的是表锁"""
InnoDB:
    它是MySQL5.6及之后的版本默认的存储引擎、它的读取速度相对慢一些,但是数据的安全性较高一些
    """它支持:事务、行锁、外键"""
MEMORY:
    它是基于内存存储的,意味着断电数据丢失、重启服务端数据就丢失

演示

create table t2 (id int, name varchar(64)) engine=MyISAM;
create table t3 (id int, name varchar(64)) engine=InnoDB;
create table t4 (id int, name varchar(64)) engine=MEMORY;

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

MyISAM:3个文件
        .frm 存储表结构
        .MYD 存储的是表数据
        .MYI 存索引(当成是字典的目录,加快查询速度)
InnoDB:2个文件
        .frm 存储表结构
        .ibd 存储数据和索引
MEMORY:1个文件
        .frm 存储表结构

数据类型

1. 整型: 存储整数的

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)

整型默认情况下带符号

create table t5 (id tinyint);
insert into t5 values(256);

怎么样去掉符号

create table t6 (id tinyint unsigned);

2. 浮点型

 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位了)

字符串

char(4): 定长类型,超出4位,就报错,不够4位,使用空格填充   abc helloworld

varchar(4): 可变长类型,超出4位,报错,不够4位的,有几位存几位

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');

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

设置严格模式

1. 命令行模式:临时修改

set global sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH';

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

日期

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);

枚举

# 多选一
    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');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值