mysql基础笔记

122 阅读2分钟

SQL一千行sql命令查询

SQL分类:
    1) ddl【definition】:数据定义语言,定义数据库对象【数据库//列】等。create, drop, alter2) dml【manipulation】:数据操作语言,对表进行增删改,insert, delete, update3) dql【query】:数据查询语言,【查询】,select, where4) dcl:

数据库架构

image.png

ddl:操作数据库/表

1. 操作数据库:c-r-u-d
    1) create:创建
        * 创建数据库:
            create database 数据库名; 
        * 创建数据库,判断不存在,再创建:
            create database if not exists 数据库名;
        * 创建test数据库,判断是否存在,并制定字符集为gbk:
            create database if not exists test character set gbk;
            
    2) retrieve:查询
        * 查询所有数据库的名称:
            show databases;
    
    3) update: 修改
        * 修改数据库的字符集:
            alter database 数据库名 character set 字符集名称
            
     4delete:删除
         * 删除数据库:
             drop database 数据库名
         *判断数据库存在,存在再删除:
             drop database if exists 数据库名
             
2. 操作表:c-r-u-d
    1) create:创建表
        * create table 表名 (
            列名 数据类型,
            列名 数据类型,
            ......
            列名 数据类型
        );
        注意:最后一项不需要加逗号。
        数据类型:int,double,date,datetime,timestamp,varchar
    
        * 复制表:create table 表名 like 被复制的表名;
        
    2) retrieve:查询
        * 查询某个数据库中所有表的名称:
            show tables;
        * 查询表结构
            desc 表名
    
     3) update: 修改
         *修改表名:
             alter table 表名 rename to 新的表名;
         *添加一列:
             alter table 表名 add 列名 数据类型;
         *修改列名称、列的数据类型:
             alter table 表名 change 列名 新列名 新列的数据类型;
             alter table 表名 modify 列名 列的数据类型;
         *删除列:
             alter table 表名 drop 列名;
         *修改表的字符集:
             alter table 表名 character set 字符集名称;
       
      4) delete:删除
          *删除表:
              drop table 表名;
          *判断存在删除表
              drop table if exists 表名;  
              

dml:增删改表中数据

1. 添加数据
    * insert into 表名 (列名,列名2,...,列名n)values(值,值2,...,值n);
    **注意:列名和值要一一对应。

2. 删除数据
    * delete from 表名 [where 条件]
    # 如果不加条件,则删除表中所有记录。
    # 如果要删除所有记录,推荐使用truncate table 表名;不推荐使用delete from table 表名。
    
3. 修改数据
    * update 表名 set 列名1=1,列名2=2,...[where 条件];
    # 如果不加条件,则会修改表中所有记录。
    

dql :查询表中记录

1. 基础语法:
    * select 字段 from 表名 where 条件 group by 分组字段 
    having 分组之后的条件 order by 排序 limit 分页限定;

* 执行顺序:from——where——group by——having——select——order by——limit

    1)基础查询
        *去除重复:distinct
    2)条件查询:where+条件
        *like模糊查询:_单个任意字符,%多个任意字符
    3)省略
        

杂七杂八

如何计算用户留存率 用户留存理解

SQL如何求解用户连续N天登录

2021新函数filter 和unique 去除重复计数

行列转换