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

mysql中为什么删除一个表中的主键约束后该字段不能为空_MySQL数据表的操作

f28adeaf2c5c371a79d48617a2119581.png

MySQL数据表的操作

7915a2c32fb234810753987e64b85c08.png 540223efb6585c47cd6ceb01b8f3f8cb.gif

一、表的操作

表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成。主要用来存储数据记录。表的操作,包含创建表、删除表、修改表等。

1、创建表

语法形式:CREATE TABLE table_name(

                                属性名1 数据类型,

                                。。。。,

                                属性名N 数据类型,

                   )

例:

CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    addr VARCHAR(40)
)

2、删除表

SQL语句:DROP TABLE t_dept;

表示删除表t_dept,要删除的表必须存在否则会报错。

3、修改表

3.1、修改表名

SQL语句:ALTER TABLE t_dept    RENAME tab_dept

3.2、增加字段

SQL语句:ALTER TABLE  table_name ADD 属性名 属性类型,在表的最后一个位置增加一个字段。

SQL语句:ALTER TABLE  table_name ADD 属性名 属性类型 FIRST,在表的第一个位置增加一个字段。

SQL语句:ALTER TABLE  table_name ADD 属性名 属性类型 AFTER 属性名,在表的指定的字段之后增加字段。

3.3、删除字段

SQL语句:ALTER TABLE  table_name DROP 属性名,删除表中指定的字段。

3.4、修改字段

修改某个字段的数据类型:ALTER TABLE table_name MODIFY 属性名  属性类型。

修改某个字段的名称:ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧属性的数据类型。例如:ALTER TABLE tab_dept CHANGE addr address VARCHAR(40)

同时修改某个字段的名称和数据类型:ALTER TABLE table_name 旧属性名 新属性名 新属性的数据类型。

3.5、修改字段的顺序

调整某个字段到表的第一个位置,ALTER TABLE table_name MODIFY 属性名 数据类型 FIRST。

调整某个字段到表的某个字段之后,ALTER TABLE table_name MODIFY 属性名1 数据类型 AFTER 属性名2。说明:属性名1是要调整的字段,属性名2 是要调整到字段后面。

540223efb6585c47cd6ceb01b8f3f8cb.gif

二、表的约束

完整性是指数据的准确性和一致性,而完整性检查就是指的是检查数据的准确性和一致性。

1、设置非空约束(NOT NULL,NK)

当数据库表中的某个字段如果不希望设置为空时候,则可以使用NK约束。为字段加上NOT NULL约束的时候,就可以保证该字段不能为空,如果用户插入的记录该字段为空的话,数据库就会报错。

SQL语句:

        CREATE TABLE table_name(

                 属性名 数据类型 NOT NULL,

                …

        )

2、设置字段的默认值 (DEFAULT)

当数据库表插入一条数据时候,如果没有为某个字段赋值,那么数据库系统就会自动给该字段赋值。

       CREATE TABLE table_name(

                 属性名 数据类型 DEFAULT 默认值,

                …

        )

3、 设置唯一约束(UNIQUE,UK)

当数据库表中的某个字段不允许重复的时候,可以设置UK约束。

CREATE TABLE table_name(

                 属性名 数据类型 UNIQUE,

                …

        )

4、设置主键约束

当数据库表中的某个字段用来唯一标识所有的记录的时候,就可以设置PK约束。主键字段是唯一、非空的值。

CREATE TABLE table_name(

                 属性名 数据类型 PRIMARY KEY,

                …

        )

主键约束相当于非空约束+唯一约束。

多字段主键(联合主键)设置如下,

CREATE TABLE table_name(

                 属性名 数据类型,

                …

                CONSTRAINT 约束名  PRIMARY KEY(属性名1,属性名2…)

5、设置字段值自动增加(AUTO_INCREMENT)

设置AUTO_INCREMENT约束后,字段会生成一个唯一的ID值。该字段必须是整数类型。

CREATE TABLE table_name(

                 属性名 数据类型 AUTO_INCREMENT,

                …

        )

6、设置外键约束(FOREIGN KEY,FK)

设置外键约束的两个表必须具有父与子的关系。设置FK约束的字段,必须依赖于数据库中已经存在的父表的主键。

CREATE TABLE table_name(

                 属性名 数据类型,

                …

                CONSTRAINT 外键约束名  FOREIGN  KEY   (属性名1)

                        REFERENCES 表名 (属性名2)

        )

END

c53b597023ed71792c355231dec4c92f.png f28adeaf2c5c371a79d48617a2119581.png

图文:网络

排版:96编辑器

7915a2c32fb234810753987e64b85c08.png

相关文章:

  • 获取textbox控件中输入值_Android 开发(一):Toast弹窗与获取控件的值
  • 深度学习异常检测_深度学习用来做日志异常检测
  • python图片分析中央气象台降水_python 画降水量色斑图问题
  • 圆锥形怎么画_如何画圆锥体的展开图?
  • matlab内部迭代函数_MATLAB:向量化编程提升值函数迭代(Value Function Iteration)的速度...
  • shell判断某个字符串是不是以数字开头_面试中的shell部分看着就对了
  • mysql简单命令行_MySQL命令行的简单操作
  • python混淆加密ios代码_Python中的AES加密与iOS不同
  • python的隐藏功能分享_分享6个隐藏的python功能
  • python解码函数_解码函数尝试编码Python
  • yii mysql数据库操作_Yii2 常用数据库操作
  • mysql里面date命令_[转]linux之date命令MYSQL用户管理
  • mysql sum 替换_MySQL SUM函数添加十进制值
  • python 任务调度框架_Python任务调度模块APScheduler
  • 小ck活动机器人包包_古力娜扎空降“小ck”线下门店,手上的包包亮了,仙气又便宜!...
  • ➹使用webpack配置多页面应用(MPA)
  • 2017前端实习生面试总结
  • create-react-app做的留言板
  • HTTP--网络协议分层,http历史(二)
  • Java 网络编程(2):UDP 的使用
  • JavaScript中的对象个人分享
  • MySQL QA
  • Python十分钟制作属于你自己的个性logo
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SpringBoot几种定时任务的实现方式
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 基于webpack 的 vue 多页架构
  • 面试遇到的一些题
  • 前端
  • 使用parted解决大于2T的磁盘分区
  • 用简单代码看卷积组块发展
  • Hibernate主键生成策略及选择
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​ssh免密码登录设置及问题总结
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (篇九)MySQL常用内置函数
  • (十八)SpringBoot之发送QQ邮件
  • (转)JAVA中的堆栈
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net Core 中间件验签
  • .net Stream篇(六)
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net6 Api Swagger配置
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • :not(:first-child)和:not(:last-child)的用法
  • @Service注解让spring找到你的Service bean
  • [52PJ] Java面向对象笔记(转自52 1510988116)