zoukankan      html  css  js  c++  java
  • 数据库(mysql)相关知识

     

    单表查询

     

    排序

     
    升序
     
    1. select*from表名 order by字段 asc;
     
    降序
     
    1. select*from表名 order by字段 desc;
     

    条件查询(包括通配符)

     
    where语句
     
    1. select*from表名where字段=内容;
    2. select*from表名where字段>=内容and字段<=内容;
    3. select*from表名where字段 between 内容1and内容2
     
    in 语句
     
    1. select*from表名where字段=内容1or字段=内容2;
    2. select*from表名where age in(内容1,内容2);
     
    判定字段是否为空
     
    1. select*from表名where字段isnull;//判定字段为空
    2. select*from表名where字段isnotnull;//判定字段不为空
     
    not语句
     
    1. select*from表名where字段noin(内容1,内容2);//除了内容1和内容2外的其他内容
     
    and or 优先级(and>or)
     
    1. select*from表名where条件1and条件2or条件3
    2. select*from表名where条件1and(条件2or条件3);
     
    like 模糊查询
     
    1. select*from表名where字段 like '%内容%'
    2. select*from表名where字段 like '内容%';
    3. select*from表名where字段 like '%内容';
    4. select*from表名where字段 like '_内容%';//_:下划线是匹配一个任意字符
    5. select*from表名where字段 like '%内容_';//最后第二个字符是内容
     

    分组查询(常用mysql函数)

     
    group by:将查询结果按照1个或多个字段进行分组,字段值相同的为一组
     
    1. select*fromwhere表名groupby内容1,内容2,内容3......;
     
    group_concat(字段名)可以作为一个输出字段来使用
     
    1. select字段1,group_concat(字段2)from表名groupby字段3或字段1或字段2
     
    group by + 集合函数(avg,count用法一样)
     
    1. select字段1,avg(字段2)from表名groupby字段3
    2. select字段1,count(字段2)from表名groupby字段3
     

    子查询(操作符:=、>、<、>=、<=、<>、any、in、some、all、exists)

     
    1. select*from表名1where字段操作符(select字段1from表名2where条件);
     

    分页

     
    limit函数
     
    1. select*from表名 limit 0,n;//取前n条数据
    2. select*from表名 limit n;//取前n条数据
    3. select*from表名 limit n,m;//取第(n+1)到(n+m)条数据
     

    复制一张表到另一张表中去

     
    两张表的字段相同(主键不要有相同内容)
     
    1. insert *from表名1(表名2);
     
    两张表的字段不相同(主键不要有相同内容)
     
    1. insert into表名1(字段1,字段2,字段3......)(select字段1,字段2,字段3......from表名2);
     

    多表查询(连接查询)

     
    交叉连接 cross join(结果集将包括两个表中的所有行)
     
    1. select*from表名1 cross join 表名2;
     
    内连接 inner join(只返回两个表中联结字段相等的行)
     
    1. select* form 表名1 inner join 表名2 on 表名1.字段=表名2.字段;
     
    左连接(返回包括左表中的所有记录和右表中联结字段相等的记录 )
     
    1. select*from表名1 left join 表名2 on 表名1.字段=表名2.字段;
     
    右连接(返回包括右表中的所有记录和左表中联结字段相等的记录)
     
    1. select*from表名1 right join 表名2 on 表名1.字段=表名2.字段;
     
    外连接 outer join(外连接就是求两个集合的并集,另外MySQL不支持OUTER JOIN,可以用左连接和右连接的结果做UNION操作来实现)
     
    1. select*from表名1 left join 表名2 on 表名1.字段=表名2.字段
    2. union
    3. select*from表名1 right join 表名2 on 表名1.字段=表名2.字段;
     

    索引

     
    mysql索引有哪些
     
    1. 主键索引,唯一索引,聚集索引
     
    常见(常用)的有哪些
     
    1. 主键索引,唯一索引
     

    区别

     
    主键索引
     
    1. 唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。
     
    唯一索引
     
    1. 数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。(多列也可以作为主键),主键索引是唯一索引的特定类型。因为唯一索引要求索引列的值不能相同,而主键也都不相同,主键用来区分不同记录,当然不能重复。故主键索引是唯一索引的特殊形式。
    2. 主键索引是数据库自动建立的,只要指定了主键,数据库就会自动创建主键索引。
     
    聚集索引
     
    1. 聚集索引中表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
     
    基本语句
     
    1. alter from表名 add index 索引名;//添加索引
    2. show index from表名;//查询索引
    3. drop index 索引名 on 表名;//删除索引
    +
     
     2018-05-07 18:08 字数 2222 阅读 18
  • 相关阅读:
    21322
    9-1
    作业五1
    作业五2
    实验9-2
    作业4函数应用
    实验九 1
    实验八 数组2 输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组,程序运行效果如下
    实验八 (调试)
    实验6剩余部分
  • 原文地址:https://www.cnblogs.com/HYJ0201/p/9005032.html
Copyright © 2011-2022 走看看