Linux mysql基础操作之字段类型和常见约束

##进入数据库
mysql -u用户 -p密码
在这里插入图片描述

Server version: 5.5.52-MariaDB MariaDB Server  ##mysql版本,5.1之后默认存储引擎为innoDB

##创建数据库指定默认编码格式

MariaDB [(none)]> create   database  TestA   default  charset  'utf8';
Query OK, 1 row affected (0.00 sec)

##选择数据库

MariaDB [(none)]> use  TestA;
Database changed
MariaDB [TestA]> 

##创建表

CREATE TABLE 表名 (
    属性名 数据类型 [完整约束条件],
    属性名 数据类型 [完整约束条件],
    ...
    ...
    属性名 数据类型 [完整约束条件]
);

mysql字段类型

  1. 数值类型:在这里插入图片描述
  2. 字符串类型:
    在这里插入图片描述
  3. 日期类型:在这里插入图片描述

##创建表

MariaDB [TestA]> create  table   A
    -> (id  int,
    -> name  varchar(20),
    -> datatime DATETIME);
Query OK, 0 rows affected (0.10 sec)

##查看表结构

MariaDB [TestA]> desc  A;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| datatime | datetime    | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql常见约束:

  1. 主键约束: PRIMARY KEY标识该属性为该表的主键,可以唯一的标识对应的列,通过它可强制表的实体完整性。主键不允许为空值,且不同两行的键值不能相同,表中可以不止一个键唯一标识行,每个键都称为候选键,但只能有一个为主键
  2. 外键约束:FOREIGN KEY标识该属性为该表的外键,是与之联系某表的主键,外键是用于建立和加强两个表数据之间的连接的一列或多列,通过它可以强制参照完整性,什么情况下使用外键:当一个表中的一列或多列的组合和其他表中的主键定义相同时,就可以将这些列或列的组合定义为外键,并设定与它关联的表的列。注意:当向具有外键的表插入数据时,如果与之相关联的表的列中没有与插入的外键列值相同的值时,数据库会拒绝插入数据。 即插入数据时,先插入主表,再插入从表, 删除数据时,先删除从表,再删除主表
  3. 唯一性约束:UNIQUE标识该属性的值是唯一的,指定一个或多个列的组合的值具有唯一性,为表中的一列或多列提供实体完整性。唯一性约束指定的列可以有NULL属性。主键也强制唯一性,但主键不允许为空值,故主键约束强度大于唯一性约束。因此主键不能在设定唯一性约束。
  4. 检查约束:CHECK对输入列或整个表中的值设置检查条件,以限制输入值,保证输入值的数据完整性,当对具有检查约束列进行插入或者修改时,将用该检查约束的逻辑表达式对新值进行检查,只有满足条件(逻辑表达式返回TURE)的值才能填入该列,否则报错,可以为每列指定多个CHECK约束。注意:mysql目前不支持CHECK约束,可以写不报错,但没用,mysql直接忽略。 实现CHECK约束的功能:使用触发器,来完成类似check的约束验证,使用set或enum方式来完成字符串的值范围check约束
  5. 默认约束: DEFAULT为该属性设置默认值,通过定义列的默认值或使用数据库默认值对象绑定表的列,以确保在没有为某列值指定数据时,来指定列的值。默认值可以是常量,表达式,NULL。注意:每个列中只能有一个默认约束,默认约束只能用于INSERT语句,约束表达式不能参照表中的其他列以及其他表,视图和存储过程。如果列不允许为空值,且没有指定默认约束,就必须明确指定列值
  6. 自增:AUTO_INCREMENT为该属性设置自增,这是MySQL的SQL语句的特色。常用于主键的自增,注意:指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值