主键约束,唯一约束,默认约束,检查约束,删除主键,删除外键按,删除列,添加列「终于解决」

主键约束,唯一约束,默认约束,检查约束,删除主键,删除外键按,删除列,添加列「终于解决」表的约束: 关键字:constraint 约束是一种表级别的限制,它通过对表的数据限制来保证数据的完整性和一致性 常见约束: 主键约束(primary key) 用途:就是用来约束其中的一列,作为所有

主键约束,唯一约束,默认约束,检查约束,删除主键,删除外键按,删除列,添加列

表的约束:

关键字:constraint
约束是一种表级别的限制,它通过对表的数据限制来保证数据的完整性和一致性
常见约束:

主键约束(primary key)

用途:就是用来约束其中的一列,作为所有列中的标识符(这一列的唯一代表),

在一张表中通过主键可以准确定位到一列。可以避免列中数据的重复。
主键的特性:
1.唯一约束
2.非空约束
语法:
1.create table [库名].表名 (列名1 数据类型1(长度)
primary key,列名2 数据类型2(长度));
2.create table [库名].表名 (列名1 数据类型1(长度),
列名2 数据类型2(长度),primary key(列名1));

第一种创建主键方式
create table school.bbq(
id int(2) primary key,
name varchar(3),
tall int(4),
age int(3)
);
insert into school.bbq values
(1001,”小贺”,170,20),
(1002,”小窦”,184,20),
(1003,”小张”,175,20),
(1004,”小王”,170,20);
— 验证主键的唯一性约束
insert into school.bbq(id,name) values (1002,”小周”);
— 验证主键的非空约束
insert into school.bbq name) values (“小杨”);

— 第二种主键创建方式
create table school.qqq(
id int(2),
name varchar(3),
age int(2),
sex varchar(2),
primary key(id)
);

2.唯一约束(unique)
用途:用来约束一列中的所有数据,不能重复。

create table school.aaa(
id int(3) unique,
name varchar(3),
age int(4)
);
3.非空约束(not null)
用途:用来约束一列中的所有数据,不能为null。
注意:所有数据类型都可以是空。
create table school.bbb(
id int(3) not null,
name varchar(3),
age int(4)
);

默认约束(default)

用途:在规定了的默认值约束的列时,不向该列插入其他数据,则该数据为默认数据
语法:create table 表名(列名1 数据类型1(长度)default 默认值,列名2 数据类型2(长度));

外键约束(foregin key)

用途:也能确保数据的完整性也能展现和其他表的关系,

一个表可以一个或多个外键,每个外键必须(references)另一个表的主键或唯一键。
语法:
create table 表名(列名1 数据类型1(长度),列名2 数据类型2(长度),
forrign key(本表外键列名) references 被引用的表(被引用的列));

create table school.bbp(
id int(3),
tall int(3),
brithday date,
foreign key(id) references bbq(id)
);

检查约束(check)

该约束在mysql上停用了,语句不会报错,但没有实际用处
作用:用于限制列中的值的范围,比如 check了一列,那么该列只允许特定的值。
语法:

create table 表名 (列名1 数据类型1(长度),列名2,
数据类型2(长度),check(表达式))
例如:check(id>0)
create table school.qqq(
id int(2),
name varchar(3),
check(id>0)
);

查看一个表的键值

语法:show keys from 表名;

表的修改

为表添加主键约束

语法:alter table 表名 add primary key(列名);
create table school.bbq(
id int(2),
name varchar(3),
age int(2)
);
desc school.bbq;

— 查找展示主键数量
show keys from school.bbq;
— 为表添加主键
alter table school.bbq add primary key(id);
show keys from school.bbq;
desc school.bbq;

修改表的名字

语法:alter table 旧表名 rename to 新表名;
alter table school.bbq rename to school.bbb;

将表中的主键删除

语法:alter table 表名 drop primary key;

alter table school.bbq drop primary key;

为表中添加非空约束 modify :重新定义的意思

语法:alter table 表名 modify 列名 数据类型(长度) not null;

为表中的列添加非空约束—重新定义列的类型与约束

语法: alter table 表名 modify 列名 数据类型(长度) 列约束;
alter table school.bbq — 修改的表
modify name varchar(4) — 修改表中的某个对象列
not null; — 不为空
alter table school.bbq
modify name varchar(3);

修改表中的某个列名—-可以修改原类型的长度载数据兼容的情况下也可以修改原类型

语法:alter table 表名 change 旧列名 新列名 数据类型(长度);
注意:空串不等于空,空串是字符串类型
alter table school.student change id Sid int(3);
alter table school.student change Sid sid int(3);
alter table school.student change sid id int(2);
alter table school.student change id ID int(5);
desc school.student;
alter table school.student change ID Id int(5);

为表添加一列或多列

— 单列

语法:alter table 表名 add column 列名 数据类型(长度);
alter table school.student add column hahaha int(2);
— 改变表中某列的列名
alter table school.student change hahaha card int(2);

— 多列

