烟台网站建设方案成都市建设局官方网站

news/2025/9/26 12:56:56/文章来源:
烟台网站建设方案,成都市建设局官方网站,十大奢侈品排名,企业网站建设及推广研究目录 一. 空属性null 二. 默认值default 三. 列描述comment 四. 填充零zerofill 五. 主键primary key 六. 自增长auto_increment 七. 唯一键unique 八. 外键foreign key 一. 空属性null 对于表中的数据#xff0c;如果在进行插入的时候不显示地给定值#xff0c;那么…目录 一. 空属性null 二. 默认值default 三. 列描述comment 四. 填充零zerofill 五. 主键primary key 六. 自增长auto_increment 七. 唯一键unique 八. 外键foreign key 一. 空属性null 对于表中的数据如果在进行插入的时候不显示地给定值那么默认就取null表示空。空非空属性有两个值可以表示null 和 not null。 如果在创建表的时候声明某个成员为not null那么在向表中插入数据的时候这个成员的值不能是null在实际项目中会存在某些字段不能为空场景例如调查问卷中的某些必填选项。 语法Field DataType not null  如下代码在表t1中字段id不能为空如果在向t1插入数据时不显示给出id的值那么默认就认为id为null而not null属性会拦截id为null的插入或修改操作。 mysql create table t1 (- id int not null,- name varchar(20)- ); Query OK, 0 rows affected (0.25 sec)mysql insert into t1 values (1, zhangsan); Query OK, 1 row affected (0.03 sec)mysql insert into t1 (name) values (2); -- 声明not null没有默认值插入失败 ERROR 1364 (HY000): Field id doesnt have a default value mysql insert into t1 values (null, lisi); -- id不可以为空 ERROR 1048 (23000): Column id cannot be null二. 默认值default 如果表中的某个字段有经常被使用的值那么可以在建表的时候就声明这个字段的默认值在向表中插入数据时如果用户给定数据值就用用户给定的如果用户没有显示给定就用默认值。 语法Field DataType default 默认值 如下代码中的表t2设置成员age的默认值为20gender的默认值为男插入数据时可以忽略age和gender字段这样就会使用默认数据。如果显示给定被default声明的字段值为null那么就使用用户给定的null值而不是使用默认值。 mysql create table t2 (- id int not null,- age tinyint unsigned default 20,- gender varchar(2) default 男- ); Query OK, 0 rows affected (0.32 sec)mysql desc t2; -------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | -------------------------------------------------------- | id | int(11) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | 20 | | | gender | varchar(2) | YES | | 男 | | -------------------------------------------------------- 3 rows in set (0.00 sec)mysql insert into t2 values (10, 13, 女); -- 用户显示给定值就使用用户给定的 Query OK, 1 row affected (0.02 sec)mysql insert into t2 (id) values (11); -- 如果省略值就采用默认的 Query OK, 1 row affected (0.01 sec)mysql insert into t2 (id, age) values (11, 19); Query OK, 1 row affected (0.05 sec)mysql insert into t2 (id, age) values (12, null); -- 插入null不会采用default值 Query OK, 1 row affected (0.05 sec)mysql select * from t2; ------------------ | id | age | gender | ------------------ | 10 | 13 | 女 | | 11 | 20 | 男 | | 11 | 19 | 男 | | 12 | NULL | 男 | ------------------ 4 rows in set (0.00 sec) 三. 列描述comment comment列描述仅仅是作为注释来使用的类似于C/C中的代码注释。 语法Field DataType comment 描述信息 由于comment描述信息完全不影响表的属性因此 通过desc TableName 无法查询到comment信息。通过show create table TableName 能够看到comment信息。 mysql create table t3 (- id int comment 标号,- message varchar(30) comment 属性信息- ); Query OK, 0 rows affected (0.24 sec)mysql desc t3; ------------------------------------------------- | Field | Type | Null | Key | Default | Extra | ------------------------------------------------- | id | int(11) | YES | | NULL | | | message | varchar(30) | YES | | NULL | | ------------------------------------------------- 2 rows in set (0.01 sec)mysql show create table t3 \G *************************** 1. row ***************************Table: t3 Create Table: CREATE TABLE t3 (id int(11) DEFAULT NULL COMMENT 标号,message varchar(30) DEFAULT NULL COMMENT 属性信息 ) ENGINEInnoDB DEFAULT CHARSETutf8 1 row in set (0.01 sec)四. 填充零zerofill 如下代码当用户创建 整形/字符串 类型字段的时候通过desc查看详细的表属性信息可以看到类型信息后面有一对圆括号里面有一个数字。对于 char/varchar 很好理解表示字符串的长度但是整形类型后面括号里的数字又有什么含义呢 mysql create table t4 (- c1 char(10),- c2 varchar(5),- n1 tinyint unsigned,- n2 int unsigned- ); Query OK, 0 rows affected (0.25 sec)mysql desc t4; ------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------- | c1 | char(10) | YES | | NULL | | | c2 | varchar(5) | YES | | NULL | | | n1 | tinyint(3) unsigned | YES | | NULL | | | n2 | int(10) unsigned | YES | | NULL | | ------------------------------------------------------- 4 rows in set (0.01 sec)对于整形类型如果不声明zerofill那么括号里的数字是没有意义的。zerofill的作用是当前端显示的数据长度不足指定长度时通过前导0来补充如果超过指定长度按照原本的格式显示不会将超过设定长度的部分截断。整形类型括号后面的数字就是默认的显示长度如果没有声明zerofill那么这个数字会被忽略。 语法Field DataType(M) zerofill 解释如果显示长度不足M那么就使用前导0补充到M  如下代码在表t5中定义字段val int(5) unsigned插入1、12、123、1234、12345、123456之后使用select * from t5输出表t5中全部的val信息可以观察到长度不足5的数据前面都填充了0而123456的长度超过了5显示其原本的值没有被截断。 声明zerofill不影响数据在数据库中存储的内容受影响的仅是在前端的输出格式。  mysql create table t5 (- val int(5) unsigned zerofill- ); Query OK, 0 rows affected (0.10 sec)mysql insert into t5 values(1); Query OK, 1 row affected (0.04 sec)mysql insert into t5 values(12); Query OK, 1 row affected (0.03 sec)mysql insert into t5 values(123); Query OK, 1 row affected (0.04 sec)mysql insert into t5 values(1234); Query OK, 1 row affected (0.03 sec)mysql insert into t5 values(12345); Query OK, 1 row affected (0.03 sec)mysql insert into t5 values(123456); Query OK, 1 row affected (0.03 sec)mysql select * from t5; -------- | val | -------- | 00001 | | 00012 | | 00123 | | 01234 | | 12345 | | 123456 | -------- 6 rows in set (0.00 sec) 五. 主键primary key 主键是MySQL数据库中用于数据检索的关键字一张表中只能有一个主键并且主键不能重复不能为null主键一般是整形数据。 语法Field DataType primary key 解释primary key 为主键声明的关键字 如下代码定义表stu1其中包含int unsigned类型数据id将id设置为主键如果试图插入重复的主键或者主键值为null那么MySQL会拦截这样的操作。 mysql create table stu1 (- id int unsigned primary key comment 学号作为主键不能重复,- name varchar(10) not null comment 学生姓名不能为空,- gender enum(男,女) comment 学生性别- ); Query OK, 0 rows affected (0.21 sec)mysql desc stu1; ------------------------------------------------------ | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------ | id | int(10) unsigned | NO | PRI | NULL | | | name | varchar(10) | NO | | NULL | | | gender | enum(男,女) | YES | | NULL | | ------------------------------------------------------ 3 rows in set (0.01 sec)mysql insert into stu1 values (1,zhangsan,男); Query OK, 1 row affected (0.04 sec)mysql insert into stu1 values (2,lisi,男); Query OK, 1 row affected (0.04 sec)mysql insert into stu1 values (3,wangwu,女); Query OK, 1 row affected (0.03 sec)mysql insert into stu1 values (1,wangwu,女); -- 不允许有重复的主键 ERROR 1062 (23000): Duplicate entry 1 for key PRIMARY mysql insert into stu1 values (3,wangwu,女); ERROR 1062 (23000): Duplicate entry 3 for key PRIMARY mysql insert into stu1 values (null,wangwu,女); -- 主键不能为null ERROR 1048 (23000): Column id cannot be null mysql select * from stu1; ---------------------- | id | name | gender | ---------------------- | 1 | zhangsan | 男 | | 2 | lisi | 男 | | 3 | wangwu | 女 | ---------------------- 3 rows in set (0.00 sec)主键可以被删除也可以在完成表的基本结构创建后再添加主键 删除主键alter table 表名称 drop primary key;添加主键alter table 表名称 add primary key(字段名); 下面的代码以上面的表stu1为操作对象先删除主键通过desc查看表属性信息在重新设置id为主键再通过desc查看表属性信息观察到了主键被成功删除和添加。 mysql alter table stu1 drop primary key; Query OK, 3 rows affected (0.68 sec) Records: 3 Duplicates: 0 Warnings: 0mysql desc stu1; ------------------------------------------------------ | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------ | id | int(10) unsigned | NO | | NULL | | | name | varchar(10) | NO | | NULL | | | gender | enum(男,女) | YES | | NULL | | ------------------------------------------------------ 3 rows in set (0.00 sec)mysql alter table stu1 add primary key(id); Query OK, 0 rows affected (0.56 sec) Records: 0 Duplicates: 0 Warnings: 0mysql desc stu1; ------------------------------------------------------ | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------ | id | int(10) unsigned | NO | PRI | NULL | | | name | varchar(10) | NO | | NULL | | | gender | enum(男,女) | YES | | NULL | | ------------------------------------------------------ 3 rows in set (0.01 sec) 主键一般用于检索通过唯一的主键用户可以实现对数据库中某行数据的查询、修改或删除 通过主键进行检索select * from 表名称 where 主键字段XXX;通过主键更改某行数据update 表名称 set 待修改字段XXX where 主键字段XXX;通过主键删除某行数据delete from 表名称 where 主键字段XXX; mysql select * from stu1; ---------------------- | id | name | gender | ---------------------- | 1 | zhangsan | 男 | | 2 | lisi | 男 | | 3 | wangwu | 女 | ---------------------- 3 rows in set (0.00 sec)mysql select * from stu1 where id1; -- 检索id1的行 ---------------------- | id | name | gender | ---------------------- | 1 | zhangsan | 男 | ---------------------- 1 row in set (0.00 sec)mysql update stu1 set namezhaoliu where id3; -- 更改id3的行的name字段 Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql delete from stu1 where id2; -- 删除id2的数据 Query OK, 1 row affected (0.02 sec)mysql select * from stu1; ---------------------- | id | name | gender | ---------------------- | 1 | zhangsan | 男 | | 3 | zhaoliu | 女 | ---------------------- 2 rows in set (0.00 sec)复合主键表中两个或两个以上字段共同充当主键。 如下代码定义了表stu2使用字段id和字段class_id组合来充当主键向表中插入数据时允许id或class_id这两个字段其中之一出现重复但不允许两行数据的id和class_id全部重复即以复合主键用所有参与组合的字段的值作为比较依据而不限制单个字段出现重复。 mysql create table stu2 (- id int unsigned,- class_id int unsigned,- name varchar(10) not null,- primary key(id, class_id) -- id和class_id作为复合主键- ); Query OK, 0 rows affected (0.25 sec)mysql insert into stu2 values (1,101,zhangsan); Query OK, 1 row affected (0.04 sec)mysql insert into stu2 values (1,102,zhangsan); -- id重复class_id不重复允许插入 Query OK, 1 row affected (0.04 sec)mysql insert into stu2 values (2,102,zhangsan); -- id不重复class_id重复允许插入 Query OK, 1 row affected (0.05 sec)mysql insert into stu2 values (1,101,lisi); -- id和class_id全部重复禁止插入 ERROR 1062 (23000): Duplicate entry 1-101 for key PRIMARY 六. 自增长auto_increment 自增长必须配合主键来使用。如果一张表中找不出一个合适的字段唯一、方便检索作为主键那么就应当引入自增长字段。 自增长字段具有以下特点 自增长auto_increment必须配合primary key使用否则MySQL会拦截建表操作。如果用户显示给定了值那么就使用用户给定的如果用户没有显示给出值那么自增长字段的值就是 当前表中最大值 1。如果用户没有显示给定值表中也没有数据那么默认自增长字段的值为1。如果在创建表的时候显示给定了起始值那么就采用用户给出的起始值。 mysql desc t6; ------------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------------- | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(10) | NO | | NULL | | ------------------------------------------------------------- 2 rows in set (0.01 sec)mysql insert into t6 (name) values (zhangsan); Query OK, 1 row affected (0.00 sec)mysql insert into t6 (name) values (lisi); Query OK, 1 row affected (0.04 sec)mysql insert into t6 (id,name) values (100,wangwu); Query OK, 1 row affected (0.03 sec)mysql insert into t6 (name) values (zhaoliu); Query OK, 1 row affected (0.03 sec)mysql select * from t6; --------------- | id | name | --------------- | 1 | zhangsan | | 2 | lisi | | 100 | wangwu | | 101 | zhaoliu | --------------- 4 rows in set (0.00 sec)如果不想使用默认值1为自增长主键的起始值那么也可以在建表的时候声明起始值。 显示给定auto_increment起始值语法 create table 表名称 (         Field DataType primary key auto_increment,         // ... ... )auto_increment起始值; 如下代码创建表t7显示给定自增长字段的起始值为10依次省略自增长字段值插入两行数据可见两行数据的自增长字段值为10和11。 mysql create table t7 (- id int unsigned primary key auto_increment,- name varchar(10) not null- )auto_increment10; Query OK, 0 rows affected (0.26 sec)mysql insert into t7 (name) values (zhangsan); Query OK, 1 row affected (0.03 sec)mysql insert into t7 (name) values (lisi); Query OK, 1 row affected (0.02 sec)mysql select * from t7; -------------- | id | name | -------------- | 10 | zhangsan | | 11 | lisi | -------------- 2 rows in set (0.01 sec) 七. 唯一键unique 唯一键用于表示一张表中不允许出现重复的字段如果尝试向表中插入唯一键重复的数据那么MySQL会拦截操作唯一键与主键十分类似但又有所不同。 唯一键和主键的区别 一张表中可以有多个唯一键但只能有一个主键。唯一键可以为null主键不能为null。主键最重要的功能是用于数据检索而唯一键一般只是为了避免数据重复。 注意唯一键为null时不进行重复性比较即一张表中可以有多行唯一键为null的数据存在。 mysql insert into t8 values (1,10,hello); Query OK, 1 row affected (0.05 sec)mysql insert into t8 values (1,12,good); ERROR 1062 (23000): Duplicate entry 1 for key u_val1 -- 尝试插入相同的唯一键插入失败 mysql insert into t8 values (2,10,good); ERROR 1062 (23000): Duplicate entry 10 for key u_val2 mysql insert into t8 values (2,null,haha); Query OK, 1 row affected (0.03 sec)mysql insert into t8 values (3,null,bye); -- 插入两个值为null的唯一键插入成功 Query OK, 1 row affected (0.05 sec)mysql select * from t8; ----------------------- | u_val1 | u_val2 | val3 | ----------------------- | 1 | 10 | hello | | 2 | NULL | haha | | 3 | NULL | bye | -- null不进行唯一性比较 ----------------------- 3 rows in set (0.00 sec)八. 外键foreign key 外键通常用于定义主表字段和从表字段之间的约束关系外键约束具有以下特点 外键定义必须在从表中其所关联的主表字段必须是唯一键或者主键。从表中的外键约束字段值要么为主表对应字段存在的值要么为null。 语法foreign key (字段名) references 主表名(字段名)  图8.1为外键约束的案例定义两张表stu和class存储学生信息和班级信息如果在学生信息的表中附加班级信息那么会造成大量的数据冗余因此在学生信息表stu中定义字段class_id关联到表class的id字段这样就建立起了表stu和class的关联。 如果企图在从表中插入主表不存在的外键约束字段那么MySQL会拦截这种插入操作。 图8.1 外键约束案例 // 1.创建主表 mysql create table class ( - id int unsigned primary key,- name varchar(10) not null- ); Query OK, 0 rows affected (0.16 sec)// 2.创建从表 mysql create table student (- id int unsigned primary key,- class_id int unsigned,- name varchar(10),- foreign key(class_id) references class(id) -- 定义外键约束- ); Query OK, 0 rows affected (0.27 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单B细胞技术如何实现兔单抗高通量高特异制备

