首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql操作命令梳理(2)-alter(update、insert)

------------------------------ 如若删除带自增属性主键,那么要先删除自增长,再删除主键 Alter table haha change id id int(10);        ...haha add primary key(id);               //将haha表id添加主键 Alter table haha change id id int(10) not null...----------- 9)添加唯一限制条件索引 alter table 表名 add unique emp_name2(cardnumber);             //empname 类型 String...(但要大于表中AUTO_INCREMENT自增值,否则设置无效): mysql>ATLER TABLE 表名 AUTO_INCREMENT=100; 如果自增序列最大被删除了,则在插入新记录时,该被重用...就是说如果表中原本有AUTO_INCREMENT属性连续78、100,但100这个数据被删除了,下此再添加数据时候自增值101,100被重用了。

1.8K60

MySQL谬误集02: DDL锁表

第一次即刻加列字段数和新加字段默认放在数据字典表中se_private_data列。而记录默认主要原因是默认如果发生修改,需要有地方查到默认修改前记录。...第一次加字段时候,需要当前字段个数,以及默认,第二次加字段时候,只需要记录默认就行了。 假设第一次即刻加列字段数x,表当前字段数y,那么x <= y总是成立。...字段解析: 1.如果x == y或非没有即刻加列过,按原来方式解析 2.如果x < y,那么记录必定是在加字段前就生成,那么最后y - x个字段必NULL或默认。...2.1 如果该字段是允许NULL,则为NULL。 2.2 如果该字段不允许NULL,则为默认。 如何查询是否有即刻加列呢?...更改自增列的当前 测试二级索引添加,用了2.65秒: test_5.7_master>select current_timestamp(3);alter table sbtest add index

80332
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL 教程上

