0
点赞
收藏
分享

微信扫一扫

基本的SQL语及 增删改查 与类型

归零者245号 2022-03-11 阅读 75
数据库

1. 基本的SQL语句

1. 库的增删改查

        增:

              create database 数据库名字;
               create databaes aaa;

create database aaa charset=‘utf-8’; # 修改字符编码

查:

                show databases; # 查看所以数据库
                shou create database aaa;  查看指定的库
  改:

alter database aaa charset=‘gbk’ 修改字符编码

删除:

drop database aaa;

2. 表的增删改查 

前提:先选择数据库


        1. 如何查看当前所在的库        

select databases();

        2. 选择数据库或者切换都某个库
                use aaa;

        3. 查看数据表
                show  tables;  # 查看所有的表
                show create table t1; # 查看表的结构
 

        4.  创建数据表
                create table t1 (id int, name varchar(32));
 

        5. 修改
                modify 只能修改数据类型
                change   
                aiter table t1 modify name varchar(32);

                alter table t1 change name name1 varchar(64); 把name  改成name 1
 

        6. 删除
                drop table t1:

3. 记录的增删改查

        1. 查看
                select * from t1;
 

        2. 插入数据
                insert into t1 (id, name) values (1, ‘jason');  # 单条数据
                insert into t1 (id, name) values (2, tom),(3,tank); # 批量插入

         3. 修改数据
                updata t1 set name = ’AAA‘  where id=1; # 把这图表id为1的改成 AAA

        4. 删除数据
                delete from t1 where id=1; # 删除这个表id为1 的数据
                delete from t1; # 把这个表清空
                truncate t1;  # 也是把这个表清空  比上面找回数据容易一些

4. 存储引擎 

           

         存储数据的方式

         存储引擎决定存储数据的方式不同
        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 #  存储表结构的

 

5. 数据类型

        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 t1 (id int, gender enum(’男‘, ’女‘, ’other‘));

                insert into t1 values(1, ’男‘)
        

                集合; 多个里面选多个
                create table t1 (id int, hobby set(’music‘, ’read‘, ’xijiao‘));
                insert into t1 values(1, ’music‘);

 

        6. 严格模式

         查看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. 配置文件修改

        7. 创建表的完整结构
        

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

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

举报

相关推荐

0 条评论