当前位置: 首页 > news >正文

增城网站建设公司网站服务器租

增城网站建设公司,网站服务器租,深圳产品网站建设,世安建设集团有限公司网站表的约束和基本查询 1.表的约束1.1 空属性1.2默认值1.3列描述1.4 zerofill1.5主键1.6 自增长1.7 唯一键1.8外键 1.表的约束 真正约束字段的是数据类型#xff0c;但是数据类型约束很单一#xff0c; 需要有一些额外的约束#xff0c; 更好的保证数据的合法性#xff0c;从… 表的约束和基本查询 1.表的约束1.1 空属性1.2默认值1.3列描述1.4 zerofill1.5主键1.6 自增长1.7 唯一键1.8外键 1.表的约束 真正约束字段的是数据类型但是数据类型约束很单一 需要有一些额外的约束 更好的保证数据的合法性从业务逻辑角度保证数据的正确性。 比如有一个字段是email要求是唯一的。 表的约束很多这里主要介绍如下几个null/not null,default, comment, zerofillprimarykeyauto_incrementunique key 。1.1 空属性 两个值null默认的和not null(不为空)数据库默认字段基本都是字段为空但是实际开发时尽可能保证字段不为空因为数据为空没办法参与运算 案例 创建一个班级表包含班级名和班级所在的教室。 站在正常的业务逻辑中 如果班级没有名字你不知道你在哪个班级如果教室名字可以为空就不知道在哪上课 所以我们在设计数据库表的时候一定要在表中进行限制满足上面条件的数据就不能插入到表中。这就是“约束” 创建表 mysql create table myclass(- class_name varchar(20) not null,- class_room varchar(10) not null); Query OK, 0 rows affected (0.02 sec)插入数据 mysql insert into myclass(class_name) values(class1);结果 1.2默认值 默认值某一种数据会经常性的出现某个具体的值可以在一开始就指定好在需要真实数据的时候用户可以选择性的使用默认值。 创建表 CREATE TABLE tt10 (name varchar(20) not null,age tinyint unsigned default 0,sex char(2) default 男 ); insert into tt10(name) values(zhangsan);1.3列描述 列描述comment没有实际含义专门用来描述字段会根据表创建语句保存用来给程序员或DBA数据库管理员来进行了解。 ysql create table tt12 (- name varchar(20) not null comment 姓名,- age tinyint unsigned default 0 comment 年龄,- sex char(2) default 男 comment 性别- );--注意not null和defalut一般不需要同时出现因为default本身有默认值不会为空通过desc查看不到注释信息 通过desc查看不到注释信息 1.4 zerofill mysql show create table tt3\G ***************** 1. row *****************Table: tt3 Create Table: CREATE TABLE tt3 ( a int(10) unsigned DEFAULT NULL, b int(10) unsigned DEFAULT NULL ) ENGINEMyISAM DEFAULT CHARSETgbk 1 row in set (0.00 sec)可以看到int(10),这个代表什么意思呢整型不是4字节码这个10又代表什么呢其实没有zerofill这个属性括号内的数字是毫无意义的。a和b列就是前面插入的数据如下 mysql insert into tt3 values(1,2); Query OK, 1 row affected (0.00 sec) mysql select * from tt3; ------------ | a | b | ------------ | 1 | 2 | ------------但是对列添加了zerofill属性后显示的结果就有所不同了。修改tt3表的属性 mysql alter table tt3 change a a int(5) unsigned zerofill; mysql show create table tt3\G *************************** 1. row ***************************Table: tt3 Create Table: CREATE TABLE tt3 ( a int(5) unsigned zerofill DEFAULT NULL, --具有了zerofill b int(10) unsigned DEFAULT NULL ) ENGINEMyISAM DEFAULT CHARSETgbk 1 row in set (0.00 sec)对a列添加了zerofill属性再进行查找返回如下结果 mysql select * from tt3; ------------- | a | b | ------------- | 00001 | 2 | -------------这次可以看到a的值由原来的1变成00001这就是zerofill属性的作用如果宽度小于设定的宽度这里设置的是5自动填充0。要注意的是这只是最后显示的结果在MySQL中实际存储的还是1。为什么是这样呢我们可以用hex函数来证明 mysql select a, hex(a) from tt3; --------------- | a | hex(a) | --------------- | 00001 | 1 | ---------------可以看出数据库内部存储的还是1,00001只是设置了zerofill属性后的一种格式化输出而已。 1.5主键 主键primary key用来唯一的约束该字段里面的数据不能重复不能为空一张表中最多只能有一个主键主键所在的列通常是整数类型。 创建表时直接指定 主键约束 主键对应的字段中不能重复一旦重复操作失败。 当表创建好以后但是没有主键的时候可以再次追加主键 alter table 表名 add primary key(字段列表)删除主键 alter table 表名 drop primary key;复合主键 在创建表的时候在所有字段之后使用primary key(主键字段列表)来创建主键如果有多个字段作为主键可以使用复合主键。 复合主键只有所有主键相同时才会冲突 冲突 1.6 自增长 auto_increment当对应的字段不给值会自动的被系统触发系统会从当前字段中已经有的最大值1操作得到一个新的不同的值。通常和主键搭配使用作为逻辑主键。 自增长的特点: 任何一个字段要做自增长前提是本身是一个索引key一栏有值自增长字段必须是整数一张表最多只能有一个自增长 案例 1.7 唯一键 一张表中有往往有很多字段需要唯一性数据不能重复但是一张表中只能有一个主键唯一键就可以解决表中有多个字段需要唯一性约束的问题。 唯一键的本质和主键差不多唯一键允许为空而且可以多个为空空字段不做唯一性比较。 关于唯一键和主键的区别 我们可以简单理解成主键更多的是标识唯一性的。而唯一键更多的是保证在业务上不要和别的信息出现重复。乍一听好像没啥区别我们举一个例子 假设一个场景(当然具体可能并不是这样仅仅为了帮助大家理解) 比如在公司我们需要一个员工管理系统系统中有一个员工表员工表中有两列信息一个身份证号码一个是员工工号我们可以选择身份号码作为主键。 而我们设计员工工号的时候需要一种约束而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复我们设计表的时候需要这个约束那么就可以将员工工号设计成为唯一键。 一般而言我们建议将主键设计成为和当前业务无关的字段这样当业务调整的时候我们可以尽量不会对主键做过大的调整。 案例 mysql create table student (- id char(10) unique comment 学号不能重复但可以为空,- name varchar(10)- ); Query OK, 0 rows affected (0.01 sec) mysql insert into student(id, name) values(01, aaa); Query OK, 1 row affected (0.00 sec) mysql insert into student(id, name) values(01, bbb); --唯一约束不能重复 ERROR 1062 (23000): Duplicate entry 01 for key id mysql insert into student(id, name) values(null, bbb); -- 但可以为空 Query OK, 1 row affected (0.00 sec) mysql select * from student; ------------ | id | name | ------------ | 01 | aaa | | NULL | bbb | ------------1.8外键 用于定义主表和从表之间的关系外键约束主要定义在从表上主表则必须是有主键约束或unique约束。当定义外键后要求外键列数据必须在主表的主键列存在或为null。 语法 foreign key (字段名) references 主表(列)
http://www.huolong8.cn/news/49871/

