34的.字段定义 PHP课件 必威体育精装版版.pptx

34的.字段定义 PHP课件 必威体育精装版版.pptx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
34的.字段定义 PHP课件 必威体育精装版版

字段定义 unsigned INSERT INTO cv (id) VALUES (-1); 上面的语句执行不会报错,但是显然我们不需要保存一个负数的编号 ALTER TABLE cv MODIFY id INT UNSIGNED; 如果再次执行插入负数的语句则会看到 Query OK, 1 row affected, 1 warning (0.01 sec) 执行下面的语句可以看到警告的具体内容 SHOW WARNINGS; unsigned的差别 新建测试表,分别创建一个tinyint的字段和一个tinyint unsigned的字段 同时插入一个超出其值范围的数字999,检查两个字段的最大上限的变化 再同时插入-999,检查下限的变化 再次插入数据 通过字段id,我们可以唯一标识一条记录,但是如果两次插入的都是1呢? INSERT INTO cv (id, name) VALUES (1, andy); INSERT INTO cv (id, name) VALUES (1, tom); 可见,当前的表结构并没有能力去排除重复的值 唯一值 通过单独设置一行unique,可以将指定字段中的值设置为唯一,一旦有重复的数据插入,系统会提示错误 ALTER TABLE cv ADD UNIQUE KEY (id); 如果是建表语句,则应该放在最下方 CREATE TABLE cv (   ...   UNIQUE (id) ); 这时再重复插入同样id的数据,会提示错误 ALTER TABLE user DROP INDEX name 删除唯一特性 保留字段 思考 有的同学的表在执行前面alter的语句后没有报错,有的却会报错 请思考为什么会有差别?和当前数据表的里的数据有什么关系? 主键 当我们添加过unique后查看表结果可以发现id字段的key变成了PRI,实际上PRI就是primary key的缩写,一个唯一的id相当于就是一个主键,那么我们也可以直接通过primary key属性来设置主键,而不用unique,因为primary中就包含了unique的规则 ALTER TABLE cv MODIFY id INT UNSIGNED PRIMARY KEY; 设置主键 ALTER TABLE user MODIFY id int unsigned NOT null PRIMARY KEY; 注意:一个表里只可以有一个主键,因此,当系统判断表里只有一个unique时,可以把它当做主键,当出现多个unique时,仍然只会把第一个unique默认当做主键 删除主键 ALTER TABLE cv DROP PRIMARY KEY; 复合主键 虽然一个表里只可以有一个主键,但是并不是意味着只能有一个字段被设置为主键,如果有两个字段需要一起设置为主键,我们可以创建复合主键 ALTER TABLE cv DROP PRIMARY KEY; ALTER TABLE cv ADD PRIMARY KEY (id, name); 这样,id和name就成了复合主键,如果两条记录,id一样,并不意味了数据重复,只有id和name都一样才表示重复 复合主键 在create建表语句中,如果只有一个字段是主键,那么可以直接在字段后面添加primray key即可 CREATE TABLE cv (   id INT UNSIGNED PRIMARY KEY,   ... ); 如果是复合主键,则可以按下面的写法,放在最后 CREATE TABLE cv (   ...,   PRIMARY KEY (id, name) ); 自增长 目前的id是通过我们人为指定的,但是人工操作难免会出现错误,如果意外插入了同样的id,系统报错,会导致程序出错,那么有没有可能让MySQ自己来计算每次应该插入的id是多少? ALTER TABLE cv DROP PRIMARY KEY; ALTER TABLE cv MODIFY id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT; 上面的语句添加一个auto_increment属性, 注意: 只有整形数字段可以设置自增长 自增长必须添加在主键上 一个表里只可以有一个字段是自增长的 添加记录(自增长) 之前插入记录时我们指定了字段 INSERT INTO cv (id, name) VALUES (1, andy); 因为有了自增长,我们可以无需指定id为几,这是可以将1统一设置为0或者null,这时,无论如何重复执行,系统都会自动生成id 更为简单的办法是忽略id字段 INSERT INTO cv (name) VALUES (andy); 同样可以执行自增长的插入。 LA

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档