mysql表属性、索引、约束

1、表属性

  创建表的基本语法: 

    create table 【if not exists】 表名 (字段列表 【,索引或约束列表】)【表选项列表】

  其中,字段列表格式如下:

    字段名 类型 【属性列表】,

    字段名 类型 【属性列表】...

  属性列表中各个属性之间用空格隔开。

  常用的字段属性:

auto_increment 设置字段值自动增长,用于整数类型
primary key 设置字段为主键,此时该字段的值可以“唯一确定”一行数据
unique key 设置字段为唯一的,在整个数据表中不会重复
not null 设置字段不能为null,如果不指定该属性,那么字段的值默认是可以为null的
default      设置字段的默认值,插入数据的时候,若不指定该字段你的值,会使用默认值填充。
comment 设置字段的说明

  说明:primary key跟unique key都确定了字段的唯一性,由这两个属性修饰的字段都能唯一的确定一行数据,区别在于primary key不能为null(指定了primary key的时候,默认的指定了not null属性),而unique key则可以为null。可以说,primary key是特殊的unique key。

代码:

/*创建表,注意属性*/mysql> create table item_properties_table(
    -> id int auto_increment primary key,
    -> name varchar(20) not null unique key,
    -> pwd varchar(48) not null,
    -> age tinyint default 18,
    -> email varchar(50) comment ‘电子邮件‘
    -> );
Query OK, 0 rows affected (0.02 sec)
/*查看表结构,主要是为了查看comment*/
mysql> show full columns from item_properties_table;
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+--------------+
| Field | Type        | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment      |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+--------------+
| id    | int(11)     | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |              |
| name  | varchar(20) | utf8_general_ci | NO   | UNI | NULL    |                | select,insert,update,references |              |
| pwd   | varchar(48) | utf8_general_ci | NO   |     | NULL    |                | select,insert,update,references |              |
| age   | tinyint(4)  | NULL            | YES  |     | 18      |                | select,insert,update,references |              |
| email | varchar(50) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references | 电子邮件     |
+-------+-------------+-----------------+------+-----+---------+----------------+---------------------------------+--------------+
5 rows in set (0.00 sec)

mysql> 

2、索引

时间: 2024-08-01 19:40:19

mysql表属性、索引、约束的相关文章

MySQL列属性约束及存储引擎

列属性约束,保证表的结构和数据的正确性和稳定性. 总的来说有五种:唯一性和主键约束.外键约束.检查约束.空值约束.默认值约束. 五大关键词:UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT 是否为空 规定一个字段的值,是否可以是null. null(默认) 或 not null Null表示没有值.与任何数据不同.表示什么都没有. 如果一个列不允许为空,但是在赋值时,没有为该字段赋值,则会出现问题. Mysql的每条记录,如果存在

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

Linux命令:MySQL系列之四--MySQL管理表和索引

SQL语句: 数据库 表 索引 视图 DML语句 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 单或者多字段:    PRIMARY KEY(col,...) UNIQUE KEY(col,...) INDEX(col,...) 数据类型: data_type: BIT[(length)] 比特 | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 非常小的整数(1字节) | SMALLINT[(length)] [UNSIGNED]

Mysql数据库理论基础之四 --- 表和索引的管理

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 二.MySQL 存储引擎,也称表类型 2.1. 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 2.2 单或者多字段:    PRIMARY KE

mysql中的索引原理与表设计

索引是有效使用数据库的基础,但你的数据量很小的时候,或许通过扫描整表来存取数据的性能还能接受,但当数据量极大时,当访问量极大时,就一定需要通过索引的辅助才能有效地存取数据.一般索引建立的好坏是性能好坏的成功关键. 1.InnoDb数据与索引存储细节 使用InnoDb作为数据引擎的Mysql和有聚集索引的SqlServer的数据存储结构有点类似,虽然在物理层面,他们都存储在Page上,但在逻辑上面,我们可以把数据分为三块:数据区域,索引区域,主键区域,他们通过主键的值作为关联,配合工作.默认配置下

mysql表结构表空间和索引的查询

1.查询表的结构信息 Sql代码 desc tableName; show columns from tableName; describe tableName 上面的结果返回的结果是一样的. 2 查询表的列信息. Sql代码 select * from information_schema.columns where table_name='tableName'; 3 查看库中所有的库 Sql代码 SELECT LOWER(schema_name) schema_name FROM infor

mysql笔记--表级别的约束

表级别的约束 1. 主键约束----primary key 主键:表中一个列或者多个列的组合,要求该列的数据唯一 单字段主键:字段名 数据类型 属性 primary key 多字段主键:primary key (字段1,字段2) 主键列的值不能为空!!! 例子:创建一张员工表tb_emp1,以id为主键 create table tb_emp1(id int primary key,name varchar(25),deptid int,salary float);             创建

随笔编号-16 MySQL查看表及索引大小方法

目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大

mysql 为表添加索引

索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查询如下所示. SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3此查询结果应该为1000行,每行包含3个相等的值