您的位置:首页 > 数据库 > MySQL

MySQL基础(二)

2020-07-14 06:16 113 查看

数据类型与约束

为了防止数据库中插入错误的数据,MySQL定义了一些维护数据库完整性的规则,即表的约束。
常见约束分5种:默认约束,非空约束,唯一约束,主键约束,外键约束。

  1. 默认约束
字段名 数据类型 DEFAULT 默认值;
  1. 非空约束
字段名 数据类型 NOT NULL;
  1. 唯一约束
#列级约束
字段名 数据类型 UNIQUE;
#表级约束
UNIQUE(字段名1,字段名2,...);
  1. 主键约束
#列级约束
字段名 数据类型 PRIMARY KEY
#表级约束
PRIMARY KEY (字段名1,字段名2,...);

NOTE:一张表只能有一个主键

自动增长

字段名 数据类型 AUTO_INCRMENT;

NOTE:一个表中只能有一个自动增长字段,且数据类型为整型,必须定义为键(如UNIQUE KEY,PRIMARY KEY)

字符集与校对集

  • 查看可用字符集
SHOW CHARACTER SET;
#修改字符集
set names 字符集;
  • 查看MySQL可用的校对集
SHOW COLLATION;
#查看与字符集相关的变量
SHOW VARIABLES LIKE 'character%';

实践

创建一张表,保存用户的信息如下:

  • 用户名:可以使用中文,不允许重复,长度在20个字符以内
  • 手机号码:长度为11个字符
  • 性别:有男、女、保密三种选择
  • 注册时间:注册时的日期和实践
  • 会员等级:表示会员等级的数字,最高为100
    创建如下:
CREATE TABLE mydb.user(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '用户id',
username VARCHAR(20) UNIQUE NOT NULL COMMENT '用户名',
mobile CHAR(11) NOT NULL COMMENT '手机号码',
gender ENUM('男','女','保密') NOT NULL COMMENT '性别',
reg_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
level TINYINT UNSIGNED NOT NULL COMMENT '会员等级'
) DEFAULT CHARSET=utf8;

添加测试记录

INSERT INTO mydb.user VALUES(
NULL, '小明',
'13111111111','男',
'2020-05-18 11:11:11',1
);

#查询用户表中的记录

SELECT * FROM mydb.user;

参考文章《MySQL数据库原理、设计与应用》

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: