時光很短暫

导航

 

基本的SQL语句(重点)

1. 库
    #
    create database 数据库名;
    create database db1;
    create database db1 charset='utf-8';
    
    #
    show databases;
    show create database db1;
    
    #
    alter database db1 charset='gbk';
    
    # 删除
    drop database db1;
    

表的增删改查

'''前提:先选择数据库'''
1. 如何查看当前所在的库
select database();

2. 选择数据库:
    use db1;
3. 查看数据表
    show tables;
    show create table t1;  # 查看表的详细结构
    desc t1; # 查看表的详细信息
    
4. 创建数据表
    create table t1 (id int, name varchar(16));
5. 修改
    # modify只能修改数据类型,
    # change 
    alter table t1 modify name varchar(32);
    alter table t1 change name name1 varchar(64);
    
6. 删除
    drop table t1;

记录的增删改查

# 1. 查看
select * from t1;

# 2. 插入数据
insert into t1 (id, name) values  (1, 'ly'); # 单条数据
insert into t1 (id, name) values  (2, 'tom'), (3, 'kevin'); # 批量插入数据
insert into t1 values (4);
insert into t1 (name) value ('ly');

# 3. 修改数据
update t1 set name = 'LY' 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
    # 区别是:存储数据的范围不一样
    验证:默认情况带不带符号
    create table t5 (id tinyint);
    create table t5 (id int);
    insert into t5 (id) values (-129), (128);
    
    '''结论:默认带符号'''
    # 整型的存储大小取决于类型,而不取决于括号里面的数字,而字符串的话是取决于括号里面的数字
    varchar(32)
2. 浮点型
    # 小数点
    float(255, 30) # 代表总共255位,小数占30位
    
    double(255, 30) # 代表总共255位,小数占30位
    
    decimal(65, 30) # 代表总共65位,小数占30位
    
    create table t6 (id float(255, 30));
    create table t7 (id double(255, 30));
    create table t8 (id decimal(65, 30));
    
    # 插入数据
    insert into t6 values (1.11111111111111111111111);
    insert into t7 values (1.11111111111111111111111);
    insert into t8 values (1.11111111111111111111111);
    
    区别:
        精度不一样
        decimal > double > float
        
3. 字符串
    char(4)  # 
    # 字符串类型,存储的范围是4个字符,超过了直接报错,不超过按照4个字符存
    
    varchar(4)
    # 字符串类型,存储的范围是4个字符,超过了直接报错,不超过有几个存几个
    
    create table t9 (id int, name char(4));
    create table t10 (id int, name varchar(4));
    
    # 插入数据
    insert into t9 (id, name) values(1, 'kevin');
    insert into t10 (id, name) values(1, 'kevin');
    
    
4. 日期
    datetime       date     time     year
    年月日,时分秒   年月日   时分秒    年份
    create table t11 (id int, 
                      reg_time datetime, 
                      reg1_time date,
                      reg2_time time,
                      reg3_time year
                     );
    # 插入数据
    insert into t11 values(1, '2022-1-1 11:11:11', '2022-01-02', '11:11:11', '2022');
    
5. 枚举和集合
    枚举:多个里面选一个
    create table t12 (
        id int,
        gender enum('', '', 'other')
    );
    
    insert into t12 values (1, '');
    
    # 集合:多个里面选多个
    create table t13 (
        id int,
        hobby set('music', 'read', 'xj')
    );
    
    insert into t13 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. 配置文件修改

创建表的完整结构

create table 表名 (
        字段名1 数据类型 约束条件 约束条件 约束条件,
        字段名2 数据类型 约束条件 约束条件 约束条件,
        字段名3 数据类型 约束条件 约束条件 约束条件,
        字段名4 数据类型 约束条件 约束条件 约束条件
    );

'''
    注意事项:
        1. 字段名和数据类型是必填项
        2. 约束条件是可选的
        3. 在最后一个字段的后面不能加逗号
'''

 

 

posted on 2022-03-02 10:41  時光很短暫  阅读(31)  评论(0)    收藏  举报