您的位置:首页 > 编程语言 > PHP开发

(php)mysql主键及高级操作 摘要

2015-09-29 22:11 483 查看
1.主键默认不为空;

2.增加主键:alter table (表名)add primary key(字段);

3.删除主键alter table (表名)drop primary key(字段);主键要先删除再增加;

4.key是一个索引,auto_increment必须是索引;必须是数字,最多只能一个自增长;

5.自增如果输入的id超过原先最大,就直接跳过,下次再自增(最大+1);

6.auto_increment修改表选项的话必须修改更大,不能更小;

7.会话级就是关闭mysql之后,一切又变回原来;

8.modify来修改自增长,alter table (表名) modify id int ;主键是单独存在,有主键的时候不要再加主键;

9.unique key 可以解决一张表有多个唯一键,因为primary只允许有一个 唯一;区别:允许为空(多个);

删除唯一键:Alter table 表名 drop index 索引名字;

10.unique+not null 会显示pri;但是它不是主键;

11.几乎所有的索引都建立在字段之上,增加索引本身会产生文件。非常耗空间;

12.范式只为解决空间问题,分为六层,一般只有前三种范式需要满足;1NF就是要让数据不可再分;(具有原子性)

13.2NF就是解决部分依赖,只要不存在复合主键就满足2nf,可以使用逻辑主键让部分依赖逻辑主键;

14.3NF就是要解决传递依赖的问题;将部分依赖的独立出来前面加上逻辑主键,逻辑id就代表对应的依赖关系。将逻辑id返回原表格即可解决传递依赖;(3nf其实就是将有联系的两个或者n个独立出来,给它个代号,把代号传回原来的表格)

15.逆规范化就是为了效率牺牲磁盘冗余,简单理解就是直接将要了解的信息表直接给信息 而不是给逻辑id;

16.蠕虫复制的意义,1.从已有表拷贝数据到新表2.迅速增加,可以测试表的压力;insert into (新表名) select * from (要复制的表名);

17.数据如果删除,下个自增长不变;因为自增长已上传到表选项了;

18.truncate (表名);清空表。重置表数据,重置表数据;

19.distinct 去重 放在 * 的位置;

20.select id,name,class from my_class=>select id as number,

name as 姓名 。。。from。。。改字段别名

19.查询数据:select

20.select sex,count(*),max(height),min(height),avg(age),sum(age) from my_student group by sex; 分组

21.有一个函数: 可以对分组的结果中的某个字段进行字符串连接(保留该组所有的某个字段): group_concat(字段);

22.回溯统计=》汇报统计。汇报领导总的有多少个,其中哪个分组中又有多少个;

23.having先分组再计算,where则不行;

24.where是从磁盘取数据,别名查找是在磁盘读取之后才有;where不能查找别名而having可以;

25.group by分组后取第一条记录;

26.limit记录是从0开始;

27.Where子句返回结果: 0或者1, 0代表false,1代表true.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: