初学数据库
下了本mysql的官网数据库说明文档,好长,顿感路好长。先写点遇到的第一个问题的解决方法吧。
首先,主键只有一个。但是在mysql数据中可以将多个字段设置成主键。这并不是说可以有多个主键,设置多个字段是主键的意思是在sql中主键只有一个,但是主键可以由多个字段构成。
初学mysql,增删查改,设置表关系链接,关联查询以及高级关联查询的语法不是很难,就是记忆的东西比较多。这里抛个链接:http://www.w3school.com.cn/sql/sql_in.asp对于常用的mysql语言用法总结的很好,由不太理解的可以参考一下。
初学没多久,遇到一个问题:在一个表中设置了(主键)自动增长后,比如表中有4个数据,当删除最后一条数据(4)后,再向其中添加数据时,新加数据的主键不是4而是5。我不知道这样对后面工作是不是有很大影响,总之一点是肯定的,看着挺不爽。于是想办法让它是4 。反正我在网上是没有找到啥多好的方法,我能找到的保留数据的方法是:将原数据导出sql(右击表,选择转储sql文件)。之后编辑sql文件,将其中的代码改成你想要的顺序,这里注意编码的问题,我第一次怎么没没成功,反复检测代码都没有问题,结果是因为我使用了记事本编辑了sql文件,我的sql使用的是ulf-8编码,当使用记事本编辑的时候,会在文件头生成一个叫做BOM的东东,navicat无法识别,数据导入一直不成功,最好使用第三方编码工具比如ultraedit。在把sql文件导回数据库中去。注意此时表中所有的数据都会被重写,覆盖。
mysql应该是一个链表结构,执行自动增长,有一个值记录表中的记录数,执行增加操作,会使得表中的记录数增加一,删除时,设计者可能是出于性能和数据安全方面考虑,这个值却没有变。
另外可以使用ALTER TABLE 更新表的设置,ALTER TABLE tctable AUTO_INCREMENT=n;命令是将上述表中最大记录值设置为n-1。下次使用insert into 添加数据时,数据就从n-1开始。当然使用这种方式是可以重写表中的数据的。