首页 > 数据库 >MySQL 复习(一):建表约束

MySQL 复习(一):建表约束

时间:2024-10-24 15:31:17浏览次数:8  
标签:建表 复习 -- 约束 user MySQL table alter name

MySQL 复习(一):建表约束

@

目录


MySQL 复习(一):建表约束

在这里插入图片描述

1. 主键约束

        -- 	添加:alter table  table_name add primary key (字段)
        -- 	删除:alter table table_name drop primary key

1.1 添加主键约束

1.1.1 建表前添加主键约束
create table user(
	id int primary key, # primary key
	name varchar(20)
);

describe user # 查找约束

1.1.2 建表后添加主键约束
	
 --  alter table 表名 add primary key(字段名)
	alter table user add primary key(id)
 -- alter table 表名 modify 字段 字段类型 primary key	
	alter table user modify id int primary key
	
	describe user # 查找约束
	

1.2 删除主键约束

alter table <表名> drop primary key;

alter table user drop primary key;

describe user # 查找约束
	


2. 外键约束

-- 	     添加:alter table table_name add constraint 约束名 foreign key(外键列) 
-- 		 references 主键表(主键列)
-- 		 删除:
-- 		 第一步:删除外键
-- 		     alter table table_name drop foreign key 约束名
-- 		 第二步:删除索引
-- 			alter  table table_name drop  index 索引名
			
			# 约束名(外键名)和索引名一样

2.1 添加外键约束

2.1.1 建表前添加外键约束

-- 班级表
create table class(
	id int primary key,
	name varchar(20)
);
-- 学生表
create table student(
		id int primary key,
		name varchar(20),
		class_id int,
		foreign key(class_id) references class(id) #建表前添加外键约束
);

describe user # 查找约束

2.1.2 建表后添加外键约束
-- alter table 表1
-- add FOREIGN KEY(表1的关联列) 或者 add constraint 外键名 FOREIGN KEY(表1的关联列)
-- references 表2(表2的关联列);
	
alter table table_name
add FOREIGN KEY(column_name) 
references table_name(clolumn_name);
	
describe user # 查找约束

2.2 删除外键约束

