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

怎样用c语言做网站福州网络公司

怎样用c语言做网站,福州网络公司,电子政务门户网站建设方案,做网站哪家便宜厦门目录 数据类型 数据类型分类 数值类型 tinyint类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar的区别 日期和时间类型 enum 和 set 表的约束 空属性 默认值 列描述 zeorfill 主键 创建表时在字段上指定主键 删除主键#xff1a; 追…目录 数据类型 数据类型分类 数值类型 tinyint类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar的区别 日期和时间类型 enum 和 set 表的约束 空属性 默认值  列描述 zeorfill 主键 创建表时在字段上指定主键 删除主键 追加主键属性 复合主键 自增长 唯一键 外键 数据类型 数据类型分类 数值类型 tinyint类型 在MySQL中整型可以指定是有符号的和无符号的默认是有符号的。字段类型加了UNSIGNED来说明该字段是无符号的。 以tinyint举例可以看到tinyint类型是有取值范围的如果插入的数超过了取值范围会出现什么情况呢 其他的整数类型也基本如此。 注意加不加unsigned也要分场景如有些数(年龄)不能为负数的场景就可以加但是加不加都行的场景下尽量不加unsigned对于int类型可能存放不下的数据int unsigned同样可能存放不下与其如此还不如设计时将int类型提升为bigint类型。但是这里并不是说无脑选最大而是根据场景去选择类型如果无脑选最大每条数据都浪费一点空间在数据量超大的情况下存储空间就会不够用。 正常在C/C语言中往char类型中插入一个很大的数往往会发生数据截断或类型提升。而在MySQL这里插入超范围的值会插入失败且直接报错。反过来讲也就是说MySQL这里只要插入成功那么数据一定是合法的。所以在MySQL中数据类型本身一是一种约束这个约束主要是约束使用者倒逼着使用者进行正确的插入如果使用者是小白也能很好的保证数据的合法性。 为什么这里不像C/C那样呢因为如果发生数据截断那么数据库中可能会因为截断而导致两个数据相同那么此时如何辨别这两条数据呢辨别不了所以为了保证数据插入时的合法性所设置的一个约束。 bit类型 bit[(M)] : 位字段类型M表示每个值的位数范围从1到64。如果M被忽略默认为1。 使用 当然创建表时bit的位数也不能超过最大值超过会创建失败。 小数类型 float float[(m, d)] [unsigned] : M指定显示长度d指定小数位数占用空间4个字节 如果不指定显示长度和小数位数默认的精度会很大。 float(4,2)表示的范围是-99.99 ~ 99.99MySQL在保存值时会进行四舍五入。 使用  如果加上unsigned 这时因为把它指定为无符号的数它的范围是 0 ~ 99.99 。 decimal decimal(m, d) [unsigned] : 定点数m指定长度d表示小数点的位数。 decimal和float很像表示范围基本相同但是他两有区别float和decimal表示的精度不一样。如果需要较高的精度推荐使用decimal。 使用  float表示的精度大约是7位decimal整数最大位数m为65支持小数最大位数d是30。如果d被省略默认为0如果m被省略默认是10。这个默认值可能会随着MySQL的版本不同而不同。   字符串类型 char char(L): 固定长度字符串L是可以存储的长度单位为字符最大长度值可以为255。 创建表时char类型的长度超过255就会创建失败。 char(L)表示可以存放L个字符可以是字母或汉字但是不能超过L个 最多只能是255。 使用  varchar varchar(L): 可变长度字符串L表示字符长度最大长度65535个字节。 使用 这里我们发现最大长度不是65535吗怎么这里变成21845了 65535是字节这里表示的是最大长度的字符。 关于varchar(len)len到底是多大这个len值和表的编码密切相关 这个varchar就像是C中的变长数组你用多少就给你分配多少但是最长不超过你设定的长度。varchar字节长度可以指定为0到65535之间的值但是有1 - 3 个字节用于记录数据大小所以说有效字节数是65532。 当我们的表的编码是utf8时varchar(n)的参数n最大值是65532/321844[因为utf中一个字符占 用3个字节]如果编码是gbkvarchar(n)的参数n最大是65532/232766因为gbk中一个字符 占用2字节。 char和varchar的区别 如何选择char和varchar 如果数据确定长度都一样就使用定长char比如身份证手机号md5如果数据长度有变化,就使用变长(varchar), 比如名字地址但是你要保证最长的能存的进去定长的磁盘空间比较浪费但是效率高变长的磁盘空间比较节省但是效率低定长的意义是直接开辟好对应的空间变长的意义是在不超过自定义范围的情况下用多少开辟多少。 日期和时间类型 常用的日期有如下三个 date日期 yyyy-mm-dd 占用三字节datetime 时间日期 格式 yyyy-mm-dd HH:ii:ss 表示范围从 1000 到 9999 占用八字节timestamp时间戳从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致占用四字节。 使用  enum 和 set enum枚举“单选”类型enum(选项1,选项2,选项3,...); 该设定只是提供了若干个选项的值最终一个单元格中实际只存储了其中一个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,3,....最多65535个当我们添加枚举值时也可以添加对应的数字编号。 set集合“多选”类型set(选项值1,选项值2,选项值3, ...); 该设定只是提供了若干个选项的值最终一个单元格中设计可存储了其中任意多个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,4,8,16,32.... 最多64个。 使用 我们想要从数据中进行查找所有去过北京的人 这里并不能查找出所有去过北京的人。 集合查询推荐使用find_ in_ set函数 find_in_set(sub,str_list) 如果 sub 在 str_list 中则返回下标如果不在返回0str_list 用逗号分隔的字符串。 表的约束 真正约束字段的是数据类型但是数据类型约束很单一需要有一些额外的约束更好的保证数据的合法性从业务逻辑角度保证数据的正确性。本质还是通过技术手段约束使用者插入正确的数据。 表的约束很多这里主要介绍如下几个 null/not null、default、comment、zerofill、primarykey、auto_increment、unique key 。   空属性 有两个值null默认的和not null(不为空)。。 数据库默认字段基本都是为空但是在实际开发时要尽可能保证字段不为空因为数据为空没办 法参与运算。 使用非空约束 创建一个班级表表内包含班级的名字、班级所在的教室和班级说明。 正常看来一个班级不能没有名字班级也不能没有教室。 所以在设计时表明班级名和班级教室不能为空为空就不能插入这就是“约束”。 默认值  默认值某一种数据会经常性的出现某个具体的值可以在一开始就指定好在需要真实数据的时候用户可以选择性的使用默认值。 使用 default和 NOT NULL 这两个并不冲突而是互相补充的。 NOT NULL 约束的是用户插入时只有插入合法数据也就是不为空的数据。default 约束的是用户忽略某一项时如果有默认值就使用默认值如果没有默认值直接报错。 那有人会说不对呀我使用的时候我也没指定某一项不能为空也没有指定默认值但是我插入时忽略该项也没有报错呀。如下图 那是因为在创建表的时候MySQL默认给我们添加了default 为NULL的信息 。就像上图查看表信息的时候defaul类型就会有一个NULL而如果你指定了某一项不能为空的信息MySQL则就不会添加default 为NULL的信息了。 列描述 列描述comment没有实际含义专门用来描述字段会根据表创建语句保存用来给程序员或DBA来进行了解。说白了就是注释属于一种软性约束给使用者看的让使用者自发的根据描述去插入数据。 zeorfill 其实没有 zerofill 这个属性 括号内的数字是毫无意义的你正常插入数字他也会正常显示。 但是添加了 zerofill 属性 显示结果就不一样了这里我们修改表内b的属性。 可以看到b的值在前面填充了0这就是zerofill的属性如果宽度小于设定的宽度自动填充0如果宽度大于设定值则正常显示。 要注意的是这只是最后显示的结果在MySQL中实际存储的还是正常的值只是设置了zerofill属性后的一种格式化输出而已查找的话也没问题。 这里还有一个细节需要注意int类型创建时默认是11位而加了unsigned的int却是10位为什么呢 我们知道 有符号 int 的值区间是 -21亿多 ~ 21亿多而无符号 int 是0 ~ 42亿多这两个的值10位数就可以全部覆盖而有符号 int 有负号所以多加1位。 主键 主键primary key 用来唯一的约束该字段里面的数据不能重复、不能为空一张表中最多只能有一个主键主键所在的列通常是整数类型。 使用 创建表时在字段上指定主键 主键不能重复重复会插入失败。 删除主键 删除掉主键属性后id就可以重复了。 追加主键属性 主键属性最好是创建表的时候就指定或者刚开始使用的时候指定别等用了很久以后才指定这个时候你说你删那条数据呢 复合主键 前面说过主键一个表最多只能有一个这不意味着一个表的主键只能添加给一个字段一个主键可以给一个字段添加也可以给多个字段添加这样的我们称为复合主键。 自增长 auto_increment当对应的字段不给值会自动的被系统触发系统会从当前字段中已经有的最大值1操作得到一个新的不同的值。通常和主键搭配使用作为逻辑主键。 自增长的特点: 任何一个字段要做自增长前提是本身是一个索引key一栏有值自增长字段必须是整数一张表最多只能有一个自增长 使用 自增默认从1开始。 自己指定插入也可以但是自增会从最新的位置开始。 如果添加自增属性的不是主键会报错。 也可以自己指定从哪里开始自增。  索引 在关系数据库中索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快可快速访问数据库表中的特定信息。 唯一键 unique key一张表中有往往有很多字段需要唯一性数据不能重复但是一张表中只能有一个主键那么唯一键就可以解决表中有多个字段需要唯一性约束的问题。 唯一键的本质和主键差不多都是保证唯一性但是唯一键允许为空而且可以多个为空因为空字段不做唯一性比较。 关于唯一键和主键的区别 我们可以简单理解成主键更多的是标识唯一性的。而唯一键更多的是保证在业务上不要和别的信息出现重复。它们两个是不冲突的是属于互补的。 就像上面的例子主键保证学号的唯一性因为名字可能会重复所以保证不为空就行而电话基本每个人单独有自己的且电话号码并不会重复所以电话号码就需要保证唯一性否则如果粗心让两个人的电话相同那么在查询时你能否知道这个电话号码是谁的吗? 并不知道那么有人会说电话都可以为空了这没有问题吗当然你也可以在创建时将电话那列的属性加上NOT NULL属性此时唯一键的功能就和主键一样了但是他们两负责的内容是不同的主键负责记录的唯一性唯一键负责业务上不要出现信息重复。 一般而言我们建议将主键设计成为和当前业务无关的字段这样当业务调整的时候我们可以尽量不会对主键做过大的调整。 外键 外键用于定义主表和从表之间的关系外键约束主要定义在从表上主表则必须是有主键约束或唯一键约束。当定义外键后要求外键列数据必须在主表的主键列存在或为null。 foreign key (字段名) references 主表(列) 使用 如何理解外键约束 首先我们承认这个世界是数据很多都是相关性的。理论上上面的例子我们不创建外键约束就正常建立学生表以及班级表该有的字段我们都有。但是在实际使用的时候可能会出现什么问题有没有可能插入的学生信息中有具体的班级但是该班级却没有在班级表中 比如某个学校高三只开了101班102班但是在上课的学生里面竟然有高三103班的学生(这个班目前并不存在)这很明显是有问题的。因为此时两张表在业务上是有相关性的但是在业务上没有建立约束关系那么就可能出现问题。 解决方案就是通过外键完成的。建立外键的本质其实就是把相关性交给mysql去审核了提前告诉mysql表之间的约束关系那么当用户插入不符合业务逻辑的数据的时候mysql不允许你插入。
文章转载自:
http://www.morning.jqpq.cn.gov.cn.jqpq.cn
http://www.morning.jsphr.cn.gov.cn.jsphr.cn
http://www.morning.nzlqt.cn.gov.cn.nzlqt.cn
http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn
http://www.morning.lgtcg.cn.gov.cn.lgtcg.cn
http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn
http://www.morning.rtlth.cn.gov.cn.rtlth.cn
http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn
http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn
http://www.morning.wnbpm.cn.gov.cn.wnbpm.cn
http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn
http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn
http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn
http://www.morning.qyhcm.cn.gov.cn.qyhcm.cn
http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.xqgfy.cn.gov.cn.xqgfy.cn
http://www.morning.ljcf.cn.gov.cn.ljcf.cn
http://www.morning.brlgf.cn.gov.cn.brlgf.cn
http://www.morning.tnjff.cn.gov.cn.tnjff.cn
http://www.morning.txtgy.cn.gov.cn.txtgy.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.qrwnj.cn.gov.cn.qrwnj.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.ktblf.cn.gov.cn.ktblf.cn
http://www.morning.xzlp.cn.gov.cn.xzlp.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn
http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn
http://www.morning.ffmx.cn.gov.cn.ffmx.cn
http://www.morning.pkwwq.cn.gov.cn.pkwwq.cn
http://www.morning.tsmxh.cn.gov.cn.tsmxh.cn
http://www.morning.zbtfz.cn.gov.cn.zbtfz.cn
http://www.morning.ntqqm.cn.gov.cn.ntqqm.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn
http://www.morning.bpttm.cn.gov.cn.bpttm.cn
http://www.morning.nlysd.cn.gov.cn.nlysd.cn
http://www.morning.ktsth.cn.gov.cn.ktsth.cn
http://www.morning.rqnml.cn.gov.cn.rqnml.cn
http://www.morning.yngtl.cn.gov.cn.yngtl.cn
http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.ghryk.cn.gov.cn.ghryk.cn
http://www.morning.jzyfy.cn.gov.cn.jzyfy.cn
http://www.morning.xppj.cn.gov.cn.xppj.cn
http://www.morning.bynf.cn.gov.cn.bynf.cn
http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn
http://www.morning.rfqk.cn.gov.cn.rfqk.cn
http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn
http://www.morning.pbygt.cn.gov.cn.pbygt.cn
http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn
http://www.morning.fpqsd.cn.gov.cn.fpqsd.cn
http://www.morning.mbprq.cn.gov.cn.mbprq.cn
http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn
http://www.morning.xfxlr.cn.gov.cn.xfxlr.cn
http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.rbjth.cn.gov.cn.rbjth.cn
http://www.morning.wknbc.cn.gov.cn.wknbc.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.lhygbh.com.gov.cn.lhygbh.com
http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn
http://www.morning.c-ae.cn.gov.cn.c-ae.cn
http://www.morning.slmbg.cn.gov.cn.slmbg.cn
http://www.morning.fxjnn.cn.gov.cn.fxjnn.cn
http://www.morning.dyght.cn.gov.cn.dyght.cn
http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn
http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn
http://www.morning.rfpb.cn.gov.cn.rfpb.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.wspjn.cn.gov.cn.wspjn.cn
http://www.morning.bhwll.cn.gov.cn.bhwll.cn
http://www.morning.kxymr.cn.gov.cn.kxymr.cn
http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn
http://www.morning.fynkt.cn.gov.cn.fynkt.cn
http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn
http://www.tj-hxxt.cn/news/264939.html

