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

网站域名在哪里查询电子网址怎么创建

网站域名在哪里查询,电子网址怎么创建,国内大型网站制作,做响应式网站的文章目录 为什么要有约束一. 空属性二. 默认值三. 列描述四. zerofill结束语 为什么要有约束 数据库是用来存放数据的,所以其需要保证数据的完整性和可靠性 数据类型也算是一种约束,比如,整型的数据无法插入字符型。 通过约束,让…

文章目录

  • 为什么要有约束
  • 一. 空属性
  • 二. 默认值
  • 三. 列描述
  • 四. zerofill
  • 结束语

为什么要有约束

数据库是用来存放数据的,所以其需要保证数据的完整性和可靠性
数据类型也算是一种约束,比如,整型的数据无法插入字符型。
通过约束,让插入数据库的数据都是符合预期的,倒逼程序员插入正确的数据,而通过约束,在MySQL视角中,只要是插入成功的数据,都是符合预期的

一. 空属性

NULL(空)
NOT NULL(不为空)
' '(空串)
空串和空是不一样的,比如没有建行银行卡是空,空串是有建行银行卡但是没有钱
NULL不参与任何计算

mysql> select 1+NULL;
+--------+
| 1+NULL |
+--------+
|   NULL |
+--------+

我们在建表时,属性如果没有说明not null,默认可以为NULL

mysql> create table student(-> id varchar(6),-> name varchar(3)-> );mysql> desc student;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| id    | varchar(6) | YES  |     | NULL    |       |
| name  | varchar(3) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
//插入数据
mysql> insert into student values (1,NULL);
Query OK, 1 row affected (0.01 sec)mysql> select * from student;
+------+------+
| id   | name |
+------+------+
| 1    | NULL |
+------+------+

NULL一列为YES,允许为空。
但是这并不合理,既然要插入数据,学生的姓名和学号都不应该为空。

mysql> create table student(-> id varchar(6) not null,-> name varchar(3) not null-> );mysql> insert into student values (1,NULL);
ERROR 1048 (23000): Column 'name' cannot be null
mysql> insert into student values (1,'张三');
Query OK, 1 row affected (0.00 sec)mysql> select * from student;
+----+--------+
| id | name   |
+----+--------+
| 1  | 张三   |
+----+--------+mysql> show create table student \G;
*************************** 1. row ***************************Table: student
Create Table: CREATE TABLE `student` (`id` varchar(6) NOT NULL,`name` varchar(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

建表属性也会显示NOT NULL

二. 默认值

Default 默认值
默认值的使用是在该属性没有显示插入数据时使用
在创建表时,如果没有指定默认值,那么默认值为NULL

mysql> create table t1(-> id int-> );mysql> desc t1;                 //默认为空
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> show create table t1 \G;
*************************** 1. row ***************************Table: t1
Create Table: CREATE TABLE `t1` (`id` int(11) DEFAULT NULL//默认为空
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

在建表时,指定默认值,那么在插入数据时,若没显示插入该属性数据,则使用默认值

mysql> create table person(->name varchar(4) not null,->age tinyint unsigned default 18
);mysql> insert into person (name) values ('张三');
Query OK, 1 row affected (0.00 sec)mysql> select * from person;
+--------+------+
| name   | age  |
+--------+------+
| 张三   |   18 |
+--------+------+

PS:如果设定属性为NOT NULL,则没有默认值
因为在建表属性中没有default null

mysql> create table t1(-> id int not null-> );mysql> show create table t1 \G;
*************************** 1. row ***************************Table: t1
Create Table: CREATE TABLE `t1` (`id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

三. 列描述

列描述:comment 建表时使用,相当于注释,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。

mysql> create table person(-> name varchar(4) not null comment '姓名',-> age tinyint unsigned comment '年龄',-> gender varchar(1) comment '性别'-> );mysql> show create table person \G;
*************************** 1. row ***************************Table: person
Create Table: CREATE TABLE `person` (`name` varchar(4) NOT NULL COMMENT '姓名',`age` tinyint(3) unsigned DEFAULT NULL COMMENT '年龄',`gender` varchar(1) DEFAULT NULL COMMENT '性别'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

四. zerofill

创建int类型属性时,显示的是int(10),这个10是什么意思呢?
其实是最大能显示的位数个数,使用zerofill验证

mysql> create table t1( ->id1 int,->id2 int zerofill->);mysql> desc t1;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type                      | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| id1   | int(11)                   | YES  |     | NULL    |       |
| id2   | int(10) unsigned zerofill | YES  |     | NULL    |       |
+-------+---------------------------+------+-----+---------+-------+mysql> insert into t1 values (200,200);mysql> select * from t1;
+------+------------+
| id1  | id2        |
+------+------------+
|  200 | 0000000200 |
+------+------------+

使用zerofill会将没有显示的位数用0填充
因为int为4个字节,有符号的int最大表示21亿,10位数足够表示,而无符号的使用11位表示足够

结束语

感谢你的阅读

如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述

http://www.laogonggong.com/news/25651.html

相关文章:

  • 集团微网站建设个人如何优化网站有哪些方法
  • 青岛公司建设网站发表文章的平台有哪些
  • 长沙做最好网站中央电视台新闻联播
  • 做线上兼职的网站怎么开一个网站平台
  • 临清设计网站网站如何提升seo排名
  • 怎么在wordpress上添加视频seo排名公司
  • 日文设计网站全球搜索引擎大全
  • 单位门户网站建设的请示游戏推广怎么做挣钱
  • php网站建设心得体会厦门关键词排名提升
  • 上海影城改造升级搜索引擎排名优化seo
  • 建设银行义乌分行网站12月10日新闻
  • 网站建设团队介绍大连今日新闻头条
  • 东莞北京网站建设价格产品推广
  • 做网站需要钱吗怎么让百度收录
  • 开软件外包公司赚钱吗哈尔滨seo关键字优化
  • 郴州市政府门户网站长沙网站关键词排名公司
  • 客户关系管理的重要性湖南专业的关键词优化
  • 360做网站多少钱一年深圳百度推广优化
  • 2015做哪个网站能致富快排seo排名软件
  • 毕设DW做网站的过程alexa
  • 策划书模板范文南京seo网络推广
  • 网站做推广页需要什么一站式网站建设
  • 做微信扫码网站微信广告平台
  • b2b免费发布信息网站珠海网络推广公司
  • 如何做网站编辑品牌策略
  • 游戏公司排名昆明网站seo优化
  • 手机网站建设制作教程视频教程重庆网站seo技术
  • jsp小型网站开发代码google关键词搜索量
  • 营销型网站建设有哪些平台百度站长平台快速收录
  • 医疗网站建设市场怎么可以在百度发布信息