数据库语句:库与表操作
常规语句
- 显示当前 MySQL 版本:sql
SELECT VERSION(); - 显示当前日期:sql
SELECT NOW(); - 显示当前用户:sql
SELECT USER(); - 清空终端显示(调用系统命令):sql
SYSTEM CLS; -- Windows 系统
库操作语句
显示所有库:
sqlSHOW DATABASES;创建库:
sqlCREATE DATABASE 数据库名;- 指定编码格式:sql
CREATE DATABASE 数据库名 CHARACTER SET 编码;
- 指定编码格式:
修改库编码格式:
sqlALTER DATABASE 数据库名 CHARACTER SET 编码;删除库:
sqlDROP DATABASE 数据库名;进入库:
sqlUSE 数据库名;显示当前所在库:
sqlSELECT DATABASE();
表操作语句
显示当前库中所有表:
sqlSHOW TABLES;创建表:
sqlCREATE TABLE 表名 ( 字段名1 字段类型1 约束条件, 字段名2 字段类型2 约束条件, ... );
字段类型
| 类别 | 类型 | 描述 |
|---|---|---|
| 整数类型 | TINYINT | 非常小的整数 |
SMALLINT | 较小的整数 | |
MEDIUMINT | 中等大小的整数 | |
INT / INTEGER | 标准整数 | |
BIGINT | 大整数 | |
| 字符串类型 | CHAR(size) | 固定长度的字符串 |
VARCHAR(size) | 可变长度的字符串 | |
TINYTEXT | 小文本字符串 | |
TEXT | 文本字符串 | |
MEDIUMTEXT | 中等长度文本字符串 | |
LONGTEXT | 长文本字符串 | |
| 浮点数/定点数 | FLOAT | 单精度浮点数 |
DOUBLE | 双精度浮点数 | |
DECIMAL / NUMERIC | 精确数值(适用于货币等精确数据) | |
| 日期/时间 | DATE | 日期 |
TIME | 时间 | |
DATETIME / TIMESTAMP | 日期和时间组合 | |
YEAR | 年份 | |
| 二进制类型 | BINARY(size) | 固定长度的二进制字符串 |
VARBINARY(size) | 可变长度的二进制字符串 | |
TINYBLOB | 小二进制对象 | |
BLOB | 二进制对象 | |
MEDIUMBLOB | 中等大小二进制对象 | |
LONGBLOB | 大二进制对象 | |
| 布尔类型 | BOOLEAN / BOOL | 真/假逻辑变量 |
| 枚举/集合 | ENUM(value1,...) | 枚举类型(仅允许列表中的一个值) |
SET(value1,...) | 集合类型(允许多个值,逗号分隔) |
约束条件
- 非空约束:
NOT NULL:字段不能为空。NULL:字段可以为空。
- 主键约束:
PRIMARY KEY:标识表的唯一字段(不可重复且非空)。AUTO_INCREMENT:自动编号(通常与主键联用)。
- 唯一约束:
UNIQUE KEY:字段值必须唯一(允许为空)。
- 默认约束:
DEFAULT:设置字段默认值。
- 外键约束:sql
FOREIGN KEY (子表字段) REFERENCES 父表名 (父表字段)- 外键列:添加
FOREIGN KEY的字段。 - 参照列:外键参照的父表字段。
- 子表:包含外键的表。
- 父表:被参照的表。
- 作用:确保字段值唯一且有效。
- 外键列:添加
- 查看表结构:sql或简写:
SHOW COLUMNS FROM 表名;sqlDESC 表名;
作业
- 创建学生信息表:
- 包含字段:学号(主键)、身份证(唯一)。
- 创建学生成绩表:
- 包含字段:学号(外键,参照学生信息表的学号)。
- 示例:sql
-- 学生信息表 CREATE TABLE student_info ( student_id INT PRIMARY KEY AUTO_INCREMENT, id_card VARCHAR(18) UNIQUE ); -- 学生成绩表 CREATE TABLE student_scores ( score_id INT PRIMARY KEY AUTO_INCREMENT, student_id INT, FOREIGN KEY (student_id) REFERENCES student_info (student_id) );
