A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 巴拉巴拉x 初级黑马   /  2018-5-9 15:55  /  390 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-5-11 09:57 编辑

MySQL重点

操作数据库表中的记录添加表的记录

  • 语法
    • insert :可以插入所有字段,也可以插入某个字段
    • insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
    • insert into 表名 values(所有列的值,每个值中间用,隔开);
    • ==注意事项==
      • 值的类型要与数据库中表的字段类型要一致.
      • 值的顺序要与数据库表中列的字段的顺序要一致
      • 值的最大长度不能超过列设置的最大长度
      • 值的具体类型是字符串或者日期类型,要使用 '' 引用.



问题
  • 长度是不是位数?
    • 不是位数,是字符数,具体每个字符占多少位看是数字字符还是字母和汉字

  • 如果删除一条记录,那auto_increment产生的key值会不会发生改变?
    • 不会发生改变!!
    • 而且再加入新的记录,也会在最后一个的值上,继续增加,不会去填前面删除的那个.
    • 如果指定自动增长属性的字段值是已经删除了的,就可以添加成功,如果没有删除,会添加失败.


修改表的记录

  • update 表名 set 列名=值,列名=值[where 条件].
  • ==注意事项==
    • 值的类型要与列的类型一致
    • 值的最大长度不能超过列设置的最大长度
    • 字符串类型和日期类型要添加 '' 来引用

  • 修改一列的值,不添加where 条件,就修改整列的值,如果只修改某一项记录的某一列的值,就要添加where条件.
  • 加where条件,修改指定条件的指定列的值,

删除表的记录

  • 语法
    • deletate from 表名 [where 条件]

  • 注意事项
    • 删除表的记录,指的是删除表中的一行记录,如果加上where.
    • 删除如果没有条件,默认的是删除表中的所有记录
    • 删除表中记录有两种做法
      • delete from 表名
        • 删除所有记录,属于DML语句(数据操作语言)
        • 原理:一条一条记录的删除
        • 事务可以作用在DML语句上的.

      • truncate table 表名
        • 删除所有记录,属于DDL语句(数据定义语言)
        • 将表删除,然后重新创建一个结构一样的表.
        • 事务不可以作用在DDL语句上.




查看表的记录

  • 基本查询
    • 语法
    • select [distinct] * from 表 [where 条件].
      • 通配符 *
      • 把 * 换成列名查询的是指定列的信息.不同的列之间用,隔开.
      • distinct:去掉重复的值.
      • distinct 如果后面有多个字段,那么这多个字段全部重复,才会认为是重复的.

    • select 后面可以加入运算.
    • select name,math+chinese+english from 表名
    • select name, english+chinese+math as sum from 表名.(as可以省略,结果一样)

  • 条件查询
    • 使用where字句来查询
    • 字句可以使用的
      • >,<,>=,<=,<>,=[<>表示的是不等于]
      • like:模糊查询
      • in:范围查询
      • 条件关联:and,or,not(先执行and后执行or)


  • 排序查询
    • 在条件后面使用order by 字段名称 asc/desc;(asc是升序,desc是降序);默认使用升序,
    • 多个条件用,隔开,先按照前面的排序,如果前面的一样,在按照后面的要求排序.

  • 分组统计查询
    • 聚合函数的使用
      • sum();
        • 获取指定列的所有值的总和.位置在select后面,from前面.
        • sum(字段1+字段2+字段3...)和sum(字段1)+sum(字段2)+sum(字段3)+...,的区别
          • 主要是null.null+任意值都为null.(在命令中用运算符是这个结果,用函数来求和就不会变成null)在命令运算中,如果碰到null,可以用ifnull(字段,0):他的意思就是如果这个字段为null,就当成0来运算.


      • count();括号内可以写参数:如字段等.
        • 统计在指定表中有多少条记录.
        • 组好在括号内写主键的字段.效率高.

      • max();括号内可以写参数:如字段等.
        • 获取在表中指定字段的最大值

      • min();括号内可以写参数:如字段等.
        • 获取在表中指定字段的最大值

      • avg();括号内可以写参数:如字段等.
        • 获取在表中指定字段的平均值

      • 指定的字段都放在括号内.

    • 分组查询
      • 语法
        • 使用group by 字段名称
        • 字段中值一样的当做一组



  • where 字句后面不能跟聚合函数.如果要使用聚合函数做为条件就要使用关键字having,关键字.

语句顺序总结

s(select) 字段 f(from) 表名 w(where) 条件语句 g(group by) 字段 h(having) ... o(order by) ... .这个顺序不能颠倒,某一块可以不用.
命令
  • show variables like '%%character%%';
  • start transaction:开启事务
  • rollback;回滚,


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马