区别就是 replace into 时候会删除老记录。如果表中有一个自增主键。那么就要出问题了。 首先,因为新纪录与老记录主键值不同,所以其他表中所有与本表老数据主键id建立关联全部会被破坏。...确定 AUTO_INCREMENT 让 MySQL 生成(通过自动增量主键一个缺点是你不知道这些都是谁。 考虑这个场景:你正在增加一个新订单。...除非你有一个很特别的原因去使用 NULL ,你应该总是让你字段保持 NOT NULL。 建议创建表时候尽量将条件添加完整, 这样能较少错误数据录入机会。比如是否添加 default 。...添加字段三种写法 字段会自动添加到数据表字段末尾 ALTER TABLE contacts ADD email VARCHAR(60); 添加到头部 ALTER TABLE contacts ADD...ALTER 来修改字段默认,尝试以下实例: ALTER TABLE testalter ALTER i SET DEFAULT 1000; 你也可以使用 ALTER 命令及 DROP 子句来删除字段默认

3.4K10

数据库_mysq单表操作

今天我们学习如下五个聚合函数: l count:统计指定列不为NULL记录行数; l sum:计算指定列数值和,如果指定列类型不是数值类型,那么计算结果0; l max:计算指定列最大,如果指定列是字符串类型...第3章 SQL约束 3.1 主键约束 PRIMARY KEY 约束唯一标识数据库表中每条记录主键必须包含唯一主键列不能包含 NULL 。...3.1.1 添加主键约束 l 方式一:创建表时,在字段描述处,声明指定字段为主键: CREATE TABLE Persons( Id_P int PRIMARY KEY, LastName varchar...NOT NULL 约束强制字段始终包含。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。...3.4.1 添加唯一约束 与主键添加方式相同,共有3种, l 方式1:创建表时,在字段描述处,声明唯一: CREATE TABLE Persons( Id_P int UNIQUE, LastName

1.4K50

linux 之mysql——约束(constraint)详解

用not null约束字段不能为null,必须给定具体数据  创建表,给字段添加非空约束(创建用户表,用户名不能为空) mysql> create table t_user( -> id...,主键值不用用户维护,自动生成,自增数从1开始,1递增(auto_increment)  mysql> create table t_user( -> id int(10) primary key...:设置本表cno外键  alter table myself add foreign key classno references t_class(cno) 语法:alter table 表名称 add...表关联列设置null  alter table students add constraint mage_stu_class_fk foreign key (classid) references...classes (classid) on delete set null; 这种方式建立外键约束,当被参照数据被删除是,参照该数据那些数据对应将会变为空

2.3K20

MySQL 数据库 增删查改、克隆、外键 等操作

-> AREA_ID int(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, #指定主键另一种方式 -> AREA_NAME VARCHAR(20) NOT NULL...,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复; #自增长字段必须是主键;字段类型必须是 int 类型,如添加记录数据没有指定此字段添加失败也会自动递增一次 #unique...key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键 #not null:表示此字段不允许NULL 数据表高级操作 克隆表,将数据表数据记录生成到新表中...FROM 删除所有记录后,再次新添加记录会从原来最大记录 ID 后面继续自增写入记录。...主键表和外键表理解: (1)公共关键字作主键表为主键表(父表、主表) (2)公共关键字作外键外键表(从表、外表) 注意: 1. 与外键关联主表字段必须设置为主键。 2.

5.8K20

【数据库设计和SQL基础语法】--SQL语言概述--数据类型和约束

二、 约束 2.1 主键约束 主键约束(Primary Key Constraint)是一种用于标识表中唯一记录约束。主键是表中一列或一组列,其用于唯一标识每个记录。...主键约束作用是确保表中每条记录都具有唯一主键值,同时不允许主键列包含空NULL)。主键约束通常在创建表时定义,可以在一个或多个列上应用。...主键存在提高了数据完整性,同时也数据库系统提供了一种优化查询方式,因为可以通过主键快速定位和访问特定记录主键约束还可以在表已存在情况下通过 ALTER TABLE 语句添加。...:外键约束使用要谨慎,确保被引用主键列与外键列数据类型和一致,维护数据完整性。...这意味着在插入或更新记录时,必须这两列提供非空。 如果需要在已存在表上添加非空约束,可以使用 ALTER TABLE 语句。

19110

MySQL常用基础 - 小白必看

主键就会自动相同步长进行增长,通过给字段添加auto_increment属性来实现主键自增长 create table 表名( 字段1 类型(长度) 约束 auto_increment )auto_increment...(not null) 概念:非空约束,指字段不能为空,对于使用了非空约束字段,如果用户在添加数据时没有指定,数据库系统就会报错 字段名 数据类型 not null; alter table 表名...modify 字段 类型 not null; 唯一性约束(unique key) 概念:指所有记录中字段不能出现重复,例如id字段加上唯一性约束以后,每一条记录id都是唯一,不能重复出现。...,那么计算结果是0 聚合函数–null处理: count函数对null处理:如果count函数参数*,则统计所有记录个数,如果参数字段,则不统计含有null记录个数 sum...和avg函数对null处理:这两个函数是没有null存在,就好像是该记录不存在 max和min函数对null处理:这两个函数是没有null存在,就好像是该记录不存在 分组查询

1.2K30

MySQL 约束

1.简介 在数据库中,约束是对表中数据一种限制条件,能够确保数据完整性和一致性。 为了保证数据完整性,SQL 规范约束方式对表数据进行额外条件限制。...CREATE TABLE users ( id INT, name VARCHAR(255) UNIQUE ); 可以创建一个多列唯一约束,确保多个列组合在表中是唯一。...CHECK check_constraint_name; 删除默认约束 要删除列上默认约束,可以使用 ALTER TABLE 语句并使用 ALTER COLUMN 子句将列默认值更改为 NULL...ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT NULL; 删除非空约束 删除非空约束表示列允许空。...-- 添加检查约束 ALTER TABLE table_name ADD CHECK (new_check_expression); 修改默认约束 ALTER TABLE table_name ALTER

16410

MySQL 约束

1.1 非空(not null) 1.1.1 概述   非空约束(NOT NULL)指字段不能为空。对于使用了非空约束字段,用户在添加数据时没有指定,数据库系统就会报错。...例如, id 字段加上唯一性约束后,每条记录 id 都是唯一,不能出现重复情况。如果其中一条记录 id “0001”,那么该表中就不能出现另一条记录 id “0001”。...每增加一条记录主键会自动相同步长进行增长。通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。...主表删除某条记录时,从表中与之对应记录也必须有相应改变。一个表可以有一个或多个外键,外键可以为空,若不为空,则每一个外键必须等于主表中主键某个。...在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动这个字段插入默认。默认约束通常用在已经设置了非空约束列,这样能够防止数据表在录入数据时出现错误。

3K31

MySQL从删库到跑路_高级(一)——数据完整性

二、实体完整性实现 1、实体完整性实现简介 实体完整性实现有两种方式: A、主键约束:一张表只能有一列设置主键必须唯一,不允许空,innoDB存储引擎,主键就是索引。...B、唯一约束:一张表可以有多个列添加唯一约束,一直允许一条记录。 实体完整性,由主键和唯一性约束来实现,确保表中记录有一列唯一标识。...,不允许插入重复ID,如果不指定主键,默认为0。...table score add CONSTRAINT uc_sname UNIQUE(sname); 如果表中现有记录有重复,不允许添加唯一性约束。...sid列默认NULL ALTER TABLE `score` MODIFY COLUMN `sid` INTEGER(11) DEFAULT NULL;insert into student values

1.9K20

mysql学习笔记(四)约束与索引

主键约束分为单列主键约束和复合主键约束 单列主键约束id int key; 复合主键约束 create table dbtest( id int auto_increment, name varchar...set null方式:主动权在主表上,如果主表被依赖字段修改了,从表外键字段会将设置Null,这里要求,外键字段不能有非空约束。...set default方式:主动权在主表上,如果主表被依赖字段修改了,从表外键字段会将设置default,这里要求,外键字段必须有默认约束。...:seed和increment,seed是ID初始,increment是ID增量。...not null; PS 约束删除方法 alter table 数据库名.数据表名 drop index 约束名 约束有多种方法添加 添加not null/unique/key尾缀, 添加foreign

1.9K00

SQL笔记(1)——MySQL创建数据库

例如,我们可以使用 ALTER TABLE 添加列,更新现有的列数据类型,添加限制约束条件等等。这个命令是关系型数据库管理系统(RDBMS)中必不可少一个功能。...利用ALTER TABLE新增新列 当我们需要在已有的数据库表中添加列时,可以使用 ALTER TABLE 命令来实现。...下面是一个使用 ALTER TABLE 添加新列示例 SQL 语句: ALTER TABLE 表名 ADD 列名 数据类型; 其中,表名 表示要修改目标表名,列名 表示要添加新列名,数据类型...需要注意是,当我们向一个已存在表中添加列时,新列默认 NULL,如果需要给新列赋默认,可以使用 DEFAULT 关键字。...主键是一种用于唯一标识关系型数据库表中每一个记录一列或若干列(确保它们组合在整个表中是唯一)。

3K20

MySQL

,一般情况下主键设置自增 not null 代表当前列数据在添加时不能省略 default 默认 foreign key(字段名) 设置外键 COMMENT '学号' 说明 engine=innodb...主外键关系名称,一般都是全大写,FK前缀,多个单词之间用下划线(_)分隔。 设置完主外键关系之后,子表中添加数据时外键字段中数据在主表中必须存在,如果不存在将会引发异常。...7.3.2 SQL操作 主键(唯一,非空,标识该条记录是一条唯一记录) : 创建主键有两种方式: 1) 第一种在建表时创建 create table grade( gradeId int...table 表名 add constraint PK_主键名 primary key 表名(主键字段名); 案例:alter table student add constraint PK_GRADE_ID...primary key student(studentno) 外键(两表之间逻辑关联,降低数据冗余): 外键创建两种方式: 1) 第一种建表时没有指定,后期进行添加 语法: alter table

15420

第13章_约束

它是防止数据库中存在不符合语义规定数据和防止因错误信息输入输出造成无效操作或错误信息而提出。 为了保证数据完整性,SQL 规范约束方式对表数据进行额外条件限制。...主键约束对应着表中一列或者多列(复合主键) 如果是多列组合复合主键约束,那么这些列都不允许,并且组合不允许重复。...set (0.00 sec) 从结果可以看出,虽然删除了 id 4 记录,但是再次插入空时,并没有重用被删除 4,而是分配了 5。...删除 id 5 记录,结果如下: DELETE FROM test1 where id=5; 重启数据库,重新插入一个空。...设置自增属性(AUTO_INCREMENT)时候,还可以指定第一条插入记录自增字段,这样新插入记录自增字段从初始开始递增,如在表中插入第一条记录,同时指定 id 5,则以后插入记录

30630

【MySQL】04_约束

约束 概述 为了保证数据完整性,SQL规范约束方式对表数据进行额外条件限制。...字段名 数据类型 not null; 删除非空约束 alter table 表名称 modify 字段名 数据类型 NULL;#去掉not null,相当于修改某个非注解字段,该字段允 许空 或 alter...#如果是两个或更多个字段,那么复合唯一,即多个字段组合是唯一 #方式1: alter table 表名称 add unique key(字段列表); #方式2: alter table 表名称 modify.../delete记录时,同步update/delete掉子表匹配记录 Set null方式 :在父表上update/delete记录时,将子表上匹配记录列设为null,但是要注意子表外键列不能为not...设置自增属性(AUTO_INCREMENT)时候,还可以指定第一条插入记录自增字段,这样新插入记录自增字段从初始开始递增,如在表中插入第一条记录,同时指定id5,则以后插入记录id

2.4K20

MySQL初级篇(二)

一、列属性1、 主键主键(primary key):又叫主键约束,是表中一个或多个字段,它用于唯一标识表中某一条记录。...(字段名称,)---但不常用---删除主键alter table 表名 drop primary key;12345678主键建立原则:主键应是对用户没有意义不要更新主键主键不应包含动态变化数据,...创建唯一键字段名称 数据类型 unique key---添加唯一键并且自定义名称alter table 表名 add unique key 唯一键名称(字段,)---删除唯一键alter table 表名...alter table 表名称 modify 字段名称 数据类型;注意:使用此方法不光清除了自增长,只留下键---修改自增长alter table 表名称 auto_increment = ---修改步长...set auto_increment_increment = 1234567891011124、 其他属性空属性用null表示,在mysql中允许使用列设置null或者not null1null:当没有给该字段添加任何时候就是

14560

MYSQL学习心得(一) 简单语法

问:如果有一张表,里面有个字段id自增主键,当已经向表里面插入了10条数据之后,删除了id8,9,10数据,再把mysql重启, 之后再插入一条数据,那么这条数据id应该是多少,是8,还是11...这是因为两种类型存储引擎所存储最大ID记录方式不同,MyISAM表将最大ID记录到了数据文件里,重启mysql自增主键最大ID也不会丢失;  而InnoDB则是把最大ID记录到了内存中,...'column' -- varchar(13) --mysql ALTER TABLE emp2 CHANGE id iid BIGINT 7、添加字段  添加字段语法差不多,但是MYSQL里可以使用...删除字段不需要添加COLUMN关键字 --sqlserver ALTER TABLE [dbo]....这是因为两种类型存储引擎所存储最大ID记录方式不同,MyISAM表将最大ID记录到了数据文件里,重启mysql自增主键最大ID也不会丢失;  而InnoDB则是把最大ID记录到了内存中,

2.3K10
领券