mysql表的约束问题

目录

1. 表的约束问题:

主键约束:

案例:

非空约束

唯一约束:

默认值约束:

案例:

2.表的结构


前提:接上一张博客内容经行操作

1. 表的约束问题:

        用来保证数据插入的安全性、完整性、正确性
                主健,外键,唯一,默认值,非空,检查

1.1 主键约束:

一旦某个字段被主键约束修饰,该字段就是主键字段      #  primary key

        1、该字段的值不允许重复

        2、该字段不能为空

该字段就是用来保证唯一的

        auto_increment    # 自增    默认每次一

1.1.1 案例:

mysql> drop table if exists t_user;      # 删除表
mysql> create table t_user (id int primary key, name varchar(225), age int);  #增加为主键

mysql> show tables;
+-----------------+
| Tables_in_db_hj |
+-----------------+
| t_user          |
+-----------------+
1 row in set (0.00 sec)

mysql> create table t_user (id int primary key  auto_increment, name varchar(225), age int);                                           # auto_increment  自增长的整数类型
Query OK, 0 rows affected (0.02 sec)   

mysql> create table t_user (id int primary key(id) auto_increment , name varchar(225), age int, );                  

mysql> create table t_user (id int auto_increment, name varchar(225), age int, primary key(id));               # 还可以写为:

mysql> desc t_user;             # 查看表 t_user 的结构信息

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int          | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | YES  |     | NULL    |                |
| age   | int          | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

mysql> insert into t_user values(null , "SJ", 16);
Query OK, 1 row affected (0.01 sec)      # 对表t_user添加元素(默认, "SJ", 16)

mysql> select * from t_user;                # 查看表t_user

+----+------+------+
| id | name | age  |
+----+------+------+
|  2 | SJT  |   16 |
|  3 | SJ   |   16 |
+----+------+------+
2 rows in set (0.00 sec)

mysql> insert into t_user values(null , "SJT", 16);        # 给表中添加元素

Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user;         # 查看此时表中内容

+----+------+------+
| id | name | age  |
+----+------+------+
|  2 | SJT  |   16 |
|  3 | SJ   |   16 |
|  4 | SJT  |   16 |
+----+------+------+
3 rows in set (0.00 sec)

1.2 非空约束

        是否允许某些字段为空!!!                # not null

1.3 唯一约束:

        表示字段不能出现重复值! ! !                # unique    (8,0以下的版本也不会报错,但也不会使用)

1.4 默认值约束:

        默认给定一个值                                   # check (gender in("男",“女))

1.4.1 案例:

mysql> insert into t_user values(null, null, 16);
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_user;

+----+------+------+
| id | name | age  |
+----+------+------+
|  2 | SJT  |   16 |
|  3 | SJ   |   16 |
|  4 | SJT  |   16 |
|  5 | NULL |   16 |
+----+------+------+
4 rows in set (0.00 sec)

mysql> insert into t_user values(null, "ldh", 16);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user;

+----+------+------+
| id | name | age  |
+----+------+------+
|  2 | SJT  |   16 |
|  3 | SJ   |   16 |
|  4 | SJT  |   16 |
|  5 | NULL |   16 |
|  6 | ldh  |   16 |
+----+------+------+
5 rows in set (0.01 sec)

mysql> drop table if exists t_user;
Query OK, 0 rows affected (0.01 sec)
 

创建表:

CREATE TABLE IF NOT EXISTS t_user(

        id int primary key auto_increment,

        name varchar(50) not null unique,

        nickname varchar(255) unique,

        age int default 18,

        gender varchar(10) check (gender in("男",“女))

);

插入数据-insert:
insert into table name[(id,name, .....)] values ( )

insert into table 表名字[(表的字段,。。。)]  values (对应制表时的,规则顺序)

mysql> insert into t_user values(null, "liudehua" , "天王", 58, "男");     # 正确

insert into t_user  values(default,"liming""小白脸",56,"男") ;            # 正确

insert into t_user value(null, "quofucheng","舞王",  default, "女");   # 错误

