Mysql Day Three

列属性

 NUll  、 NOT NULL 、 default 、 Primary key 、  unique key 、auto_increament  、comment;

1 空属性: not null   规定数据插入时 规定的字段不能为空

2 列描述: comment  没有实际含义,可以描述字段。可以通过 show create table 表名 查看字段描述

                  例:filed  数据类型 comment “解释描述字段”

-- 列描述实例
create table m_comment(
name varchar(10) comment "姓名"
)charset utf8;


show create table  m_comment;
--------------------------------------+
| Table     | Create Table                                                                                                       |
--------------------------------------+
| m_comment | CREATE TABLE `m_comment` (
  `name` varchar(10) DEFAULT NULL COMMENT '姓名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8   |
--------------------------------------+

3 默认值: default  在插入数据时 ,如果插入的是“” 或者是default ,则使用默认值代替

-- default 实例
create table m_default(
 sex enum("man","women") default "man"
 )charset utf8;


insert into m_default values();
insert into m_default values("women");
insert into m_default values(default);

select * from m_default;
+-------+
| sex   |
+-------+
| man   |
| women |
| man   |
+-------+

4 主键:primary key  一张表中最多只能有一个主键且 主键字段不能为空,主键具有唯一性

 -- 主键实例
 -- 增加主键的s第一种方式
 create table m_primary(
 number int primary key,
 name varchar(10) not null
 )charset utf8;

desc m_primary;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| number | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(10) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

-- 使用primary key在所有字段后添加主键  
-- 如果有多个字段,组成复合键
 create table m_primary1(
 number int ,
 sex char ,
 primary key(number,sex)
 )charset utf8;

 desc m_primary1 ;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| number | int(11) | NO   | PRI | NULL    |       |
| sex    | char(1) | NO   | PRI | NULL    |       |
+--------+---------+------+-----+---------+-------+

-- 第三种方式,创建表之后追加主键
create table m_primary2(
nmae varchar(10),
sex enum("men","women") default "women"
)charset utf8;

alter table m_primary2 add primary key(nmae);
desc m_primary2;
+-------+---------------------+------+-----+---------+-------+
| Field | Type                | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| nmae  | varchar(10)         | NO   | PRI | NULL    |       |
| sex   | enum('men','women') | YES  |     | women   |       |
+-------+---------------------+------+-----+---------+-------+

-- 删除更新组件
-- 必须先删除主键才能重新设置新的主键
desc m_primary;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| number | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(10) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

alter table m_primary drop primary key;
desc m_primary;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| number | int(11)     | NO   |     | NULL    |       |
| name   | varchar(10) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

alter table m_primary modify name varchar(10) primary key;
desc m_primary;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| number | int(11)     | NO   |     | NULL    |       |
| name   | varchar(10) | NO   | PRI | NULL    |       |
+--------+-------------+------+-----+---------+-------+

5 自增长: auto_increament 当对应字段插入值为空时,系统从当前最大值加作为新值

                  自增长必须是索引, 必须是整型,一张表只能有一个自增长。

create table m_autoin(
id int primary key auto_increment,
name varchar(10) not null
)charset utf8;

desc m_autoin;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

insert into m_autoin values (default,"lili");
insert into m_autoin values (3,"liwa");
insert into m_autoin values (default,"lidfi");

select * from m_autoin;
+----+-------+
| id | name  |
+----+-------+
|  1 | lili  |
|  3 | liwa  |
|  4 | lidfi |
+----+-------+

6 唯一键: unique 唯一键默认允许自动为空

-- 方式一
create table m_unique(
name varchar(10) unique not null,
id int primary key
)charset utf8;
desc m_unique;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | NO   | UNI | NULL    |       |
| id    | int(11)     | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+

-- 方式二
create table m_unique1(
name varchar(10)not null ,
id int ,
unique key(name)
)charset utf8;
desc m_unique1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | NO   | PRI | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

-- 方式三
create table m_unique2(
name varchar(10) ,
id int 
)charset utf8;
alter table m_unique2 add unique key(name);
desc m_unique2;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  | UNI | NULL    |       |
| id    | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值