SQL
DDL(Data Definition Language)
DML(Data Manipulation Language)
DCL(Data Control Language)
- SQL语句的通用方法:
SELECT <[DISTINCT] c1 [AS new_name]...>
FROM <r1 [, JOIN [ON]] [AS new_name] ...>
[WHERE <condition>]
[GROUP BY <c1 ...> [HAVING <condition>]]
[ORDER BY <c1[DESC | ASC] ...>]
[LIMIT]
- SQL查询语句的执行顺序:
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
基础语法:
DDL
CREATE
- Create table
CREATE TABLE FjjPractice.student (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname VARCHAR(64) NOT NULL COMMENT '学生',
age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
gender TINYINT NOT NULL DEFAULT 2 COMMENT '0=female, 1=male, 2=unknown',
addr ENUM('北京', '上海', '天津') NOT NULL DEFAULT '北京' COMMENT '地址',
cometime DATETIME NOT NULL DEFAULT NOW() COMMENT '入学时间',
telnum BIGINT NOT NULL UNIQUE KEY COMMENT '电话号'
)ENGINE=INNODB CHARSET=utf8mb4;
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
变量类型
下面列出了最常见的数据类型:
- Number 类型:
类型 | 作用 | 用法 | 备注 |
---|---|---|---|
INT(size) | 整型 | size 最大位数 | |
FLOAT(size,d) | 浮点型 | size 最大位数,d 小数位数 | |
DOUBLE(size,d) | 长浮点型 | size 最大位数,d 小数位数 |
- Date 类型:
类型 | 作用 | 用法 | 备注 |
---|---|---|---|
DATE() | 日期 | 格式:YYYY-MM-DD | |
DATETIME() | 日期和时间的组合 | 格式:YYYY-MM-DD HH:MM:SS | |
TIMESTAMP() | 时间戳 | 格式:YYYY-MM-DD HH:MM:SS | TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储 |
TIME() | 时间 | 格式:HH:MM:SS |
- String 类型:
类型 | 作用 | 用法 | 备注 |
---|---|---|---|
VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符) | size 字符串最大长度 | 最多 255 个字符 |
TEXT | 存放最大长度为 65,535 个字符的字符串 |
在创建 SQL 表时, 必须决定表中的每个列将要存储的数据的类型
ALTER
- ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
- 还可以使用 ALTER TABLE 命令在现有表上添加和删除各种约束。
- ALTER TABLE 命令也用于重命名列
- 添加属性
ALTER TABLE table_name ADD field_name field_type;
- 修改原属性名称及类型
ALTER TABLE table_name CHANGE old_field_name new_field_name new_field_type;
- 删除属性
ALTER TABLE table_name DROP field_name;
- 重命名列
ALTER TABLE people
CHANGE FirstName name