单B细胞技术如何实现兔单抗高通量高特异制备 在单克隆抗体(mAb)研发领域,兔源单抗以其高亲和力和高特异性备受关注。传统的杂交瘤技术虽然成熟,但周期长、效率低,而且抗体多样性有限。近年来,单B细胞技术的出现,…

HP激光墨盒换墨粉

墨盒分区加墨是先清理使用过的墨粉,在加入要使用的墨粉。 清理使用过的墨粉 可拆开使用过的墨粉的墨盒去清理,也可用不拆下清理。打开红色框的盖子,到出里面的墨粉,最好用袋子装好清理,防止粉尘到处飞。 拆下来清…

实用指南:Golang学习笔记: 常用标准库

实用指南:Golang学习笔记: 常用标准库pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

AI论文速读 | 当大语言模型遇上时间序列:大语言模型能否执行多步时间序列推理与推断 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

unordered_map性能被吊打!我用基数树让内存池性能暴涨几十倍的秘密

哈喽,大家好,我是小康! 今天要和大家聊一个特别有意思的话题——基数树。 说实话,我第一次听到这个名词的时候,内心是懵逼的。基数?树?这玩意儿到底是啥? 直到有一天,我在研究TCMalloc内存池源码的时候,发现…

网站备案后可以更换域名吗网红营销优势

