SQL语言
SQL全称为Structured Query Language,即结构化查询语言,是一种用来操作数据库系统的编程语言,也是与数据库通信的指令,可以在数据库中对数据进行查询、插入、更新、删除等操作。它广泛应用于各种关系型数据库管理系统,如MySQL、SQL Server和Oracle等。
SQL语句的类型
SQL语句从功能上讲,分为数据操作语言DML、数据查询语言DQL、数据定义语言DDL和数据控制语言DCL四大类:
- DML:数据操作语言,修改数据的SQL语句集。DML语句主要包括INSERT、UPDATE和DELETE等数据的插入、修改与删除语句。
- DQL:数据查询语言,核心功能是从数据库中检索数据。DQL的代表语句为SELECT语句。
- DDL:数据定义语言,数据库对象(例如库、表、视图等)定义及生命周期管理的SQL语句集。DDL包括CREATE、ALTER和DROP等语句。
- DCL:数据控制语言,用于管理用户和对象安全权限的SQL语句集。DCL包括GRANT、REVOKE和DENY等语句。
SQL常用数据类型
虽然不同的关系型数据库支持的数据类型不一样,但数字、字符、日期等基本数据类型几乎所有的关系型数据库都支持,但在具体实现上可能略有差异。
1、整数类型。
| 类型 | 描述 |
| int | 4字节长度整数,用于表示−2,147,483,648~2,147,483,647之间的整数。 |
| tinyint | 1字节长度整数,用于表示−128~127之间的小整数。 |
| smallint | 2字节长度整数,用于表示−32,768~32,767之间的小整数。 |
| bigint | 8字节长整数,用于表示比较大的整数。 |
2、浮点数类型,浮点数通常需要指定最大数字位数及小数点后保留的数字位数,例如:double(6,2)表示总共6位数字,小数点后保留两位。
| 类型 | 描述 |
| double | 8字节长度的双精度浮点数,可使用double(size, d)指明数字长度。 |
| float | 4字节长度的单精度浮点数,可使用float(size, d)指明数字长度。 |
| decimal(size, d) | 精确表示的浮点数,而double和float表示的是精确到小数点后若干位的近似值。 |
3、字符类型,字符类型的数据表示时需使用单引号引用,例如:'hello,world'。
| 类型 | 描述 |
| varchar(size) | 可变长度字符串,根据实际长度占用空间,最大长度由size指定。 |
| char(size) | 固定长度的字符串,长度由size指定,不足长度时使用空格填充。 |
| text | 字符串文本,MySQL默认最大长度为65,535个字符。 |
4、日期时间类型,日期时间类型的数据表示时需使用单引号引用,例如:'2000-01-01','15:28:30'。
| 类型 | 描述 |
| date | 格式为YYYY−MM−DD的日期类型。 |
| time | 格式为HH:MM:SS的时间类型。 |
| datetime | 格式为YYYY−MM−DD HH:MM:SS的日期时间类型。 |
| timestamp | 时间戳,从1970−01−01 00:00:00到现在经过的秒数。 |
SQL字段约束
在SQL中,字段约束是用来定义和限制表中数据的有效性和完整性的规则。这些约束可以确保数据的准确性、一致性和可靠性。下表是几种常见的字段约束。
| 约束 | 描述 |
| primary key | 主键约束:字段中的值可以唯一标识表中的每一行记录,且不能为空。 |
| unique | 唯一约束:字段中的所有值都是唯一的,允许有空值。 |
| foreign key | 外键约束:字段中的值匹配另一个表中的字段值。 |
| not null | 非空约束:字段不接受空值(null)。 |
| default | 默认值约束:未指定字段值时,使用默认值。 |