1.首先我们看一下这个图:

1、NULL| not NULL是否为空

     规定一个字段的值是否为NULL

2、Default value 字段默认值属性

常见的是一个字段不能为空,而且存在默认值

create table php2(
a int not null default 10,
b int not null default 21
);

insert into php2(a) values(a); //a 默认是10
insert into php2(b) values(b);//b默认是21

3、primary key |unique key(关键字)

主索引 | 唯一索引

可以唯一标识,某条记录的字段或者是字段的集合,就是主键

主键可以是真实实体的属性

但是常用的好的解决方案

利用一个与实体信息不相关的属性,作为唯一标识记录(如下图)、

设置主键的语法:primary key 完成

两种方案:

(1).字段上设置:

create table teacher(
t_id int primary key,   //这里主键的类型为 int ,也就是说主键可以为也可以为
t_name varchar(5),
class_name varchar(6),
days tinyint unsigned
);

t_id 设置为主键之后,默认不能为null,

主键就是搜索的时候用到的关键字:

(2).在定义完了字段之后,可以定义为:

create table teacher1(
t_id int,
t_name varchar(5),
class_name varchar(6),
days tinyint unsigned,
primary key(t_id)
);

下面可以清楚地看到t_id 为 no null

也可以同时设置多个字段构成唯一主键(每个表:主键是唯一的),如下:

create table teacher2(
t_id int,
t_name varchar(5),
class_name varchar(6),
days tinyint unsigned,
primary key(t_id,class_name)// t_id 和 class_name 两个字段
);

4.自动增长

目的:为每条记录提供一个唯一的标示

每次插入记录时,将某个字段的值自动增加1;

使用auto_increment 标识

需要整型,还需要有索引…………

create table teacher3(
t_id int primary key auto_increment,
t_name varchar(5),
class_name varchar(6),
days tinyint unsigned
);

添加两条语句:

insert into teacher3 values(null, 'hebao', '0228', 34);

insert into teacher3 values(null, 'bufan, '0223', 45);

如下图:发现这个t_id 是唯一的 ,自动增长的

alter table teacher3 auto_inscrement 10;

insert into teacher3 values (null, 'fei', '0115', 32);

如果这时候我们再次:

alter table teacher3 auto_increment 5;
insert into teacher3 values(null, 'fly','0115', 98);

出现的结果是:你会发现新增加的 是以 11 为id索引的

当然主键也可以在初始化

insert into teacher3 values(5, 'flrt','0123', 56);
这个插入的元素是在'bufan'后面的

.

.

.

只要键值唯一不冲突,也是可以修改的,如下:

update  teacher3  set t_id=21  where  t_name='赵A' ;

MySQL(9):数据表的约束(列的属性)的更多相关文章

  1. 第二百七十七节,MySQL数据库-数据表、以及列的增删改查

    MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...

  2. MySQL数据库-数据表、以及列的增删改查

    1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...

  3. 备忘:MySQL中修改表中某列的数据类型、删除外键约束

    -- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...

  4. MySQL中数据表的基本操纵

    本文基于对国家863中部软件孵化器编著的<MySQL从入门到精通>一书的操作实践.  一.创建数据表 数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名  指定操作是在那个 ...

  5. MySQL 创建数据表

    MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (col ...

  6. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  7. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  8. MySQL对数据表进行分组查询

    MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...

  9. MySQL对数据表进行分组查询(GROUP BY)

    MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...

  10. MySQL中数据表的查操作

    查询数据表的全部内容 mysql> show tables;#查看当前数据库下的全部表 +--------------------+ | Tables_in_ceshi_ku | +------ ...

随机推荐

  1. SOAP Services for Python

    转自:https://pypi.python.org/pypi/SOAPpy/ 1.下载SOAPpy 0.12.5 2.解压tar -xvzf SOAPpy-$VERSION$.tar.gz 3.安装 ...

  2. FTP被动模式无法被传统CDN模式加速

    我在CDN公司,遇到一个客户需要加速ftp服务,故给出了这样的方案 客户使用的是vsftpd 2.0.5 我们建议客户在vsftpd.conf里加入如下配置 #pasvpasv_enable=YESp ...

  3. [九度OJ]1078.二叉树的遍历(重建)

    原题链接:http://ac.jobdu.com/problem.php?pid=1078 题目描述: 二叉树的前序.中序.后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其 ...

  4. bzoj 3551 [ONTAK2010]Peaks加强版(kruskal,主席树,dfs序)

    Description [题目描述]同3545 Input 第一行三个数N,M,Q. 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径. 接下来 ...

  5. ZOJ-3593 One Person Game 概率DP

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 带环的概率DP一般的做法是求出转移方程,然后高斯消元解方程 ...

  6. 远程控制篇:在DELPHI程序中拨号上网

    用MODEM拨号上网,仍是大多数个人网民选择上网的方式.如果能在我们的应用程序中启动拨号连接(如IE浏览器程序中的自动拨号功能),无疑将会方便我们的软件用户(不用再切换应用程序,运行拨号网络),提高我 ...

  7. A Tour of Go Interfaces

    An interface type is defined by a set of methods. A value of interface type can hold any value that ...

  8. Java远程方法调用(RMI)

    Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此方 ...

  9. LDO稳压器工作原理

    LDO稳压器工作原理 随着便携式设备(电池供电)在过去十年间的快速增长,像原来的业界标准 LM340 和LM317 这样的稳压器件已经无法满足新的需要.这些稳压器使用NPN 达林顿管,在本文中称其为N ...

  10. 山东理工大学ACM平台题答案关于C语言 1543 Egypt

    Egypt Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述   A long time ago, the Egyptians fi ...