MySQL

  1. 启动和关闭MySQL:cmd界面下net start/stop MySQL

  2. show databases;查看数据库

  3. create database [名称];创建数据库

  4. show tables查看数据库有哪些表

  5. desc [表名];查看表的结构

  6. select version();查看当前版本号;

  7. \c 表示中止

    DQL(查询语句):

    1. select [要查询的元素1,元素2] from [查询的表];

    2. select * from[];查询所有字段

    3. select [元素] as(可以省略) [别名] from [路径];起别名,只是将显示的列表的名字改了,如果别名有空格,需要用引号

    4. 字段可以采用数学表达式,别名是中文用单引号括起来

    5. 条件查询:

      1. select [字段1,字段2…] from [名称] where [条件]

    6. <>表示不等号(!=也是)

    7. between [] and []

    8. []>= and []<=[] 这两种方式都是查询之间的数字

    9. 在数据库中,null不能用=来查询,只能用is或者is not

    10. and 表示并发条件 or表示…

    11. in 和not in表示…

    12. like 模糊匹配,例如:like ‘%[条件]%’

    13. like [%元素]以元素结尾等等

    14. _代表一个字符

    15. select [元素1,元素2…] from [] order by [字段] (asc代表升序,desc代表降序)

    16. select lower([字段]) from []

    17. select substr([字段],起始位置(从1开始),截取长度) from [];

    18. length()

    19. trim();去除空格

    20. select [字面值]from []会显示许多行相同的字面值

    21. round([值],[保留位数])

    22. ifnull空处理函数

    23. null只要参与运算,最终结果肯定是null

    24. case ..when..then..when..then..else..end

    25. max(),min(),max(),avg(),count()

    26. count(*)统计总行数

    27. 分组函数不能运用在where

    28. select ...//第四步
      from...//第一步执行
      where...//第二步
      group by...//第三步
      order by...//第五步
      ​

      分组函数

    29. group by…having…二次过滤(优先选择where)

    30. select distinct [] from[];//distanct可以去重

    31. select
      ...
      from
      [表1,表2]
      where
      [条件]//92语法
    32. 内连接
      select
      ...
      from
      [表1]
      inner join
      [表2]
      on
      [表连接条件]
      where
      [进一步筛选条件]//99语法
    33. 自连接的技巧是一张表看成两张表,起个别名就行

    34. 外连接
      select
      ...
      from
      [表1]
      right outer join//表示将join右边的关键字看成主表,主要是为了将这张表的数据都显示出来
      [表2]
      on
      [表连接条件]
      where
      [进一步筛选条件]//99语法
    35. 多表连接
      select
      ...
      from
      [表1]
      join ..
      on..
      right outer join//表示将join右边的关键字看成主表,主要是为了将这张表的数据都显示出来
      [表2]
      on
      [表连接条件]
      where
      [进一步筛选条件]//99语法

    36. 子查询就是嵌套查询-

    37. union合并查询结果

      select []from
      union
      select...
    38. order by
      ...
      limit//表示排名
      [起始位置,截取个数]
      ​

    DDL(建表)

  8. create table 表名(
    字段1  数据类型
    字段2  数据类型
    字段3  数据类型
    );

  9. 数据类型:

    varchar 会自动分配空间

    char 不管实际数据长度,分配固定空间

    int

    bigint

    float

    double

    date

    datetime 长日期

    clob 字符大对象,用于存储文章说明等等

    blob 二进制大对象,专门存储声音,图像,视频等

  10. drop table if exists [];

DML(修改数据)

  1. insert into [表名(字段1,字段2...)] values(值1,值2..)

  2. name varchar(16) default ‘张三’//代表可以在创建表的时候设置默认值

  3. date_format:将date类型转换成具有一定格式的varchar字符串类型

  4. str_to_date将字符串varchar转换成date类型

  5. 短日期格式:%Y%m%d

  6. 长日期格式:%Y%m%d %h%i%s

  7. now()函数获取当前长时间

  8. update [] set [] =(...)

  9. delete [] from[]; //速度慢,支持回滚

  10. 快速创建表 create table [] as select …

  11. truncate删除效率高,但不支持回滚

  12. 删除表:drop table 表名;

  13. 约束

    not null非空约束

    unique唯一性约束,字段不能重复,但是可以是null

    primary ke(y主键约束

    foreign key外键约束

  14. 在创建的字段后面直接加就行了

  15. 复合主键 primarykey(字段1,字段2)

  16. 主键值一般都是数字,定长

  17. id int primarykey auto_increment//auto表示自动递增

  18. 外键约束(字段上的值都是父表里面存在的)

  19. create table t_class(
        classno int primary key,
        calssname varchar(255)
    );
    create table t_student(
        no int primary key auto_increment,
        name varchar(255),
        cno int,
        foreign key(cno) references t_class(classno)
    
    );
    

    删除的时候先删除子表再删除父表

    drop table if exists t_student;
    drop table if exists t_class;

  20. 事务

    一个事务就是一个完整的业务逻辑

    只有DML语句才和业务有关

    提交事务:commit

    回滚事务:rollback

    开启事务:start transaction

  21. 事务和事务之间的隔离级别有四个:

    (read uncomitted)读未提交:脏读

    (read comitted)读已提交:只能读到已经提交的数据,不可重复读

    (repeatable read)可重复读:只能读到刚开启事务的数据

    (serializable)序列化/串行化:解决所有问题,不能并发,效率低

  22. 创建索引和删除

    create index [索引名称] on 表名(需要添加索引的字段)
    
    drop index [索引名称] on 表名
    
    //查看是否使用了索引
    explain select * from [表名] where [条件];
    解释了查看一个语句是否使用了索引
    
    

  23. 创建视图

    create view [] as select ..
    //删除
    drop view []

  24. 数据导出

    mysqldump [表名]>路径\文件名 用户名 密码
    //导入
    source 路径 指定表名(可以省略)\文件名

  25. 设计范式:

    第一范式:要求任何一张表必须有主键,每一个字段原子性不可以再分

    第二范式:建立在第一范式的基础之上,要求所有的非主键字段完全依赖主键(多对多,三张表,关系表,两个外键)

    第三范式:建立在第二范式的基础之山,要求所有的非主键字段直接依赖主键(一对多,三张表,多的表加外键)

    一对一,外键唯一

    MySQL练习题

    select  S.Name,S.Money,School.name
    from
    stu S
    join
    (select Number,avg(Money) av_money from stu group by Number) as newp
    on
    S.Number=newp.Number and S.Money>newp.av_money
    join School
    on
    S.Number=School.Number
    group by S.Number;
    
    
    select
     	Name,Number
    from
    	stu
    order by
    	Money
    desc
    limit 1;
    
    
    select
    Money
    from
    stu
    where
    Money 
    not in(select a.Money from stu a join stu b on a.Money<b.Money );
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值