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

MySQL【第二章】——&&约束

一、数据类型   MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...date: yyyy/MM/dd     time: HH/mm/ss     datetime: yyyy/MM/dd/HH/mm/ss     timestamp: 1970-01-01  二、...&约束 1.约束   1.1 主键约束(PRIMARY KEY)     主键约束:唯一、不重复、不为空;每个都应该有一个主键,并且每一个只能有一个主键。    ...例如:   1) 性别:sex char(1) default '男'     2) 日期:createdate timestamp default current_timestamp 2....KEY 约束名;   3)新增主键:   ALTER TABLE 名 ADD PRIMARY KEY(主键名称);   4)删除主键主键只有一个直接删除即可   ALTER TABLE

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

    mysql常见的选项和约束

    create table选项 指定列选项:default 当插入一个新行到中并且没有给该列明确赋值,如果定义了列的默认值,将自动得到默认值 ;如果没有,则为null。...约束主要是防止非法数据进入中,保证数据的正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL约束保存在information_schema.table_constraints中...,类型一般为整型或者字符串 具有主键约束的列不允许有null值,不允许有重复值 每个最多只允许一个主键,可定义联合主键主键名总是PRIMARY 联合主键 用几个列来进行唯一标识一行 constraint...保证一个或两个之间的参照完整性,外键是构建于一个的两个字段或者是两个的两个字段之间的参照关系 注意: 具有外键约束的列的值不能随便给,必须满足外键所引用的主键的取值 一张中可以定义多个外键 外键列默认可以给...MySQl中可以使用check约束,但是check约束对数据验证没有任何作用。

    13910

    MySQL主键约束使用

    MySQL主键约束是一种用于确保中每行数据的唯一性的限制。每个只能有一个主键,它可以是一个或多个列。创建添加主键约束在创建添加主键约束,需要在列名后面添加关键字"PRIMARY KEY"。...这意味着在插入数据,必须确保"id"列的值唯一,否则将会出现错误。在已经存在的中添加主键约束如果已经存在一个,但需要将某些列或字段添加主键约束,可以使用ALTER TABLE语句来修改结构。...例如,以下是向已经存在的中添加主键约束的示例:ALTER TABLE my_tableADD PRIMARY KEY (id);在上面的示例中,"id"列被指定为主键。...需要注意的是,在修改结构,必须将该列中已经存在的值都设置为唯一,否则会出现错误。主键约束和自增列通常情况下,主键约束通常与自增列一起使用。自增列是指在插入新行时,自动为该行分配一个唯一的值。...这意味着在插入数据,无需提供"id"列的值,MySQL会自动为其分配一个唯一的值。示例假设有一个用户,其中包含以下列:id、name和email。

    2.6K20

    MySQL数据库——约束(非空约束、唯一约束主键约束、外键约束)

    UNIQUE ); 注意:MySQL中唯一约束限定的列的值可以有多个null 2)删除唯一约束: -- alter table stu modify number varchar(20); 不同于非空约束的删除方法...主键约束:primary key 1)注意: 若某一列添加了该约束,则代表了非空,且唯一; 一张只能有一个字段为主键主键就是中记录的唯一标识; 2)创建添加主键约束 CREATE TABLE...在创建 添加主键约束,且完成主键自增长  CREATE TABLE stu( id INT PRIMARY KEY AUTO_INCREMENT, number VARCHAR(20) ); 删除自动增长...以上仍然存在一个问题,当在员工中输入不存的部门,数据依然可以添加,不符合实际,因此,这里就可以通过使用外键约束来解决。 【概念】什么是外键约束?...id,同时希望自动改动员工中的id,这时就需要进行级联操作,需要在添加外键的时候设置级联: 添加级联操作:ALTER TABLE 名称 ADD CONSTRAINT 外键名称 FOREIGN KEY

    14K21

    oracle主键、外键基本语法

    主键:唯一标识,不能为空,加快查询速度,自动创建索引 外键:约束的数据的更新,从定义外键可以发现 外键是和主键联系,数据类型要统一,长度(存储大小)要统一。...这样在更新数据的时候会保持一致性 -创建表格语法: create table 名( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型 是否为空...); -增加主键 alter table 名 add constraint 主键名 primary key (字段名1); -增加外键: alter table 名...add constraint 外键名 foreign key (字段名1) references 关联 (字段名2); 在建立表格就指定主键和外键 create table...varchar2(8) not null, constraint PK_T_STU primary key (STU_ID) ); 主键和外键一起建立

    3.1K50

    【说站】sql如何设置主键、如何删除主键约束

    介绍一下在phpmyadmin下如何设置主键、删除主键。...如果字段已经建好,可以用以下命令来设置主键,当然前提是id为自增字段,一般设置为int数据类型,主键建议使用bigint类型,如果是其他数据类型的话设置主键会报错。...ALTER TABLE `tmp2` ADD PRIMARY KEY( `id`); 也可以通过phpmyadmin界面进行操作,可以选择数据,选择“结构”,选取需要设置主键的字段,点击“主键”即可完成设置...如果要删除上面的主键约束,可以直接点击上图下方的“删除”,修改主键可以选择“编辑”更改其他字段为主键。...当然也可以用以下命令来删除主键约束: ALTER TABLE `tmp2` DROP PRIMARY KEY; 收藏 | 0点赞 | 0打赏

    3K20

    MySQL知识点】唯一约束主键约束

    ‍ 哈喽大家好,本次是MySQL数据库原理系列第七期 ⭐本期是MySQL约束——唯一约束主键约束 系列专栏:MySQL数据库 笔者还是前端的菜鸟,还请大家多多指教呀~ 欢迎大佬指正,...当约束仅建立在一个字段上,其作用效果与列级效果相同。 由以下结果我们可以发现,添加唯一约束后,插入重复记录会失败。...创建复合唯一约束级唯一性约束创建,unique()的字段列表中,可以添加多个字段,组成复合唯一键,特点是只有多个字段的值相同时才视为重复记录。...主键约束 定义 在MySQL中,为了快速查找中的某条信息,可以通过设置主键实现。主键可以唯一标识中的记录。...插入数据 插入NULL,会插入失败,提示id字段不能为NULL 插入重复值也会失败,提示”1“已经存在主键

    2.8K30

    MySql约束

    中一定要有各种约束,通过约束,让我们未来插入数据库中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。...into t13(name) values ('李四'); deault:如果设置了,用户将来插入,有具体的数据就用,没有就默认 如果我们没有明确指定一列要插入,用的是default,如果中,对应列默认没有设置...主键 primary key 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张中最多只能有一个。但是并不意味着一个中的主键,只能添加给一列。...外键foreign key 外键用于定义主表和从之间的关系:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...建立外键的本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql不允许你插入。

    19430

    MYSQL约束

    table test1( id int not null, name varchar(5) not null ); 我们每列的参数之后设置了not null之后,我们插入数据就不能插入空数据了...五、主键 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张中最多只能有一个主键主键所在的列通常是整数类型。...create table stu(     -> id int primary key comment '学号',     -> name varchar(5)     -> ); 我们将id设置主键...这样可以使对应于的SQL语句执行得更快,可快速访问数据库中的特定信息 七、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一性约束的问题...int auto_increment primary key, name varchar(5) unique ); 八、外键 外键用于定义主表和从之间的关系:外键约束主要定义在从上,主表则必须是有主键约束

    24040

    MySQL约束

    反过来,在 mysql 角度,凡是插入进来的数据,都是符合数据约束的!约束的最终目的就是保证数据的完整性和可预期性。因此我们需要更多的约束条件!...当用户忽略了这一列的时候,如果设置了 default,就是用默认值,如果没有设置,就直接报错,因为有 not null 约束。...通过 show 看看 t3 表语句: 可以看到 int(10),这个代表什么意思呢?整型不是 4 字节吗?这个 10 又代表什么呢?...的值由原来的 1 变成 00001,这就是 zerofill 属性的作用,如果宽度小于设定的宽度(这里设置的是 5),自动填充 0;要注意的是,这只是最后显示的结果,在 MySQL 中实际存储的还是1...建立外键的本质其实就是把相关性交给 mysql 去审核了,提前告诉 mysql 之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql 不允许你插入。

    14010

    MySQL约束

    三.默认值default 实际上就是缺省值,设定之后,即便不对这个字段进行插入,其对应的值也会默认为default后面跟着的值。 插入default对应的字段后,就会将缺省值覆盖。...主键主键所在的列通常是整数类型,比如学号,编号等具有唯一性质的数据。 1.唯一主键 创建约束某一字段为主键。...删除主键约束 这样,插入的数据就可以重复,但是通过观察,仍不能为空,因为not null在创建的添加约束期间会一并添加到约束。不过有了主键,才能更好的查找数据,因为其具有唯一性。...因此,为了避免这种情况,最好在创建一并添加主键约束。 2.复合主键 回到上述定义,一张中最多只能有一个主键,但这并不意味着一个中的主键只能添加到一列。...3.自增长auto_increment 自增长也算主键的一种。将其设置主键,就不用继续管它,插入数据它本身会为了防止重复而自增+1。

    21650

    修改数据之添加主键约束

    上一篇是对表中列的操作: 涉及到列的增删改查; ----- 而本篇是设置一个与另一个的关系,还有列的默认值; ---- 1.一个创建之后, 需要对这个中的一个字段设置主键: alter table...table_name add primary key (id); alter table 名 add primary key (字段名); 2.一个创建之后, 需要对这个中的一个字段设置为唯一约束...: alter table table_name add unique (id); alter table 名 add unique (字段名); 3.一个创建之后, 需要对这个中的一个字段设置为外键约束...key (外键字段名) references 外键约束名 (外键约束字段名); 例如:把test2中pid字段设置为外键,外键约束是test1的id字段 alter table test2 add...test2 alter password2 set default 123456; 5.删除默认约束 一个创建之后,需要把设置为默认值的字段取消设置默认值; alter table table_name

    1.2K110

    MySQL主键为0和主键自排约束的关系

    开始不设置主键 的设计如下: 如果id的位置有好几个0的话:设置主键并且自动排序时,0会从1开始递增; Insert 进去 id = 0的数据,数据会从实际的行数开始增加,和从0变化不一样;...如果使用主键自排约束以前表里有0,再设置主键自排以后所有的0又不会根据行数,而是直接按照自上而下的顺序从1开始排。...如果把中的某个主键的数改成0,那直接就会进行排序放到正数前面,也就是说主键自排是允许有0存在的,那为什么本身存在的0要去修改成从1开始的递增序列呢?...哪怕没加主键自排以前只有一个0,加了主键自排以后还是会变成1。   开始有0,增加主键自排约束,0依次变为1,2,3,4.......   ...说得简单一点就是,增加主键自排约束后:    主键的值:修改成的0,可以存在,就是排个序。         新添加的0,不允许存在,要根据行号改变。

    4.3K30

    mysql自增主键设置

    mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录,系统自动生成字段的主键值。可以通过为主键添加AUTO_INCREMENT关键字来实现。...默认情况下,在MYSQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1.一个只能有一个字段属用AUTO_INCREMENT约束,且该字段必须为主键的一部分。...AUTO_INCREMENT约束的字段可以是任何整数类型(TINTINT、SMALLINT、INT、BIGINT等) 设置的属性值自动增加的语法规则如下: 字段名 数据类型 AUTO_INCREMENT...创建,指定编号自动递增 create table tb_emp8( id int(11) PRIMARY KEY auto_increment, name VARCHAR(25) not null...FLOAT ); 执行插入语句: insert into tb_emp8(name,salary) values('lucy',1000),('lura',1200),('kevin',1500); 查看数据

    11.1K30

    oracle常用基础命令创建多字段组合主键约束查看表的主键名称 注意大写禁用开启主键约束删除约束等效上面

    select file_name from dba_data_files where tablespace_name='$tablespace_name'; 修改空间 # 设置联机或脱机状态 alter...a 插入数据 insert into (id,username,regdate) values (1,'alicfeng',sysdate); 复制数据 # 复制数据 create userinfo_new...as select * from userinfo; create userinfo_new as select id,username from userinfo; # 在添加复制 对用的字段名可以不一样...not null, ... ) - 主键约束 create table $table_name ( column_name datatype primary key, ... ) 多字段组合主键约束...注意大写 select constraint_name from user_constraints where table_name='USERINFO'; 禁用开启主键约束 alter table

    1.4K50

    【Java 进阶篇】MySQL主键约束详解

    MySQL是一个强大的关系型数据库管理系统,用于存储和管理大量数据。在数据库中,主键约束是一项非常重要的概念,它有助于确保数据的完整性和唯一性。...本文将详细介绍MySQL主键约束,包括什么是主键、为什么需要主键、如何创建主键以及主键的最佳实践。 1. 什么是主键约束? 在数据库中,主键约束是用于唯一标识中每一行数据的字段或一组字段。...2.2 数据完整性 主键约束还有助于确保数据的完整性。它要求主键字段的值不能为空,因此不允许在中插入具有空值的数据。 2.3 数据关联 主键通常用于建立之间的关联关系。...在MySQL中,您可以使用以下两种方法创建主键: 3.1 在创建定义主键 您可以在创建的时候定义主键,如下所示: CREATE TABLE Students ( StudentID INT...希望本文对您理解MySQL主键约束有所帮助。如果您对数据库设计和管理有兴趣,深入学习和实践是提高技能的不二选择。

    30641

    通过sql命令 和 主外键约束以及其他约束

    nvarchar(100) 5 ) 6 7 creat table emp 8 ( emp_id int constraint pk_emp_id_a primary key, --主键约束...创建的命令后面是小括号(),而不是{}, 2. 注释用-- 3....主键外键可以命名,不然就是默认的名字 7....写完后,鼠标左键选中整个代码,分析、执行,最后生成 什么是约束constraint: 对一个中的属性操作的限制 分类: 主键约束:不允许重复元素,避免数据的冗余 外键约束:通过外键约束,从语法上保证了本事物所关联的其他事物一定是存在的...事物和事物之间的关系是通过外键来体现的 check约束:保证事物属性的取值在合法的范围之内 1 create table student 2 ( 3 stu_id int primary key

    96320
    领券