本帖最后由 小石姐姐 于 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;回滚,
|