insert into t_user (name, nickname, gender) values("zxy", "歌神","错的"); 

具体执行时代码:

mysql> insert into t_user values(null, "liudehua" , "天王", 58, "男");
mysql> insert into t_user values(default, "liming", "小白脸", 56, "男");
Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user values(null, "guofucheng", "舞王", default, "女");
Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user;

+----+------------+-----------+------+--------+
| id | name       | nickname  | age  | gender |
+----+------------+-----------+------+--------+
|  1 | liudehua   | 天王      |   58 | 男     |
|  2 | liming     | 小白脸    |   56 | 男     |
|  3 | guofucheng | 舞王      |   18 | 女     |
+----+------------+-----------+------+--------+
3 rows in set (0.01 sec)

2.表的结构

表的结构:

第一次使用表结构,是在创建表的时候,制定了对应表的结构

        alter table xxxx

新增字段:

        ALTER TABLE 表名 ADD 列名列类型[约束条件];
        alter table t user add test text default "呵呵呵“

修改字段的类型:

        ALTER TABLE 名 modify 列名列类型[约束条件];

        alter table t user add test varchar();

修改字段名称:

        ALTER TABLE 表名 change 日列名 新的列表名   列类型[约束条件];

删除字段:

        alter  table 表名称 drop 字段名称;

修改表名称:

        ALTER TABLE 表名 RENAME 新表名

        rename table 表名称 to 新表名;

        alter table emp rename employee

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker的基础概念及命令

这篇主要介绍一下Docker比较重要的两个概念,镜像和容器,以及操作它们的一些常用命令。 文章目录 一、基础命令二、镜像三、容器 一、基础命令 docker -v:查看 Docker 的版本 systemctl start docker:启动docker systemctl stat…

Surface mesh结构学习

CGAL 5.6 - Surface Mesh: User Manual Surface_mesh 类是半边数据结构的实现,可用来表示多面体表面。它是半边数据结构(Halfedge Data Structures)和三维多面体表面(3D Polyhedral Surface)这两个 CGAL 软件包的替代品…

如何关闭iPhone 14或14 Pro Max,这里有详细步骤

你刚买了新的iphone 14或iphone 14 pro max,迫不及待地想开始使用它。但如果你需要关闭它怎么办?有几种方法可以用来关闭这两种设备。 如何关闭iPhone 14 你可以通过每个人都熟悉的老式侧按钮轻松关闭iPhone 14,也可以通过面部识别关闭它。 …

Unity之角色控制器

PS:公司终于给我派任务了,最近几天都没学Unity🤧。 一、角色控制器的实现方式 目前小编知道的角色控制器实现方式有三种: 应用商店的角色控制系统Unity自己的角色控制器通过物理系统去做角色控制器 本篇介绍的是第二种Unity自己的角色控制…

电商新趋势:解析养号的必要性及海外云手机运用攻略

在电商领域,什么最为关键?答案无疑是流量!然而,如何以较低成本获取大量流量成为了许多电商从业者头疼的问题。虽然直接投放广告是一种方式,但在内卷的情况下效果越来越难以令人满意,高昂的广告费用也原来越…

Java零基础教学文档第三篇:JDBC

今日新篇章 【JDBC】 【主要内容】 JDBC概述 使用JDBC完成添加操作 使用JDBC完成更新和删除 DBUtils的简单封装 使用JDBC完成查询 使用JDBC完成分页查询 常用接口详解 JDBC批处理 SQL注入问题 事务处理解决转账问题 连接池 使用反射对DBUtils再次的封装 BaseDAO的封…

供水管网动态模型分类及应用分析

当供水管网中发生启停泵、快速关阀等事件时, 延时时段模拟 (即准稳态模型) 不能准确预测系统的瞬时动态变化, 而需要采用更为准确复杂的瞬变流动态模型。为明确多种动态模型之间的差异, 探讨和分析了供水管网动态模型的分类、模型理论以及在管网运行管理中的应用。结果表明, 准…