-- alter table 表
-- drop FOREIGN KEY 表的外键名(可以通过 #show create table 表名;# 命令行查找外键名);

alter table student
drop FOREIGN KEY student_fk_name;

describe user # 查找约束

3. 自增约束

 -- 添加:alter table table_name  modify 列名 int  auto_increment
     -- 删除:alter table table_name modify 列名 int

3.1 添加自增约束

-- 3.1.1 建表前添加自增约束
drop table if exists user;
create table user(
	id int primary key auto_increment, # auto_increment
	name varchar(20)
);
describe user # 查找约束

3.1.2 建表后添加自增约束

-- 添加:alter table table_name  modify 列名 int  auto_increment (此前提是<列名>必须先是主键)
	alter table user modify id int auto_increment; # id 为主键
	
	describe user # 查找约束
	
	




3.2 删除自增约束

 
 -- alter table table_name modify 列名 int 
    alter table user modify id int
 
 	describe user # 查找约束

4 唯一约束

   -- 添加:alter table table_name add unique 约束名 (字段)
         -- 删除:alter table table_name drop key 约束名
	

4.1 添加唯一约束

4.1.1 建表前添加唯一约束
约束修饰字段的值不能重复
drop table if exists user;
create table user(
	id int primary key,
    name varchar(20),
	unique(name)  # 唯一约束
);


describe user # 查找约束




4.1.2 建表后添加唯一约束
-- 添加:alter table table_name add unique(列名)
	  
	alter table user add unique(name) # name 添加唯一约束
	
	describe user # 查找约束
	

4.2 删除唯一约束

 -- 删除:alter table table_name drop key 列名
	
	 alter table user drop key name
	
      describe user # 查找约束

5. 非空约束

   -- 添加:alter  table table_name modify 列名 数据类型  not null 
        -- 删除:alter table table_name modify 列名 数据类型 null
	

5.1 添加非空约束

5.1.1 建表前添加非空约束
-- 修饰字段不能为空
	drop table if exists user;
	create table user(
		id int,
		name varchar(20) not null  # not null 非空约束
	);
	
	 describe user # 查找约束

5.1.2 建表后添加非空约束
-- ALTER TABLE <数据表名>
-- CHANGE COLUMN<字段名>
-- <字段名> <数据类型> NOT NULL;
alter table user change name name varchar(20) not null;
 describe user # 查找约束

5.2 删除非空约束

-- ALTER TABLE <数据表名>
-- CHANGE COLUMN<字段名> 
-- <字段名> <数据类型> NULL;
alter table user change name name varchar(20) null;
	
	 describe user # 查找约束
	

6. 默认约束

6. 添加默认约束

  --  添加:alter table table_name alter 列名  set default '值'
   --  删除:alter table table_name alter 列名  drop default
6.1.1 建表前添加默认约束
当我们插入字段时候,如果没有传值,就会使用默认值
drop table if exists user;
	create table user(
	id int,
	name varchar(20),
	age int default 10  # 默认约束 default
	);
	
	describe user # 查找约束
	

6.1.2 建表后添加默认约束
添加:
    alter table table_name alter 列名  set default '值'
	
	alter table user alter age  set default 10
	
	describe user # 查找约束
	

6.2 删除默认约束

 删除:alter table table_name alter 列名  drop default
	
	alter table user alter age  drop default
	
	describe user # 查找约束
	

7 alter 如何改变<字段名>和<字段类型>以及<表名>

# 把表1<table_name1>更名为表2<table_name2>
rename table table_name1 to table_name2


 
# 增添一个字段,默认(不)为空
   alter table table_name add COLUMN 字段列名 VARCHAR(20) DEFAULT (NOT) NULL; 



# 删除一个字段
  alter table table_name DROP COLUMN 字段列名;


# 修改一个字段的类型
  alter table table_name MODIFY 字段列名1 字段类型;


# 修改一个字段的名称,此时一定要重新指定该字段的类型
  alter table table_name CHANGE 字段列名1 字段列名2 字段类型;

==================================================================================================================================================================================================================================================================

1.主键约束  
添加:alter table  table_name add primary key (字段) 
删除:alter table table_name drop primary key
2.非空约束
添加:alter  table table_name modify 列名 数据类型  not null 
删除:alter table table_name modify 列名 数据类型 null
3.唯一约束
添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop key 约束名
4.自动增长
添加:alter table table_name  modify 列名 int  auto_increment
删除:alter table table_name modify 列名 int  
5.外键约束
添加:alter table table_name add constraint 约束名 foreign key(外键列) 
references 主键表(主键列)
删除:
第一步:删除外键
alter table table_name drop foreign key 约束名
第二步:删除索引
alter  table table_name drop  index 索引名
[^1]: 
约束名和索引名一样
6.默认值
添加:alter table table_name alter 列名  set default '值'
删除:alter table table_name alter 列名  drop default





关注公众号,有惊喜哦!

在这里插入图片描述





标签:建表,复习,--,约束,user,MySQL,table,alter,name
From: https://www.cnblogs.com/mingcoder/p/18499696

相关文章

  • 5金蝶生产订单对接商城:从金蝶云星空到MySQL的数据集成方案
    5金蝶生产订单对接商城:从金蝶云星空到MySQL的数据集成方案在企业信息化系统中,数据的高效流动和准确处理是业务成功的关键。本文将分享一个实际运行的技术案例——如何通过数据集成平台,将金蝶云星空中的生产订单数据无缝对接到MySQL数据库中,实现业务流程的自动化与优化。本次集......
  • Centos7 安装 mysql8.0 (RPM安装版)
    1.下载mysql8.0的rpm安装包     rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!!下载页面:MySQL::DownloadMySQLCommunityServer文件下载地址: https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar......
  • mysql无法成功启动服务怎么办
    在遇到MySQL无法成功启动服务的情况下,应采取的步骤和解决方法:1.检查错误日志;2.检查端口冲突;3.检查配置文件;4.检查磁盘空间;5.检查文件权限;6.数据库修复;7.使用日志和监控工具;8.寻求专业帮助,以确保数据库系统能够正常运行。MySQL是许多应用程序和网站的核心数据库管理系统之一。1......
  • 一文彻底弄懂MySQL的优化
    在企业级Web开发中,MySQL优化是至关重要的,它直接影响系统的响应速度、可扩展性和整体性能。下面从不同角度,列出详细的MySQL优化技巧,涵盖查询优化、索引设计、表结构设计、配置调整等方面。一、查询优化1.合理使用索引单列索引:为查询频繁的字段(如WHERE、ORDERBY、GROUP......
  • [复习] 数论基础
    [复习]数论基础模运算\[(a\pmb)\bmodp=((a\bmodp)\pm(b\bmodp))\bmodp\]\[(a\timesb)\bmodp=((a\bmodp)\times(b\bmodp))\bmodp\]积性函数\[\forall\gcd(x,y)=1,f(xy)=f(x)\timesf(y)\]完全积性函数\[\forallx,y\inN^+,f(xy)=f(x)\timesf(y)\]g......
  • 【MySQL】提高篇—理论讲解与案例分析:实践练习:编写复杂查询、创建视图和存储过程
    关系数据库是存储和管理数据的核心工具。随着数据量的不断增加和业务需求的复杂化,开发者和数据分析师需要掌握编写复杂查询、创建视图和存储过程的技能。这些技能不仅能够提高数据操作的效率,还能确保数据处理的准确性和安全性。复杂查询:能够从多个表中提取相关数据,进行联接、......
  • Python连接MySQL
    要使用Python连接MySQL并操作数据,通常会使用pymysql或mysql-connector-python这样的库。使用pymysql库来连接MySQL、读取表并按照某个关系将它们连接起来。1、安装必要的库:pipinstallpymysqlpandas2、连接MySQL并读取数据:importpymysqlimportpandasaspd#MySQL......
  • MYSQL-SQL-01-DDL(Data Definition Language,数据定义语言)
    DDL(数据定义语言)DDL(DataDefinitionLanguage),数据定义语言,用来定义数据库对象(数据库,表,字段)。一、数据库操作1、查询mysql数据库管理系统的所有数据库语法:showdatabases;示例:2、查询当前所在的数据库语法:selectdatabase();示例:3、创建数据库语法:([]括号......
  • mysql 行级锁,四种事务隔离级别,两种读
    只说innodb存储引擎1.默认使用行级锁InnoDB存储引擎默认使用行级锁定(Row-LevelLocking)来提高并发性能和数据一致性不可更改2.四种事务隔离级别,默认是Repeatable级别(可重复读)问题场景:脏读1.A进行了一条数据操作,但是没有提交事务,如果此时B进行这条数据的查询,是可以查......
  • 挑战中,Java面试题复习第5天,坚持就是胜利。
     ......