MySQL(9):列的属性

---恢复内容开始---

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‘后面的

1

2

5

.

.

.

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

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

---恢复内容结束---

时间: 2024-10-15 04:30:58

MySQL(9):列的属性的相关文章

mysql 加入列,改动列,删除列。

MySQL 加入列,改动列,删除列 ALTER TABLE:加入,改动,删除表的列,约束等表的定义. 查看列:desc 表名; 改动表名:alter table t_book rename to bbb; 加入列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 改动列名MySQL: alter table bbb change nnnnn hh int; 改动列名SQLServer:exec

mysql 加入?列,改动列,删除列。

MySQL 加入?列,改动列,删除列 ALTER TABLE:加入?,改动,删除表的列,约束等表的定义. 查看列:desc 表名; 改动表名:alter table t_book rename to bbb; 加入?列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 改动列名MySQL: alter table bbb change nnnnn hh int; 改动列名SQLServer:e

如何正确选择MySQL数据列类型

MySQL数据列类型选择是在我们设计表的时候经常会遇到的问题,下面就教您如何正确选择MySQL数据列类型,供您参考学习. 选择正确的数据列类型能大大提高数据库的性能和使数据库具有高扩展性.在选择MySQL数据列类型时,请从以下几个方面考虑: 存放到数据列中的数据类型. 数据值的取值范围. 考虑性能和处理效率. 数值操作比字符操作快. 小类型的处理速度比大类型快. 不同数据表中固定长度类型和可变长度类型的处理效率是不同的. 可变长度类型在经过删除和修改操作后容易产生碎片,降低系统性能,需定期运行O

mysql学习——列类型,建表语句和增删改查

建表语句 create table 表名( 列名称 列类型 [列属性] [默认值], ... )engine 引擎名 charset 字符集: mysql学习--列类型,建表语句和增删改查

MySQL增加列,移动列

ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST 给表添加列是一个常用的操作,MySQL增加列的时候可以指定此列的位置 给指定位置加列需要两个关键字: FIRST和AFTER FIRST表示增加此列为第一个列 AFTER表示增加在某个列之后 注意MySQL增加列指定位置时没有BEFORE的用法,第一列可以使用FIRST,非第一列使用AFTER. 语法: ALTER TABLE

DataGridview启用列重新排序属性的作用

DataGridview是winform中经常用的控件,今天来了解一下启用列重新排序属性的作用 默认没有选中是不能改变列前后顺序的 启用列重新排序后如下图可以拖动列标题(列标头)来改变列前后顺序

MySql 同一个列中的内容进行批量修改

问题重现: MySql 数据库中,一给列的内容中包括 ".wmv"     需要将 "." 后的wmv格式 换为"flv" 解决办法 update video_info set file_path=substring(file_path,1,length(file_path)-3); 先执行以上SQL进行删除: update video_info set file_path = concat(file_path,'flv'); 再执行这条语句把f

EntityFramework 5.0 CodeFirst 教程03-数据结构的定义/列的属性

---------------------目录-------------------------- EntityFramework 5.0 CodeFirst 教程03-数据结构的定义/列的属性 (2015-07-22 17:30) EntityFramework 5.0 CodeFirst 教程02-删除和修改/架构改变异常的处理 (2015-07-14 17:50) EntityFramework 5.0 CodeFirst 教程01-搭建环境和快速上手 (2015-07-13 10:48)

docker中启动2个mysql实列

一.mac环境安装docker容器 在docker官网中下载docker容器,地址:https://www.docker.com/products/docker-desktop 具体安装教程及设置网络许多,自己查看..... 查看docker是否安装成功,在终端输入:docker info 二.在docker中安装mysql 我是需要在mac启2个mysql实列,故需要区分mysql端口号 docker run -p 13306:3306 --name mysql1 -v ~/mysql1:/v

mysql增加列,修改列名、列属性,删除列

mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修改表名 alter table test add  column name varchar(10); --添加表列 alter table test drop  column name; --删除表列 alter table test modify address char(10) --修改表列类型 ||alter table test change address addr