MySQL 语法基础(第二讲)

在这里插入图片描述

一.SQL介绍

    数据库分为两种,一种是关系型数据库(RDBMS),另一种呢就是非关系型数据(NOSQL)。而我们的 SQL 是关系型数据库的通用数据库语言,它是一种结构化查询语言。像比较出名的 Oracle、MySQL、SQL Server 等都是关系型数据库。

    SQL语句主要分为三种,DDL、DML、DCL。以下列表说明他们的作用。

类型描述
DDL数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。
DML数据操纵语句,用于添加、删除、更新、和查询数据库记录,并检查数据完整性
DCL数据控制语句,用于控制不同数据段直接许可和访问级别的语句。

二.数据完整性

    我们在创建表的时候,为了数据更好的存储,保证数据更高效的被我们使用,我们在创建表的时候,可以给表添加一些强制性的约束,还有数据的类型。

三.数据类型

常用数据类型

  • 数值类型
  • 日期时间类型
  • 字符串类型

数值类型

  • 以下的无符号范围怎么使用的话,他是有一个约束的,在文章的下面有写
整数类型有符号范围无符号范围
TINYINT(size)-128~1270~255
SMALLINT(size)-32768~327670~65535
MIEDIUMINT(size)-8388608~83886070~16777215
INT(size)-2147483648~21474836470~4294967295
BIGINT(size)-9223372036854775808~92233720368547758070~18446744073709551615
小数类型描述
FLOAT(size,d)带有浮动小数点的小数字。括号中 size 这个数值的最大位数, d 则是小数点右侧的最大位数
DOUBLE(size,d)带有浮动小数点的大数字括号中 size 这个数值的最大位数, d 则是小数点右侧的最大位数
DECIMAL(size,d)作为字符串储存的DOUBLE类型,允许固定的小数点(定点数类型)
字符串类型字节大小实例
CHAR(size)0-255char(3):输入’abc’则存储’abc’:输入’abcd’ 则存储’abc‘
VARCHAR(size)0-65535varchar(3)输入’abc’则存储’abc’:输入’abcd’ 则存储’abc‘
枚举类型描述
ENUM枚举类型英文为ENUM,对1255个成员的枚举需要1个字节存储;对于25565535个成员,需要2个字节存储。最多允许65535个成员。创建方式:enum(“M”,“F”);
日期类型描述
DATE()日期。格式:YYYY-MM-DD

注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’
DATETIME()日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS;

注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIME()时间。格式:HH:MM:SS

;注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR()2 位或 4 位格式的年。

4 位格式:1901 到 2155。2 位格式:70 到 69,表示从 1970 到 2069
TIMESTAMP时间戳。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC

四.列属性

约束名解释
主键primary key物理上存储的顺序
非空not null此字段不允许填写空值
惟一unique此字段的值不允许重复(例如身份证、手机号码等不可重复的数据)
默认default当这个字段不填写内容时,将会默认为默认值,输入了就以输入的值为准
外键foreign key对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
自增auto_increment自增
检查check指定一个表达式,用于检验指定数据(但在 MySQL 中不支持)
无符号 UNSIGNED不允许出现符号,例如整数类型的负数(-)
zerofill零填充

列属性使用示例

  • 主键primary key
create table '表名'('字段名' int('括号里填最大的位数') primary key unsigned);
-- int类型的括号里填最大位数(不填的话默认为11),后边跟上想添加的约束
--而这个UNSIGNED是无符号约束,也就是说不允许出现这个字段符号,所以也不可能出现负数
  • 非空not null
create table '表名'('字段名' int('括号里填最大的位数') not null);
-- 这个字段不允许空着,必须填点什么
  • 惟一unique
create table '表名'('字段名' int('括号里填最大的位数') unique
);
-- 也就是说这个字段的数值不能重复,整张表中它只能是唯一一个
  • 默认default
create table '表名'('字段名' int('括号里填最大的位数') default 10
);
-- 这个字段什么都不填的话就默认为 10(default 10:中间加空格)
  • 外键foreign key
create table '表名'('字段名' int('括号里填最大的位数') not null,CONSTRAINT '外键的名称'FOREIGN KEY ('要创建外键的字段') REFERENCES '外键要关联的表'('外键关联的那张表的关联字段')
);
-- 添加外键的时候要先创建一个用来添加外键的字段
  • 自增auto_increment
create table '表名'('字段名' int('括号里填最大的位数') auto_increment);
-- 自增:也就是说不填写任何东西的时候,会随着行数的增加,自动填入这个字段。一般用在整数类型的字段。没增加一行记录就会 +1
  • 无符号 UNSIGNED
create table '表名'('字段名' int('括号里填最大的位数') UNSIGNED);
-- 不分大小写,UNSIGNED是无符号约束,也就是说不允许出现这个字段符号,所以也不可能出现负数

    MySQL中常用的约束就这些。在很多的可视化工具都会有自动补齐功能,但是像自增这种就不会自动补齐,所以还是建议大家记下来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值