MYSQL数据库
创建数据库
我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
drop 命令删除数据库
DROP DATABASE 数据库名;
例如:删除名为 RUNOOB 的数据库:
drop database RUNOOB;
选择MySQL数据库
use 数据库名;
MySQL 数据类型:
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值类型
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
数据类型的属性
MySQL 创建数据表
创建MySQL数据表需要以下信息:
- 表名
- 表字段名
- 定义每个表字段
以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE [IF NOT EXISTS] 表名 (
字段1 数据类型 [字段属性|约束][索引][注释],
……
字段n 数据类型 [字段属性|约束][索引][注释]
)[表类型][表字符集][注释];
示例
#创建学生表 注意:
CREATE TABLE `student`( 多字段使用逗号分隔
`studentNo` INT(4) PRIMARY KEY, 保留字用撇号括起来
` name` CHAR(10),
……);
字段的约束及属性
名称 | 关键字 | 说明 |
---|---|---|
非空约束 | NOT NULL | 字段不允许为空 |
默认约束 | DEFAULT | 赋予某字段默认值 |
唯一约束 | UNIQUE KEY(UK) | 设置字段的值是唯一的允许为空,但只能有一个空值 |
主键约束 | PRIMARY KEY(PK) | 设置该字段为表的主键可唯一标识该表记录 |
外键约束 | FOREIGN KEY(FK) | 用于在两表之间建立关系,需要指定引用主表的哪一字段 |
自动增长 | AUTO_INCREMENT | 设置该列为自增字段 默认每条自增1通常用于设置主键 |
主键
CREATE TABLE student(
`studentNo` INT(4) PRIMARY KEY,
……);
注释
CREATE TABLE test (
`id` int(11) UNSIGNED COMMENT ‘编号’
)COMMENT='测试表’ ;
设置字符集编码
CREATE TABLE [IF NOT EXISTS] 表名(
#省略代码
)CHARSET = 字符集名;
删除表
在删除表之前,先使用IF EXISTS语句验证表是否存在
DROP TABLE IF EXISTS `student`;
修改表
#修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
#添加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
#修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
#删除字段
ALTER TABLE 表名 DROP 字段名;
添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名
PRIMARY KEY 表名(主键字段);
示列:
设置grade表中gradeId字段为主键
ALTER TABLE `grade` ADD CONSTRAINT `pk_grade` PRIMARY KEY `grade`(`gradeId`);
添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段);
示列:
将student表的gradeId字段和grade表的gradeId字段建立外键关联
ALTER TABLE `student` ADD CONSTRAINT fk_student_grade FOREIGN KEY(`gradeId`)
REFERENCES `grade` (`gradeId`);