返回顶部
首页 > 资讯 > 数据库 >MySQL主键的定义和用法
  • 833
分享到

MySQL主键的定义和用法

2024-04-02 19:04:59 833人浏览 独家记忆
摘要

这篇文章主要讲解了“Mysql主键的定义和用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql主键的定义和用法”吧!主键没有着明确的概念定义,其是索

这篇文章主要讲解了“Mysql主键的定义和用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql主键的定义和用法”吧!

主键没有着明确的概念定义,其是索引的一种,并且是唯一性索引的一种,且必须定义为“PRIMARY KEY”,是只可意会不可言传的东西。下面让我用通俗,甚至有些低俗的语言为您简单介绍一下Mysql的主键。

简单描述:

主键不能重复,就像QQ的用户名,有N个叫“虫zi”的网友,可是他们的QQ号码是不一样的,也就是说真正标识一个QQ的身份是“QQ号码”。还有那万恶的身份证,无论“张三,李四,王二麻子”这些都不能代表一个人,真正能代表一个人确切身份的就是那个“天朝特色的万恶的身份证”,相当于在杀猪的时候给猪盖个章,说这头是检验过的,有身份的猪,只不过人是生下来用“证”给你确定了,虽然要18岁才给你颁发。

不过主键和QQ号不一样,因为一个表只能有一个主键,而一个人可以有多个QQ号,这也是为什么人们喜欢在虚拟世界里面互相忽悠,因为你真的不知道电脑那面坐的是一头猪。

貌似扯的有点远了,接着来看我们的mysql主键。

声明主键的方法:

  • 您可以在创建表的时候就为表加上主键,如:
    CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name));

  • 也可以更新表结构时为表加上主键,如:
    ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,…);

主键示例:

主键被认为是NOT NULL和UNIQUE约束最好的结合。如果这些列没有被明确地定义为NOT NULL,MySQL会隐含地定义这些列。


create table qq(
qq_id int(10),
nick_name varchar(255) not null,
primary key (qq_id)
)


INSERT INTO qq( qq_id, nick_name )
VALUES (
'10000', 'simaopig'
);


INSERT INTO qq( qq_id, nick_name )
VALUES (
'10000', 'chongpig'
)


INSERT INTO qq( qq_id, nick_name )
VALUES (
NULL , 'chongpig'
)

主键也是索引:

刚才已经说了,主键其实也是索引甚至在MySQL的术语里面“键”就等于“索引”,所以“外键”一定要先设为“索引”,这个咱们下篇日志再来讨论。所以主键也应该和索引一样,既可以作用于单独的字段,又可以作用于多个字段

举个简的例子吧,我住3单元,501室,我叫小小子,那么只有3单元501室才能在本小区表里面唯一确定我家。因为2单元,501室住着的可能也是个小小子,所以只有两个字段才能唯一确定我,也就是说可以二者组合作为主键。组合的主键,每个列都会隐含定义NOT NULL约束,且其二者加在一起被定义了UNIQUE 惟一约束。

例子不写自己想的了,书中举的例子更是恰当,那就是一个防火墙,由host和port组合确定一个防火墙。代码示例如下:


create table firewall(
host varchar(11) not null,

port smallint(4),

access enum('deny', 'allow') not null,

primary key (host,port)
)


INSERT INTO firewall (
host ,
port ,
access
)
VALUES (
'202.65.3.87', '21', 'deny'
);


INSERT INTO firewall (
host ,
port ,
access
)
VALUES (
'202.65.3.87', '21', 'allow'
);


INSERT INTO firewall( host, port, access )
VALUES (
'192.168.0.1', NULL , 'deny'
)

在这个示例中,host和port都可以重复,但是不能同时重复,因为其是组合主键。且二者都不能被插入NULL,因为其是主键。

我们可以看一下phpmyadmin,看一下port字段的默认值为0,这和昨天我们讲的索引规则是一样的,NOT NULL并且给设了DEFAULT,因其是整型所以为0,如果其为字符串的话,默认值就是”

感谢各位的阅读,以上就是“MySQL主键的定义和用法”的内容了,经过本文的学习后,相信大家对MySQL主键的定义和用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL主键的定义和用法

