1:当一个字段名为null时,则查询不能用where 字段=null,
而应该用字段 is null 或者 字段is not null
2:条件where和having的区别,where是查完整个表先,也就是表中有的字段名,如果带as的则不起作用,而having是先查完后结果中的条件;
3:count()里面放的东西都可以,与里面内容无关,只取决与group by分完组的数
4:primary key主键,主键一般代表不同的唯一的值,一般和auto_increment一起用;primary key id(id);单独后面定义;
自增长;auto_increment不能单独用,一定要带key,也就是普通键和主键
字段的修改:
1:alter table 表名 add 列名 列类型 列属性 默认在表最后面;
2:alter table 表名 add 列名 列类型 列属性 。。after 列名 新列在指定列后面;
3:alter table 表名 add 列名 列类型 列属性.。。first (新列为第一列);
4:alter table 表名 change 旧列名 新列名 新类型 列属性。。。(可以连列名一起修改了)
5:alter table 表名 modify 列名 新属性;(只是属性)
6:alter table 表名 drop [column]/可加可不加 列名 ; 删除列
视图:
1:create view goods2 as select goods_id,goods_name from goods;
select * from goods2;通过视图查表;好处是重新复制一张表,然后可以通过视图,开放其中一列或者几列;起到权限的作用;而且可以简化代码view,是一个结果集的映射;
注意:当修改了view里面的数据时,原来表的内容也随之改变了;因为视图就是物理表经过某个运算得到的一个映射,其他表变化了也会随时改变;
视图表里通过原表计算出来的值不能修改,比如平均值
如何避免字符集和乱码问题:
字符集一般都选utf8;
索引操作:
1:查看某张表索引:
show index from 表名
2:删除索引
alter table 表名 drop index 索引名
3:添加索引
alter table 表名 add index/unique
4:添加主键索引
alter tables 表名 add primary key(id【主键名】);
5:删除主键索引
alter table 表名 drop primary key