美文网首页XXX是世界上最好的语言
mysql进阶操作基础篇(一)

mysql进阶操作基础篇(一)

作者: 堂哥000 | 来源:发表于2021-12-17 15:03 被阅读0次

    默认mysql字符串编码
    字符集:utfmb4
    排序规则:utf8mb4_general_ci → 该设置字段不区分大小写
    排序规则: utf8mb4_bin → 可识别字段内容的大小写

    --  建表语句
    CREATE TABLE product_name (
      id bigint NOT NULL AUTO_INCREMENT
      ,product_name varchar(200)   DEFAULT NULL
      ,create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
      ,update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
      ,PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    

    字段识别大小写设置

    • 建表时设置针对字段设置 product_name varchar(200) binary
    • 对整个表设置 COLLATE=utf8mb4_bin
    • 查询语句临时调用 select * from product_name where binary name like '%A%'

    基础语法

    1.表结构语法

    -- 表信息语法
    show databases; -- 显示数据库
    use demo; -- 进入demo库
    desc  demo.product_name;  -- 查看表结果
    show create table demo.product_name;  -- 查看建表语句
    explain select * from demo.product_name -- 查看运行顺序与资源
    

    2.表内容操作语法

    -- 查询
    select * from product_name_copy  where  name like '%a%';
    -- 数据库为设置区分大小写时使用
    select * from product_name_copy  where binary name like '%a%'; 
    -- 修改字段值
    update product_name set name="b大爷" where name like '%A%';
    
    -- 删除
    delete from product_name where  name = "b大爷";
    
    -- 增添
    insert into product_name(name) values("c大爷"),("d大爷"),("e大爷");
    insert into  product_name set name = "n大爷";
    insert into product_name(name) select name from product_name limit 1;
    
    -- 覆盖(根据主键选择更新还是覆盖原来的行操作)
    replace into  product_name(id,name)  select id , 'a复制大爷' as name from product_name limit 1;
    replace into  product_name(name)  select  name from product_name limit 1;
    
    -- 添加列
    ALTER TABLE product_name ADD create_time_bak TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
    
    -- 修改列名(注释也可)
    ALTER TABLE product_name CHANGE create_time_bak create_time_1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'  ;
    alter table product_name change name new_name varchar(20) ;
    alter table product_name change new_name name varchar(25) COMMENT '产品名';
    
    -- 删除列(慎用)
    ALTER TABLE product_name DROP COLUMN create_time_1
    
    -- 复制表(带数据)
    create table product_name_copy_1 as select * from product_name;
    -- 复制表(不带数据)
    create table product_name_copy_2 like product_name;
    

    相关文章

      网友评论

        本文标题:mysql进阶操作基础篇(一)

        本文链接:https://www.haomeiwen.com/subject/rnuvfrtx.html