MYSQL:基础—主键
MYSQL:基础—主键
1.什么是主键
表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。
如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。
2.那些列可以作为主键:
任何列都可以作为主键,只要它满足以下条件:
• 任何两行都不具有相同的主键值。就是说这列的值都是互不相同的。
• 每个行都必须具有一个主键值。主键列不允许设置为NULL。
• 主键列的值不建议进行修改和更新。
3.声明主键的方法
在创建表的时候决定是否有主键:
1.最简单的:
CREATE TABLE t1(
id int not null,
name char(20)
);
2.带主键的:
CREATE TABLE t1(
id int not null primary key,
name char(20)
);
3.带复合主键的:
CREATE TABLE t1(
id int not null,
name char(20),
primary key (id,name)
);
4.主键自增的:
create table dd(
id int primary key not null auto_increment,
name varchar(20),
time timestamp default current_timestamp
);
5.创建完后再决定主键
create table t(
id int not null,
name varchar(200) not null,
time timestamp default, current_timestamp
);
alter table t add primary key (id);
MYSQL:基础—主键的更多相关文章
- mySQL 中主键值自动增加
转 http://stevenjohn.iteye.com/blog/976397 MySql 主键自动增长 博客分类: DataBase MySQLSQL 创建数据库,创建表. mysql> ...
- Mysql增加主键或者更改表的列为主键的sql语句
...
- 【数据库】Mysql中主键的几种表设计组合的实际应用效果
写在前面 前前后后忙忙碌碌,度过了新工作的三个月.博客许久未新,似乎对忙碌没有一点点防备.总结下来三个月不断的磨砺自己,努力从独乐乐转变到众乐乐,体会到不一样的是,连办公室的新玩意都能引起莫名的兴趣了 ...
- Mysql让主键归0
Mysql 相关技术 1.Mysql 让主键 归0: TRUNCATE TABLE * 2.只清空数据表,主键不归0: DELETE FROM 'TABLE' 3.重启数据库: /etc/init.d ...
- 图解|12张图告诉你MySQL的主键查询为什么这么快
这是图解MySQL的第3篇文章,这篇文章会让大家清楚地明白: 什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而 ...
- MySQL基础 - 外键和约束
在工作中经常会遇到不少不同的观点,比如对于数据库来说那就是是否要设置外键,设置外键的理由自然不必多说,而不设置外键的理由多半为设置外键影响性能,但就目前工作来讲,还没有涉及到因为外键而引发的数据库瓶颈 ...
- mysql iot 主键自增列问题
mysql 如何避免热点块? 主键按sn自增列 Oracle 可以通过翻转索引 比如 插入101 102 103 104 变成101 201 301 401 分散数据 反转索引坏处,无法index r ...
- mysql insert 主键 重复问题
转自:http://blog.163.com/liuweiyoung@126/blog/static/173131045201222122732435/ mysql中insert into和repla ...
- mysql把主键定义为自动增长标识符类型
分享下mysql中如何把主键定义为自动增长标识符类型. 1.把主键定义为自动增长标识符类型在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: )); ...
随机推荐
- android studio- java注释自己动手弄起来
今天写段子...程序段子.突然觉得AS默认的注释太简洁,不适合自己.于是,自己琢磨半天,大概知道了途径.结果,好好的一个coding之夜也无疾而终了...明天继续跟着包工头学搬砖. 注释设置途径: 1 ...
- UI-1-UI入门
课程要点: 创建一个iOS工程 AppDelegate类 UIKit框架以及UIWindow 在window上添加第一个试图UIView NSTimer(定时器) 创建一个iOS工程 PS:接下来简单 ...
- HDU高精度总结(java大数类)
HDU1002 A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...
- python 动态语言 __slots__
python 是动态语言,就是说可以动态的创建属性, 别的语言不行,再创建类的时候已经规定好了 使用__slots__,注意要用tuple定义同意绑定的属性名称,仅对当前类起作用,对继承的子类是不起作 ...
- 优先队列——二项队列(binominal queue)
[0]README 0.1) 本文文字描述部分转自 数据结构与算法分析, 旨在理解 优先队列——二项队列(binominal queue) 的基础知识: 0.2) 本文核心的剖析思路均为原创(inse ...
- Oracle 11R2 linux上新建实例
Step1. root用户远程登陆到linux主机上.执行下面的命令切换到oracle用户,使对应的环境变量配置文件生效. # su oracle# source ~/.bash_profile St ...
- redis配置详解(中英文)
V2.8.21: (中英字幕同步) # Redis configuration file example#* Redis 配置文件例子 # Note on units: when memory siz ...
- PYTHON -转载,获取淘宝数据01
import requests import sys import random api = { 'number':[ 'https://acs.m.taobao.com/h5/mtop.taobao ...
- 防火墙系列之firewall
firewalld 介绍 防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口.它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (com ...
- [转]JavaWeb之 Servlet执行过程 与 生命周期
https://www.cnblogs.com/vmax-tam/p/4122105.html Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类 ...