mysql 参照完整性规则_MySQL整理4—数据表的基本操作1

数据科学探路者:MySQL知识整理3—数据库的基本操作​zhuanlan.zhihu.com

主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义

一、创建数据表

语法形式:
create table <表名> (
字段1 , 数据类型 [列级别约束条件][默认值],
字段2 , 数据类型 [列级别约束条件][默认值],
...
);

例子:

9c40234fc6a3836ddd00cc2803b696a8.png
create 
create table tb_emp1(
id int(11) primary key,
name varchar(25),
deptID int(11),
salary float
/*添加主键约束,在最后添加也可*/
/*primary key(id)*/
/*多字段主键添加  primary key(id,name)*/
);

约束包括哪些?

  • 非空约束 (not null)
  • 唯一性约束 (unique)
  • 主键约束 (primary key) 简称 PK
  • 外键约束 (foreign key) 简称 FK
  • 检查约束【目前MYSQL不支持,oracle数据库支持】

1.主键:表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

任何列都可以作为主键,只要它满足以下条件:

  • 任何两行都不具有相同的主键值。就是说这列的值都是互不相同的     
  • 每个行都必须具有一个主键值。主键列不允许设置为NULL    
  • 主键列的值不建议进行修改和更新

(注释:在第一部分,数据库基础中,主键知识已介绍)

2.外键

基本概念 :

  • (1) MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。
  • (2) 外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。
  • (3) 如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。
  • (4) 外键的使用条件: ① 两个表必须是InnoDB表,MyISAM表暂时不支持外键 ② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立; ③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
  • (5) 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

fa9f231976e220f11457dd903dcdecce.png
create table tb_dept1(
id int(11) primary key,
name varchar(22) not null,
location varchar(50)
);
create table tb_emp5(
id int(11) primary key,
name varchar(25),
deptID int(11),
salary float,
constraint fk_empdept1 foreign key(deptID) references tb_dept1(id)
);

3.非空约束

强制列不能为 NULL 值,约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。例子:name字段不能为空

create table tb_dept1(
id int(11) primary key,
name varchar(22) not null,
location varchar(50)
);

4.唯一性约束

unique约束的字段具有唯一性,不可重复。唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者几列不出现重复值。

  • UNIQUE KEY 唯一约束
  • 唯一约束可以保证数据的唯一性
  • 唯一约束的字段可以为空
  • 每张数据表可以有存在多个唯一约束
create table tb_dept1(
id int(11) primary key,
name varchar(22) unique,
location varchar(50)
/*或者在最后添加constraint <约束名> unique <字段名>*/
/*constraint na unique(name)*/
);

5.设置表的属性自动增加

在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。 实现此目的,可以使用关键字:ATUO_INCREMENT

  • 1.默认,MySQL中AUTO_INCREMENT的初值是1,每新增一条记录,字段值自动加1;
  • 2.一个表只能用一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。
  • 约束的字段可以是任何整数类型(tinyint,smallint,int,bigint)
create table tb_emp1(
id int(11) primary key auto_increment,
name varchar(25),
deptID int(11),
salary float
);
insert into tb_emp1(name,salary) 
values('lucy',7000),('tom',15000),('steven',40000);

插入数据后,id字段自动增加1。

《UDS协议从入门到精通》系列——图解0x14:清除诊断信息 图解0x14:清除诊断信息,简洁易懂,迅速上手! 阅读详情

相关推荐

【数据分享】1985-2023年30米CLCD土地覆盖栅格数据分享

总的来说,CLCD 反映了中国快速的城市化进程和一系列生态工程,揭示了气候变化条件下人为对 LC的影响,其在全球变化研究中具有潜在应用价值。最后,通过目视解译的独立样本和第三方测试样本评估CLCD的准确性。特别地,该研究将CLCD产品与目前最先进的30m专题产品包括不透水表面积(ISA)、地表水和森林进行比对,以综合评估CLCD的质量(以下为技术流程图)。数据分类:分为九类用地,该数据包括9种用地类型,分别为:农田、森林、灌木、草原、水域、冰雪、裸地、不透水面、湿地。数据格式:.tif格式。

weixin_61129400的博客 6923

mysql 设置字段自动增长值_MySQL整理4—数据表的基本操作1