相关文章:

  • 怎么保证网站安全性北京外包seo公司
  • 手机怎么创建自己的网站平台WordPress屏蔽cn国家访问
  • 龙泉建设工程有限公司网站网站建设及相关流程图
  • 临沂企业网站建站模板农产品网络营销的概念
  • 有哪些tp5做的网站网站地图怎么做_
  • 深圳营销网站建设188旅游网站管理系统
  • 衡水教育行业网站建设网站建设影音先锋网址
  • 十堰做网站php仿博客园网站
  • 织梦网站被做跳转cms与php做网站的区别
  • 正品率最高的购物网站wordpress如何添加自定义商品链接
  • 网站的推广方式组合漳州建设银行网站首页
  • 建设网站龙华商城小程序介绍
  • 建立一个网站怎样赚钱淘宝运营培训中心
  • 扁平化设计个人网站安卓市场下载官网
  • 台州做网站设计的公司wordpress 集成安装包
  • 管家婆免费资料网站h5开发工程师是做什么的
  • 网站建设发布教程网站底部怎么做需要放些什么
  • 个人网站图片建设网站需要些什么手续
  • 怎样做网站推广望野翻译
  • 网站升级停止访问如何做网站动态图片如何做
  • app网站平台建设方案做淘宝客网站制作教程视频
  • 学校网站建设协议模板营销推广案例
  • 网站该怎么找到精美企业模板
  • 深圳的网站建设公司有哪些管理咨询公司的服务机构
  • 邢台本地网站哪个网站专门做快餐车
  • 网站设计制作哪些带着购物系统回到80年代
  • 新公司成立建设网站国家建设部查询网站
  • 青岛做网站公司电话微信公众号运营要求
  • 找网站设计有什么推荐做简历的网站
  • 课程的网站建设做设计的有什么网站