本文链接: https://lsjlt.com/news/59196.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL主键的定义和用法
    这篇文章主要讲解了“MySQL主键的定义和用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL主键的定义和用法”吧!主键没有着明确的概念定义,其是索...
    99+
    2024-04-02
  • MySQL 复合主键的定义与作用
    MySQL 中的复合主键是指表中由多个字段组合而成的主键,用来唯一标识每条记录。与单一主键不同的是,复合主键由多个字段的值组合在一起形成。在创建表的时候,可以通过指定多个字段为主键来定...
    99+
    2024-03-15
    mysql 定义 复合主键
  • 什么是主键和外键在MySQL中如何定义它们
    在MySQL中,主键是用来唯一标识一条记录的字段,一个表只能有一个主键。主键可以是一个或多个字段的组合,但字段内容必须唯一且不能为空...
    99+
    2024-04-09
    MySQL
  • javascript的this关键字定义和用法
    本篇内容介绍了“javascript的this关键字定义和用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!this的定义  表示当前执行代...
    99+
    2023-06-02
  • 数据库中超键、主键、外键等的定义方法
    这篇文章将为大家详细讲解有关数据库中超键、主键、外键等的定义方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先看看各种键的定义:超键(super key):在关系中能...
    99+
    2024-04-02
  • Mybatis insert方法主键回填和自定义操作
    在数据库插入的时候,有很多属性需要我们自己处理,如主键自增字段。 MYSQL中主键根据一定规则生成后,需要我们在插入后去主动获取,以便后面的操作,Mybatis为我们提供了处理的方法...
    99+
    2024-04-02
  • mysql主键id怎么实现自定义
    这篇文章主要介绍了mysql主键id怎么实现自定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。执行以下sql语句即可alter ...
    99+
    2024-04-02
  • SQL主键自定义设置的方法是什么
    在 SQL 中,可以通过以下方法自定义设置主键: 1、在创建表时,使用 PRIMARY KEY 关键字来指定某个列作为主键,例如: ...
    99+
    2024-04-09
    SQL
  • MySQL数据库中外键的定义和限制
    标题:MySQL数据库中外键的定义和限制 在MySQL数据库中,外键是一种用于建立表与表之间关系的约束。外键可以确保在一个表中的数据与另一个表中的数据具有一定的关联性。通过定义外键,我...
    99+
    2024-03-15
    外键定义 外键限制 mysql外键
  • 怎么为DynamoDB表定义主键
    在DynamoDB中,每个表都必须有一个主键。主键可以分为两种类型: 简单主键:只包含一个属性,即分区键(Partition Ke...
    99+
    2024-04-09
    DynamoDB
  • mysql的主键和索引
    主键是个什么 我来来具体的东西说吧,书大家都看过吧,没看过的找本翻一下,看下它每页是不是有个页码,我们的数据表主键就相当于是这个页码,明白了吧。 那么索引是什么呢? 我们还拿书来说,索引相当于书的目录,有了目录我们可以很快的知道这本...
    99+
    2022-03-12
    mysql的主键和索引 数据库入门 数据库基础教程 数据库 mysql
  • MyBatis-Plus枚举和自定义主键ID的实现步骤
    目录一、枚举步骤一:编写配置文件步骤二:编写枚举类 步骤三:更改实体类二、自定义ID生成器步骤一:编写主键策略步骤二:注册到容器中步骤三:修改实体类的主键策略步骤四:测试小...
    99+
    2024-04-02
  • 数据库MySQL创建表定义主键 (新手必看)
    用wampsever64控制台创建数据表定义主键 方法一: 这时候会出现单引号问题,这时候把单引号用这个 换好后问题就解决了   方法二: 把主键定...
    99+
    2024-04-02
  • SQL主键自定义怎么设置
    在SQL中,可以通过以下方式自定义主键: 使用CREATE TABLE语句时,在定义表结构时指定主键字段,并使用PRIMARY K...
    99+
    2024-04-20
    SQL
  • 什么是MySQL的主键和外键
    在MySQL数据库中,主键是用于唯一标识每一行数据的字段,确保表中每一行都具有唯一的标识符。主键字段的值不能为NULL,并且每一行数...
    99+
    2024-04-09
    MySQL
  • CSS border的定义和用法
    这篇文章主要讲解了“CSS border的定义和用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS border的定义和用法”吧!CSS border...
    99+
    2024-04-02
  • MySQL主键索引和非主键索引的实现
    目录主键索引(Primary Key Index):非主键索引(Secondary Index):在mysql中,主键索引和非主键索引有不同的作用和特点: 主键索引(Primary Key Index): 主键索引是一种...
    99+
    2023-10-27
    MySQL 主键索引 MySQL 非主键索引
  • mysql主键的作用
    小编给大家分享一下mysql主键的作用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是主键?数据库主键,指的是一个列或多列的...
    99+
    2024-04-02
  • MySQL语句中的主键和外键使用说明
    目录 一.主键:1.1)主键字段定义:1.2) 创建:1.3)主键的选取原则;1.4)主键值的生成方式: 二.外键:2.1)外键定义:2.2)外键(约束)创建(不推荐使用,一般不进行外键约束,只进行外...
    99+
    2023-04-19
    MySQL主键和外键 MySQL 主外键
  • Mybatis定义参数方法和聚合查询、主键回填怎么实现
    这篇文章主要讲解了“Mybatis定义参数方法和聚合查询、主键回填怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis定义参数方法和聚合查询、主键回填怎么实现”吧!一、使用#...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作