数据科学探路者:MySQL知识整理3—数据库的基本操作​zhuanlan.zhihu.com主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义一、创建数据表语法形式: 例子:create create table tb_emp1( id int(11) primary key, name varchar(25), deptID int(11), salary fl...

weixin_39553705的博客 637

FPGA优质开源项目 – UDP万兆光纤以太网通信

本文开源一个FPGA项目:UDP万兆光通信。文章末尾有该工程源码获取方式,有需要的小伙伴可以点赞、分享支持一下~

cjx_csdn的博客 4766

MySQL数据库@:7表的自动增长

在为数据表设置主键约束后,每次插入记录时,都需要检查主键的值,防止插入的值重复导致插入失败,这会给数据库的使用带来很多麻烦。为此,可以利用MySQL提供的自动增长功能来自动生成主动键的值。在使用auto_increment时,需要注意一以下四点。

qq_45309448的博客 2354

C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装

Muduo is a multithreaded C++ network library based on the reactor pattern. muduo库的介绍就是:一个基于reactor反应堆模型的多线程C++网络库。 muduo网络库是C++语言开发的一个非常优秀的网络库,作者陈硕,muduo网络库在多线程环境下性能非常高,该系列文章会分享一些muduo库源码的知识,包括它的线程池源码...

大秦坑王的专栏 3万+

松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器

weixin_48924581的博客 1万+

大数据---MySQL---Day3(完结)

常用数据类型,数据库事务(事务开启、事务提交、事务回滚),库的操作,表的操作,数据的增删改,向表中添加、删除、修改列,约束,自增,级联删除

cgrs5572的博客 455

21天学会基于 Linux 的 NPU 固件开发--2.2 固件加载流程:request_firmware() 深度解析

本文深度解析Linux内核中NPU固件加载流程,重点剖析request_firmware()机制。内容涵盖:1)内核态与用户态的交互机制,包括同步/异步加载方式;2)NPU固件的特殊格式与加载逻辑;3)调试技巧与安全验证方案;4)提供最小化固件加载器实验。文章揭示了从文件系统到硬件初始化的完整链路,探讨了大模型时代面临的性能挑战与优化方案,如零拷贝加载技术,并提出了版本兼容性、断电恢复等关键问题的思考方向。

amy_mhd的博客 59

【MySQL知识点】自动增长

利用MySQL提供的自动增长功能来自动生成主键的值,防止插入的值重复导致插入失败。自动增长功能通过来实现,基本语法格式如下:字段名 数据类型 auto_increment;以上就是今天的学习内容啦~如果有兴趣的话可以订阅专栏,持续更新呢~咱们下期再见~

颜颜yan_的博客 1万+

手把手教你学simulink实例--基于Simulink的轨道交通车辆悬挂系统仿真

轨道交通车辆悬挂系统是保证列车运行平稳性、舒适性和安全性的重要组成部分。通过悬挂系统的合理设计,可以有效减小车辆在运行过程中受到的轨道不平顺和振动影响。基于MATLAB/Simulink平台进行悬挂系统仿真,可以对悬挂系统的动力学行为、控制策略以及性能优化等环节进行建模与分析,从而验证系统的设计性能并优化参数。本项目旨在构建一个完整的轨道交通车辆悬挂系统仿真模型,包括悬挂系统动力学建模、控制策略模块以及性能评估模块,并通过仿真验证系统的稳定性和舒适性。

MHD0815的博客 1032

机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计

论文提出了一个深度卷积神经网络来估计一对图像之间的相对单应性。我们的前馈网络有10层,以两个堆叠的灰度图像作为输入,并产生一个8自由度的单应性,可用于映射从第一个图像到第二个图像的像素。我们为HomographyNet提出了两种卷积神经网络架构一个直接估计实值单应性参数的回归网络,以及一个在量化单应性上产生分布的分类网络。我们使用4点单应性参数化,将一个图像的四个角映射到第二个图像。我们的网络使用扭曲的MS-COCO图像以端到端的方式进行训练。论文的贡献如下。........................

学以致用 知行合一 3083

mysql 数据表 整理_MySQL整理4—数据表的基本操作1