Title 题目 Automated anomaly-aware 3D segmentation of bones and cartilages in kneeMR images from the Osteoarthritis Initiative 来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割 Background 背景 近年来,多个机器学习算法被提出用于图像…

asp网站配置伪静态重庆注册公司核名在哪个网站

上次提到的开机自启动的配置,获得了LD的称赞,然而LD的要求,都是“既得陇复望蜀”的,他又期望我们能实现openGauss安装的“自动化”,于是尝试了下用shell脚本部署,附件中的脚本实测有效,openEule…

详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势

详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

深入解析:TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明

深入解析:TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

龙凤网站建设云聚达长春网站建设哪里好

基于飞桨paddle波士顿房价预测练习模型测试代码 导入基础库 #paddle:飞桨的主库,paddle 根目录下保留了常用API的别名,当前包括:paddle.tensor、paddle.framework、paddle.device目录下的所有API; import paddle #Lin…

CentOS 9服务器版 部署Zabbix7.0 server端 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:Apache 生产环境操作与 LAMP 搭建指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

JAVA第一天

Markdown 学习 标题 +空格=一级标题 +空格=二级标题 ......... 字体 粗体 斜体 粗斜体 删除 引用第一天学习分割线图片超链接 我的世界 列表表格ctrl+t 代码

什么网站做简历模板关键词排名怎么快速上去

