10.23 知识总结( 针对记录的SQL语句、数据类型、存储引擎的使用)

一、 针对记录的SQL语句

     id   name    age    gender
       1    kevin   20     male

  1.1 查看记录 

select * from t1; # 查所有

1.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填充

1.3  修改

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

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

1.4 删除

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

二、 配置文件的使用

 """mysql的配置文件是:my-default.ini"""
# 修改了配置文件,一定别忘了重启服务端才能生效
"""把一下内容加到配置文件中"""

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

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

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

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

一共九种存储引擎,重点学习:MyISAM MEMORY InnoDB

  3.2  MyISAM

它是MySQL5.5版本及之前的版本默认的存储引擎、它的读取速度很快相比较与InnoDB,但是它的数据安全性较低,相对于InnoDB存储引擎

  3.3 InnoDB

它是MySQL5.6及之后的版本默认的存储引擎、它的读取速度相对慢一些,但是数据的安全性较高一些.

演示:

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 存储表结构

四、数据类型(重要)

    4.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)

每日一问:整型默认情况下带不带符号?

带符号的,所有的整型默认都是带符号的 减半

怎么样去掉符号?

create table t6 (id tinyint unsigned);

 4.2  浮点型

    float   double   decimal
    float(255, 30) # 总位数是255位、小数点后60位
    double(255, 30) # 总位数是255位、小数点后60位
    decimal(65, 30) # 总位数是255位、小数点后60位

4.4 字符串(重要)

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

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

设置严格模式

  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;

4.5 日期

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

4.6  枚举

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

你可能感兴趣的:(sql,mysql,数据库)