主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义一、创建数据表语法形式:create table (字段1 , 数据类型 [列级别约束条件][默认值],字段2 , 数据类型 [列级别约束条件][默认值],...);例子:createcreate table tb_emp1(id int(11) primary key,name varchar(25),deptI...

weixin_33364945的博客 247

YOLOv11涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLOv11改进方法。该模块通过在标准注意力机制中引入头部特定的sigmoid门控,有效提升了模型性能和训练稳定性。实验表明,GatedAttention能够增强模型对关键信息的聚焦能力,减少无关区域关注,提高检测精度。同时,门控机制带来的非线性和稀疏性优化了计算效率,并缓解了训练不稳定性问题。文章详细介绍了模块原理、实现代码及三种改进方案配置方法,为YOLOv11在复杂场景下的目标检测提供了有效解决方案。

Ai缝合怪、助力小伙伴高效发论文 495

mysql中为什么删除一个表中的主键约束后该字段不能为空_MySQL整理4—数据表的基本操作1...

数据科学探路者:MySQL知识整理3—数据库的基本操作​zhuanlan.zhihu.com主要内容:创建数据表,查看数据表结构,修改数据表,删除数据表,约束、默认和规则含义一、创建数据表语法形式: create table <表名> ( 字段1 , 数据类型 [列级别约束条件][默认值], 字段2 , 数据类型 [列级别约束条件][默认值], ... );例子:create cre...

weixin_39569753的博客 418

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL【学习笔记】整理一

内容:MySQL【学习笔记】整理未完待续…

@MIKE小助手 921

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mysql 参照完整性规则_Mysql 的优化方式,都给你整理好了(附思维导图)

前言MYSQL优化主要分为以下四大方面:设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。架构:主从复制,读写分离,负载均衡。合理SQL:测试,经验。思维导图一、存储引擎在创建表的时候我们使用sql语句,Create table tableName () engine=myisam|innodb;这里就指明了存储引擎是myisam还是innodb。存储引擎是一种用来存储M...

weixin_29826413的博客 199

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Mysql常用知识点整理

Mysql简介

qq_36107350的博客 715

mysql数据表的基本操作

好久没梳理下Mysql基础命令了.今天抽空整理了下,虽然很简单...但是还是有必要巩固下基础滴啦 1.创建表:之前需要use database database_name 然后create table 表名();例:创建员工表tb_employee1,结构如下表所示 字段名称 数据类型 备注 id int(11) 员工编号 name v...

weixin_34318956的博客 123

MySQL数据库万字保姆级教程(有这一篇就够了,建议收藏)

这是我呕心沥血整理出的MySQL教程,一方面为自己复习回顾用,一方面也想将自己的知识分享给大家。注意:文中命令都是用的大写,但MySQL中的命令采用大小写均可SQL数据定义的模式种类:模式、基本表、索引、视图SQL数据定义的特点:1.数据库定义可以不断增长(不必一开始就定义完整)2.数据库定义可以随时修改(不必一开始就完全合理)创建删除修改模式表DROP TABLE视图DROP VIEW索引DROP INDEX。

qq_58737789的博客 2840

SQL 语句知识整理

CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型, ... );3删除列 ALTER TABLE 表名 MODIFY 列名 新数据类型;INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);2添加列 ALTER TABLE 表名 DROP COLUMN 列名;UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 条件;SELECT 列名1, 列名2 FROM 表名 WHERE 条件;用于定义数据库结构,操作对象为表、索引、视图等。

LUOCHUNdechuntia的博客 362

MySQL知识点整理

知识点1. 关系数据库的规范化(面试重点):范式(1) 第一范式:每一个属性不可以再分,不满足第一范式的数据库就不适关系型数据库。例如班级这个属性,其中包含了“系别”和“班级”两个属性信息,因此就不符合第一范式。(2) 第二范式:表中的其他属性对于主关键字完全依赖,而不能只依赖于主关键字的一部分,如主关键字可能是由两部分组成的,其他的属性不能只依赖于其中的一个。(3) 第三范式:不存在传递依赖。2...

u011603088的博客 357

mysql增加外键约束方法分享

老实说,在MySQL中使用InnoDB表的时候,不一定非用外键约束不可,然而,为了外键约束在某些情况下的功用,我们将通过前面提到的例子的代码进行具体说明。定义数据库模式时,我们要在这两个表之间建立起一对多的关系,方法是在存放评论的表中创建一个外键,以将其中的数据行(即评论)对应到特定的博客文章。外键约束可以在修改表时添加,但是添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

hdxx2022的博客 2212

MySQL数据库基本规范整理

此篇文章是学习MySQL技术整理的,不足之处还望指教,不胜感激。 数据库基本规范涉及数据库命名规范、数据库索引设计规范、数据库基本设计规范、数据库字段设计规范、数据库SQL开发规范、数据库操作行为规范 数据库命名规范 1、 所有数据库对象名称禁止使用MySQL关键字 2、 所有数据库对象名称必须小写 3、 名称遵循长名称规则,要做到见名识意,最长不超过32位 4、 临时表以t...

df954927497的专栏 241

教你mysql如何增加外键约束

在本篇文章里小编给大家整理的是一篇关于mysql增加外键约束具体方法及相关实例内容,有兴趣的朋友们可以跟着学习下。 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。 定义外键时,需要遵守

Free雅轩的博客 1万+

[MYSQL] 约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类约束描述关键字非空约束限制该字段的数据不能为 nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT检查约束 (8.0.16 版本之后)保证字段值满足某一个条件CHECK外键约束。

2502_93796332的博客 201

面试题自整理

复试面试题(部分)

Zhang_chi_yu的博客 205
上一篇: 高速的二舍八入三七作五_高速恢复收费后过路费“上涨”,原因有三
下一篇: 内核aio_一例 centos7.6 内核 BUGON 的解析
weixin_39867708
博客等级 码龄9年 32粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值