zoukankan      html  css  js  c++  java
  • Mysql学习笔记

    1.创建数据库
      create database 数据库名称;
      create database 数据库名称 default character set utf8 collate utf8_general_ci; 设置数据库编码属性

    2.删除数据库
      drop database 数据库名称;

    3.使用数据库
      use 数据库名称;

    4.创建表
      create table 表名(
        列名 数据类型,
          ....
      );

    5.从数据库中删除表
      drop table 表名;

    6.常用数据类型
      int double float date char varchar timestamp ...

    7.设置表的约束
      1.主键约束 特点:唯一,不能为空
      创建表时,
        在数据类型后加 primary key
      表创建完时,
        alter table 表名 add constraint 约束名称 primary key (列名)
      2.外键约束
        一张表的某一列引用另一张表的主键的值,则设置为外键列
      表创建完时,
        alter table 表名 add constraint 约束名称 foreign key (列名) references 参考表名(列名)
      3.唯一约束
      创建表时,
        在数据类型后加 unique
      表创建完时,
        alter table 表名 add constraint 约束名称 unique (列名)
      4.非空约束
      创建表时,
        在数据类型后加 not null
      5.检查约束(对MySQL无效)
      创建表时,
        在数据类型后加 check(列名='值' or 列名='值')
      6.默认约束
      创建表时,
        在数据类型后加 default'值'

    8.对表的操作
      1.添加列
        insert into 表名 (列名....)values(值....); 添加部分列 值与对应列顺序,类型要匹配
        insert into 表名 vlaues(值....); 添加所有咧
      2.删除列
        delete from 表名; 删除所有
        truncate from 表名; 删除所有
        delete from 表名 where 条件; 删除符合条件的列
        truncate from 表名 where 条件; 删除符合条件的列
      truncate 与 delete 的区别:

        delete删除时要写入日志里,truncate不用,相比truncate,delete删除速度较慢
      3.修改列
        update 表名 set 列名=值,set 列名=值,...where 条件 ; 修改符合条件的列

    9.运算符
      1.关系运算符
        <,>,<=,>=,=,!=
      2.逻辑运算符
        and,or,not
      3.区间包含
        between 值1 and 值2 判断属于值1与值2之间,值1与值2包含在内
        in(值1,值2,值3...) 判断值在这之内
      4.模糊查询结合通配符
        like '值' 查找像某个值的
        通配符

           1.下划线 _ 通配一个字符
           2.百分号 % 通配多个字符
        例: like '_a' 查找第二个字母为a且以a结束
        like '_a%' 查找第二个字母为a
        like '%a%' 查找包含字母a
        5.是否为空 (没有值即空白,不代表为空;为空是不存在的意思)
          is null 为空
          is not null 不为空

    10.表的查询
      1.查询
        select * from 表名; 查询所有列
      2.给列与表起别名,用于联表查询时,区分列与列的重名,防止混淆
        select 列名 别名,列名 别名,列名 别名 from 表名 别名
      3.查询结果排序
        select * from 表名 order by 列名 asc; 升序(默认升序,asc可以省略)
        select * from 表名 order by 列名 desc; 降序
      4.消除重复项
        select distinct 列名 from 表名;
      5.分页查询
        select * from 表名 limit 起始记录,每页显示条数;
        起始记录=(当前页码-1)*每页显示条数;
        例: 总条数20条,每页显示4条,
          第一页
          select * from 表名 limit 0,4;
          第二页
          select * from 表名 limit 4,4;
          第三页
          select * from 表名 limit 8,4;
          ...以此类推
       6.条件查询
        select * from 表名 where 条件;
       7.子查询 当查询条件与查询内容不在同一张表时,把一个查询结果作为另一个查询的条件
          1.在...内
          select * from 表1 where 列 in(
            select 列 from 表2 where 条件
          );
          2.小于结果集中的最大值
          select * from 表1 where 列 any<(
            select 列 from 表2 where 条件
          );
          3.大于结果集中的最小值
          select * from 表1 where 列 any>(
            select 列 from 表2 where 条件
          );
          4.小于结果集中的最小值
          select * from 表1 where 列 all<(
            select 列 from 表2 where 条件
          );
          5.大于结果集中的最大值
          select * from 表1 where 列 all>(
            select 列 from 表2 where 条件
          );

      8.联表查询 当查询条件与查询内容不在同一张表时,需要关联表
        1.左联 显示左表1中的所有行,并把右表2中符合条件加到左表1中
        select * from 表1 left join 表2 on 联表条件;
        2.右联 显示右表2中的所有行,并把左表1中符合条件加到右表2中
        select * from 表1 right join 表2 on 联表条件;
        3.内联 显示表1与表2中符合条件的公共部分
        select * from 表 inner join 表 on 联表条件;
        4.全联 即把左联结果表 + 右联结果表组合在一起,然后过滤掉重复的
        select * from 表1 full outer 表2 on 联表条件;
      9.分组查询
        select 列 from 表 group by 列名 having 分组条件
        根据(by)一定的规则进行分组(Group)

    11.MySQL函数
      1.聚合函数
        count() 统计个数
        sum() 求和
        avg() 求平均值
        max() 求最大值
        min() 求最小值
      2.算术函数
        ceiling() 向上取整
        floor() 向下取整
        rand() 随机数
        rand(X) x不变时,返回随机数相同
        truncate(x,y) 截取,保留小数位 x为被截取数,y为保留小数位数
        round(x) 返回离x最近的整数(不同于数学上的四舍五入) 例:round(2.50)返回2,round(-2.50)返回-2,round(2.51)返回3,不好理解,反正碰到0.5直接抹去就好了
        round(x,y) 保留小数点后y位,并四舍五入
        pow(x,y) x的y次方
        mod(x,y) 等同于Java x%y
      3.字符串函数
        char_length(s) 返回字符串的字符数
        length(s) 返回字符串的字节数(MySQL中一个汉字3个字节,一个汉字一个字符)
        concat(s1,s2...)将多个字符串合并为一个字符串
        concat_ws('x',s1,s2..)合并时为每个字符串加x
        upper(s) 字符串s中的字母变大写
        lower(s) 字符串s中的字母变小写
      4.时间函数
        curdate() 返回当前日期
        now()与current-timestamp()返回当前日期与时间
        curtime() 返回当前时间
        month(d) 返回月份
        datediff(di,d2) 日期差,天数
        last-day(date) 获取当前月最后一天
        timestampdiff(x,s1,s2) 时间差 s2-s1 x为单位 day month year ...

     

  • 相关阅读:
    php连接mysql的三种方式和预处理下的sql注入
    报错注入原理学习
    学习BurpSuite半自动化盲注和一些小总结
    django项目实战
    docker出题和编写dockerfile
    Django零基础到项目实战
    爬虫之某古诗词网站
    [学习笔记] 左偏树入门
    [学习笔记] 自适应Simpson算法
    [题解向] [Luogu P2029]跳舞
  • 原文地址:https://www.cnblogs.com/qq634571685/p/7080059.html
Copyright © 2011-2022 走看看