react 项目结构配置

1 项目整体目录结构的搭建 如下图: 2 重置css样式: normalize.css reset.less ; 第一步 安装 npm i normalize.css 入口文件index.tsx导入:import ‘noremalize.css’ 第二步 创建自己的css样式:在assets文件夹中创建css…

关于mysql OR使用的细节,加上()避免OR扩大sql查询范围

错误场景描述:现在在我的预约订单里面截止日期明明已经超过了当前时间却还显示,这个时候正常逻辑是只显示在历史订单中的。 错误归因:关于下面这段查询中 这一组条件加上()与不加上括号天差地别,也是导致业…

网络安全全栈培训笔记(WEB攻防-51-WEB攻防-通用漏洞验证码识别复用调用找回密码重定向状态值)

第51天 WEB攻防-通用漏洞&验证码识别&复用&调用&找回密码重定向&状态值 知识点: 1、找回密码逻辑机制-回显&验证码&指向 2、验证码验证安全机制-爆破&复用&识别 3、找回密码客户端回显&Response状态值&修改重定向 4、…

使用nginx+HTML2canvas将任意html网页转为png图片自定义张数

文章目录 概述网页的转换html2canvas的使用导入导入HTML2canvas库函数定义 nginx部署编写控制截图网页代码iframe 网页控制代码 测试说明 概述 本文简述如何使用nginxhtml2canvas将任意网页html转为png图片 网页的转换 如果是本地网页,直接进行nginx反向代理就行…

DFT中的SCAN、BIST、ATPG基本概念

DFT中的SCAN、BIST、ATPG基本概念 SCAN 定义 扫描路径法是一种针对时序电路芯片的DFT方案,目标是在不影响正常功能的情况下来能够提高可控性和可观测性。 原理 原理是将时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop,简称FF)的时序电路…

vue开发H5 实现滑动图片获取验证码

<template><div><van-button type"primary" click"sendVerification">获取验证码</van-button><van-popupv-model"captchaVisible"closeableposition"bottom"class"login-captcha":close-on-cli…

Java接入Apache Spark(入门环境搭建、常见问题)

Java接入Apache Spark&#xff08;环境搭建、常见问题&#xff09; 背景介绍 Apache Spark 是一个快速的&#xff0c;通用的集群计算系统。它对 Java&#xff0c;Scala&#xff0c;Python 和 R 提供了的高层 API&#xff0c;并有一个经优化的支持通用执行图计算的引擎。它还支…

腾讯云服务器建站教程——2024更新部署网站教程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网txyfwq.com分享使用腾讯云服务器建站教程&#xff0c;…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

【kafka】记录用-----------1

主题&#xff08;topic&#xff09;&#xff1a;消息的第一次分类 根据人为的划分条件将消息分成不同的主题 主题的划分是人为的根据不同的任务情景去划分 比如&#xff0c;我们有两个主题&#xff0c;一个是"订单"&#xff0c;另一个是"库存"。每个主题代…

eureka-server项目工程搭建、linux集群部署

Eureka是Netflix开发的服务发现框架&#xff0c;本身是一个基于REST的服务&#xff0c;主要用于定位运行在AWS域中的中间层服务&#xff0c;以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中&#xff0c;以实现SpringCloud的服…

与纸质合同相比,电子合同有哪些优势?

在无纸化办公的当下&#xff0c;电子合同软件成为了企业数字化转型必不可少的工具。而随着国内电子合同软件功能的完善&#xff0c;电子合同拥有便捷&#xff0c;安全&#xff0c;功能等要素&#xff0c;因此&#xff0c;电子合同是更多人的选择方式。 电子合同指的是双方或者多…

antd时间选择器,设置显示中文

需求 在实现react&#xff0c;里面引入antd时间选择器&#xff0c;默认显示为英文 思路 入口处使用ConfigProvider全局化配置&#xff0c;设置 locale 属性为中文来实现。官方文档介绍全局化配置 ConfigProvider - Ant Design 代码 import React from react; import { Prov…