相关文章:

  • 网站推广妙招网站外链资源
  • 网站建设技术合作合同文本文档做网站怎么加图片
  • 导入表格做地图中热力网站公司网络营销外包
  • 网站建站网站wordpress 分页文章静态化
  • 反网站搭建一条龙廊坊网站公司
  • 如何获取网站js图片阿玛尼手表
  • 苏州建站仿站o2o网站建设咨询
  • 做企业信用贷的网站西宁市建设网站公司电话
  • 广东建设厅的网站查询中国空间雷达卫星
  • 视频网站的制作教程讲究 网站
  • 网站迁移后 域名郑州高端网站定制公司
  • 长沙做网站建设行政单位单位网站建设
  • 香河做网站网站如何做分站
  • 淘宝导购网站备案如何登录中国建设银行网站
  • 建设网站价钱郑州网站推广公司服务
  • 厦门网站建设方案优化企业网站的首页设计
  • 大唐工作室 网站制作大连制作网站公司
  • 医疗保险网站开通建设wordpress为什么流行
  • 郑州网站建设公司 排行西安建筑科技大学华清学院教务网
  • 写文章的网站网站的赚钱方式
  • flas网站开发工具免费的网站软件正能量推荐
  • 企业彩铃制作网站环境设计专业就业方向
  • 建设网站用动态ip还是静态ip网站导航图怎么做的详细步骤
  • 网站别人备案怎么办网站建设的主要客户群体
  • 用手机怎么看自己做的网站网页设计网站规划报告
  • 学校门户网站建设方案织梦做的网站被黑了
  • 网站的主流趋势图片压缩wordpress
  • 淮安做网站卓越凯欣wordpress 物流主题
  • 漳州微网站建设价格我要做个网站该怎么做
  • 网站建设的几个要素企业标准官网入口