语法:alter table 表名 add column
(列名1 数据类型1(长度),列名2 数据类型2(长度));
alter table school.student add column (idcard1 int(2),idcard2 int(3));

修改表中指定的列的数据类型

语法1:alter table 表名 modify [column]列名 新数据类型(长度);

alter table school.student modify column card varchar(3);

删除列

语法:alter table 表名 drop column 列名;
语法;alter table 表名 drop column 列名1,
drop column 列名2,drop column 列名3;
alter table school.student drop column idcard1;
alter table school.student drop column id1;
alter table school.student drop column id2;
alter table school.student drop column idcard;
alter table school.student drop column id1,drop id2,drop id3;

增加多个列

alter table school.student add column(id1 int(2),id2 int(2),id3 int(2));

创建表时指定列为主键

语法:create table 表名 (列名1 数据类型1(长度) primary key,

列名2 数据类型2(长度) primary key)
语法:create table 表名 (列名1 数据类型1(长度),
列名2 数据类型2(长度) primary key(列名1,列名2));

创建表时指定某一列为外键

语法: create table 表名(列名1 数据类型1(长度),列名2 数据类型2(长度), 

foreign key(本表列) references 被引用的表(被引用的列);
在添加外键时指定该约束的名字
语法:alter table 表名 表名(列名1 数据类型1(长度),列名2 数据类型2(长度),
constraint 约束名 foreign key(本表列) references 被引用的表(被引用的列);
注意:引用被引用的列的数据类型(包括约束)需要一致
create table school.student1 (
id int(2),
name varchar(2),
age int(2),

constraint id foreign key (id) references student(id)
);

删除指定表中的外键约束

1.删除外键
语法:alter table 表名 drop foreign key 外键名;
2.删除索引
语法:drop index 索引名 on 表名;

alter table school.student1 drop foreign key student1_ibfk_1;

drop index id on school.student1;

show keys from school.student1;

原文地址:https://www.cnblogs.com/cn-zhouchao/archive/2022/07/07/16455523.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5045.html

(0)
上一篇 2023-05-25
下一篇 2023-05-25

相关推荐

  • 分布式 | ddl 失败在 dble 中排查过程[通俗易懂]

    分布式 | ddl 失败在 dble 中排查过程[通俗易懂]作者:冒飞 爱可生 dble 项目测试组成员,负责 dble 相关测试工作,拥有多年数据库中间件测试经验,擅长故障排查及性能调优。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意…

    2023-03-05
    109
  • java JDBC工具类 分包[通俗易懂]

    java JDBC工具类 分包[通俗易懂]JDBC工具类 “获得数据库连接”操作,将在以后的增删改查所有功能中都存在,可以封装工具类JDBCUtils。提供获取连接对象的方法,从而达到代码的重复利用。 该工具类提供方法:public sta…

    2023-03-29
    115
  • Python参数定义规范

    Python参数定义规范在Python编程中,函数参数的定义对于代码的可读性和可维护性非常重要。遵循Python参数定义规范可以帮助我们编写更加健壮且易于维护和使用的代码。本文将从多个方面对Python参数定义规范进行详细阐述。

    2024-02-11
    43
  • 安装Python教程

    安装Python教程Python是一种高级编程语言,它强调代码可读性和简洁的语法设计。它是一种动态类型、面向对象的语言,可以跨平台运行,非常适合用于数据分析、科学计算、自然语言处理、网站开发等多个领域。

    2024-04-28
    30
  • 创建漂亮的用户界面 – 了解Python的Tkinter GUI框架

    创建漂亮的用户界面 – 了解Python的Tkinter GUI框架Tkinter是Python标准库中的一个GUI(图形用户界面)工具包。它为Python程序提供了一个本地的、跨平台的GUI环境。Tkinter简单易用,是学习Python GUI编程的一个不错的入门框架。在这篇文章中,我们将深入探讨Tkinter库,并提供一些例子和技巧,以帮助您更好地理解GUI编程的概念和工作原理。

    2024-01-04
    63
  • 数栈优化案例:物流客户Elasticsearch集群性能优化

    数栈优化案例:物流客户Elasticsearch集群性能优化本文整理自:袋鼠云技术荟 | 某物流客户Elasticsearch集群性能优化案例 数栈是云原生—站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,Flink…

    2023-04-13
    107
  • Python stats.linregress实现线性回归分析

    Python stats.linregress实现线性回归分析线性回归分析是一种统计学方法,主要用于对两个变量之间的线性关系进行建模和分析。通常情况下,这种方法基于最小二乘法,通过找到最合适的直线来最好地描述两个变量之间的关系。

    2024-01-24
    61
  • MYSQL性能优化以及建议

    MYSQL性能优化以及建议1、业务代码组合逻辑后进行数据库操作,如根据波次进行库存分配,可以将波次里面的订单所有明细进行分组,然后匹配库存。2、将大字段、不常用字段放置到扩展表中,将经常使用(状态、数量、编号)放到一张表中,预

    2023-04-22
    118

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注