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.hqwc.cn/news/345108.html

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

相关文章

养老数据监控大屏:护航金色晚年,打造智慧养老新标杆

随着老龄化社会的加速到来,养老服务的质量和效率成为了社会关注的焦点。如何运用现代科技手段提升养老服务水平,让老年人享受更加舒适、便捷的晚年生活,成为了我们面临的重要课题。在这一背景下,养老数据监控大屏应运而生&#xf…

时序预测 | Matlab基于灰色隐马尔可夫模型(HMMP-GM11)的时间序列预测

时序预测 | Matlab基于灰色隐马尔可夫模型(HMMP-GM11)的时间序列预测 目录 时序预测 | Matlab基于灰色隐马尔可夫模型(HMMP-GM11)的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 灰色HMMP-GM11改进模型,通过引入隐马尔可夫模型(HMM)来对原始数据进行状态分…

OpenWrt智能路由器Wan PPPoE拨号配置方法

OpenWrt智能路由器的wan PPPoE拨号配置方法和我们常见的不太一样, 需要先找到wan网卡,然后将协议切换为 PPPoE然后才能看到输入上网账号和密码的地方. 首先登录路由器 http://openwrt.lan/ 然后找到 Network --> Interfaces 这里会显示你当前的路由器的所有接口, 选择 …

Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

一、nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布 ,即均值$\mu0$,方差$\sigma1$的正态分布。 论据1——查看源代码 ## class Embedding具体实现(在此只展示部分代码) import torch from t…

【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

一、Cornerstone3D 是什么? Cornerstone3D官网:https://www.cornerstonejs.org/ 在线查看显示效果(加载需时间,可先点击运行),欢迎fork 二、代码示例 了解了Cornerstone是什么,有什么作用后&…

c JPEG编码,此程序没有处现MCU中亮度分量的排序

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/videodev2.h> //v4l2 头文件 #include <strin…

Hades-C2:一款功能强大的纯Python命令控制服务器

关于Hades-C2 Hades-C2是一款功能强大的命令控制服务器&#xff0c;该工具基于纯Python开发&#xff0c;可以帮助广大研究人员快速实现命令控制基础设施的搭建。 当前版本的Hades-C2可以用作安全分析研究或CTF比赛&#xff0c;但功能并不完善&#xff0c;目前该项目仍在积极开…

腾讯实验平台基于 StarRocks 构建湖仓底座

作者&#xff1a; 腾讯大数据平台部科学实验中心Tech Lead、专家工程师 马金勇博士 腾讯大数据平台部科学实验中心数据负责人、专家工程师 胡明杰 StarRocks Contributor、腾讯高级工程师 刘志行 在 2022 年&#xff0c;腾讯 A/B Test 团队启动了海外商业化版本 ABetterChoice …

表单生成器基于(form-create-designer+ant design vue)

效果展示 1.源码地址&#xff1a; 前端&#xff1a;https://gitee.com/houshixin/form-design-ui 后端&#xff1a;https://gitee.com/houshixin/form-design-web 2.单独使用前端的时候就把请前后台的接口注释就可以 3.都启动的话&#xff1a; 1&#xff09;.先导入数据库 2.表…

乱 弹 篇(一)

题记 对于“乱弹”这个词汇的释义&#xff0c;《辞海》上仅有“ 戏曲剧种&#xff0c;亦指声腔 ”8个字。而由于“乱弹 ”的“ 弹”谐音“谈”&#xff0c;这就容易让人联想到“乱谈”。不过从文体上看&#xff0c;“乱谈”也非乱七八糟之谈&#xff0c;反倒是“东西南北&…

高效便捷的远程管理利器——Royal TSX for Mac软件介绍

Royal TSX for Mac是一款功能强大、操作便捷的远程管理软件。无论是远程桌面、SSH、VNC、Telnet还是FTP&#xff0c;用户都可以通过Royal TSX轻松地远程连接和管理各种服务器、计算机和网络设备。 Royal TSX for Mac提供了直观的界面和丰富的功能&#xff0c;让用户能够快速便…

可盐可甜的红色马甲背心

膨体棉腈面料不易皱&#xff0c;搭配阿兰花菱形镂空设计 真的绝绝子&#xff0c;红色吸睛又美观 随便搭配一件衬衫去穿&#xff0c;自带文艺气息 氛围感直接拉满 出街拍照很出片&#xff0c;时髦又气质 女孩子的甜美&#xff0c;温柔等都可以突显 有喜欢的可以尝试一下哟…