今日学习总结3.1

一、基本的SQL语句(重要)

  1.库的增删改查

    1.增:create database 数据库名;

      create database db1;

      create database db1 charset=‘utf-8’;

    2.删:drop database db1;

    3.改:alter database db1 charset=‘gbk’;

    4.查:show databases;

      show create database db1;

  2.表的增删改查

    前提:先选择数据库

    1.如何查看当前所在数据库

      select database();

    2.选择数据库:

      use db1;

    3.查看数据表

      show tabales;

      show create table t1; 查看表的详细结构

      desc t1; 查看表的详细信息

    4.创建数据表

      create table t1(id int,name varchar(16));

    5.修改

      modify只能修改数据类型

      alter table t1 modify name varchar(32);

      alter table t1 change name name1 varchar(64);

    6.删除

      drop table t1;

  3.记录的增删改查

    1.查看

      select * from t1;

    2.插入数据

      insert into t1 (id,name)values(1,‘xcf’); 单条数据

      insert into t1 (id,name)values(1,‘xcf’),(2,‘tom’); 批量插入数据

      insert into t1 values(4);

      insert into t1 (name)valuse(‘xcf’);

    3.修改数据

      update t1 set name=‘xcf’ where id=1;

    4.删除数据

      delete from t1 where id=1;

      delete from t1;

      truncate t1; 清空表

二、存储引擎

  存储数据的方式

  存储引擎决定存储数据的方式不同

    MySQL提供了多种数据引擎

  查看所有的存储引擎

    show engines;

  1.MyISAM

    是mysql5.5及之前的版本默认存储引擎

    存储速度快,相对于InnoDB而言

    不支持事务,支持表

  2.InnoDB

    是mysql5.6之后的版本默认的存储引擎

    相对于MyISAM存储速度慢

    支持事务,行锁,外键 

  3.MEMORY

    数据存储在内存中,一单断电,数据立马丢失,或者数据重启也丢失

  create table t2(id int)engine=MyISAM;

  create table t3(id int)engine=InnoDB;

  create table t4(id int)engine=MEMORY;

 

  insert into t2(id)values(1);

  insert into t3(id)values(2);

  insert into t4(id)values(3);

    各个存储引擎的存储文件

    MyISAM的存储文件个数:

      1. .frm 存储数据的表结构

      2. .MYI 存储索引

      3. .MYD 存储表数据

    InnoDB的存储文件个数:

      1. .frm 存储表结构

      2. .ibd 存储数据和索引

    Memory的存储文件个数:

      1. .frm 存储表结构

三、数据类型

  1.整型

    tinyint,smallint,int,bigint

    区别是:存储数据的范围不一样

    默认带符号

    整型的存储大小取决于类型,而不是取决于括号里面的数字,而字符串的话是取决于括号里面的数字

    varchar(32)

  2.浮点型

    float(255,30) 代表总共255位,小数占30位

    double(255,30) 代表总共255位,小数占30位

    decimal(65,30) 代表总共65位,小数占30位

    create table t1 (id float(255,30));

    create table t2 (id double(255,30));

    create table t3 (id decimal(65,30));

    插入数据:

      insert into t1 values (1.11111111111111111111111);

      insert into t2 values (1.11111111111111111111111);

      insert into t3 values (1.11111111111111111111111);

    区别:精度不一样

       decimal > double > float

  3.字符串

    char(4)

    字符串类型,存储的范围是4个字符,超过了直接报错,不超过按照4个字符存

    varchar(4)

    字符串类型,存储的范围是4个字符,超过了直接报错,不超过有几个存几个

    create table t1 (id int, name char(4));

    create table t2 (id int, name varchar(4));

    插入数据

      insert into t1 (id,name)values(1,‘xxxccc’);

      insert into t2 (id,name)values(1,‘xxxccc’);

  4.日期

    datetime  年月日时分秒

    date 年月日

    time 时分秒

    year 年份

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

    插入数据

      insert into t1 values(1,‘2022-1-1 11:11:11’,‘2022-01-02’,‘11:11:11’,‘2022’);

  5.枚举和集合

    枚举:多个里面选一个

      create table t1(id int,gender enum(‘男’,‘女’,‘other’));

    集合:多个里面选多个

      create table t2(id int,hobby set(‘music’,‘red’,‘movie’));

      insert into t2 values(1,‘music’);

四、严格模式

  查看mysql的sql_mode

  show variables like ‘%mode%’;

  设置严格模式

    1.直接使用命令修改

      set global sql_mode=‘STRICT_TRANS_TABLES’;

      set global sql_mode=‘STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY‘;

    2.配置文件的修改

posted @ 2022-03-01 18:43  晨昏xcf  阅读(21)  评论(0)    收藏  举报