SQL语法基础
- SQL语句主要分为
- DDL语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。
- DML语句:数据操纵语句,用于添加、删除、更新、查询数据库记录,并检查数据完整性。
- DCL语句:数据控制语句,用于控制不同数据段直接许可和访问级别的语句。
- 数据完整性
- 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。
- 数据类型
- 常用的数据类型
- 数值类型
- 日期时间类型
- 字符串类型
- 数值类型
数据类型 | 有符号范围 |
---|---|
TINYINT(size) | -128 ~ 127 |
SMALLINT(size) | -32768 ~ 32767 |
MEDIUMINT(size) | -8388608 ~ 8388607 |
INT(size) | -2147483648 ~ 2147483647 |
BIGINT(size) | -9223372036854775808~9223372036854775807 |
小数类型 | 描述 |
---|---|
FLOAT(aize) | 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DOUBLE(size) | 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
DECIMAL(size) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点。(定点数类型) |
字符串类型 | 字节大小 | 实例 |
---|---|---|
CHAR(size) | 0-255 | char(3)输入’ab’,实际存储为’ab ‘,输入’abcd’,实际存储为’abc’ |
VARCHAR(size) | 0-65535 | varchar(3)输入’ab’,实际存储为’ab’,输入’abcd’,实际存储为’abc’ |
-
枚举类型
- 枚举类型英文为ENUM,对1~255个成员的枚举需要1个字节存储
- 对于255~65535个成员,需要2个字节存储
- 最多允许65535个成员
- 创建方式:enum(“M”,“F”)
-
日期类型
数据类型 | 描述 |
---|---|
DATE() | 日期。格式:YYYY-MM-DD |
DATETME() | 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS |
TIME() | 时间。格式:HH:MM:SS |
YEAR() | 2 位或 4 位格式的年。4 位格式:1901 到 2155。 2 位格式:70 到 69,表示从 1970 到 2069 |
TIMESTAMP | 时间戳。格式:YYYY-MM-DD HH:MM:SS |
-
注意
- decimal表示定点小数,如decimal(5,2)表示共存5位数,小数占2位。不写则默认为decimal(10,0)
- char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ’
- varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’
- 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
- 枚举类型不区分大小写
-
约束
- 主键primary key:物理上存储的顺序
- 非空not null:此字段不允许填写空值
- 惟一unique:此字段的值不允许重复
- 默认default:当不填写此值时会使用默认值,如果填写时以填写为准
- 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常