http://answers.unity3d.com/questions/34328/terrain-with-multiple-splat-textures-how-can-i-det.html转载于:https://www.cnblogs.com/klobohyz/archive/2012/10/09/2716627.html

c 网站开发需要什么软件东莞出行政策有变了

文章目录 前言一、哈希结构体?二、增删差3、遍历,清空,计数 前言 哈希表在头文件“utash.h”中已经有了,只需简单学习用法即可 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很…

自己做免费网站的视频参考消息电子版手机版

处理 HttpApplication 的事件HttpApplication 提供了基于事件的扩展机制,允许程序员借助于处理管道中的事件进行处理过程扩展。由于 HttpApplication 对象是由 ASP.NET 基础架构来创建和维护的,那么,如何才能获取这个对象引用,以便…

东莞营销型网站建设流程网站速成

1.类型转换 1.1 int(x):转化为一个整数&#xff0c;只能转换由纯数字组成的字符串 float->int 浮点型强转整形会去掉小数点后面的数&#xff0c;只保留整数部分 a 1.2 print(type(a)) #<class float> b int(a) print(type(b)) #<class int>print(int…

现货做网站wordpress登入可见插件

需做工作 在每个微服务下面新建一个Dockerfile文件根据Dockerfile文件使用docker build指令&#xff0c;打包为具体的镜像&#xff08;根据自己需求选择&#xff09;将docker镜像上传到私人docker仓库或者是公共仓库&#xff0c;如果没有上传&#xff0c;则自动保存在本地编写…

C# Avalonia 15- Animation- CustomEasingFunction

C# Avalonia 15- Animation- CustomEasingFunctionCustomEasingFunction.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xm…

白银市建设局网站云捷配快速开发平台

目录 环境准备 生成SSH 密钥对 数据库备份并推送到gitlab脚本 设置定时任务 环境准备 服务器要有安装达梦数据库&#xff08;达梦安装这里就不示例了&#xff09;&#xff0c;git 安装Git 1、首先&#xff0c;确保包列表是最新的&#xff0c;运行以下命令&#xff1a; …