本篇文章主要内容包括:
1.数据库的创建、使用、查看、删除
2.MySQL存储引擎以及数据类型
3.操作数据表:创建、查看、删除、重命名、复制数据表以及修改表的结构
一、创建数据库
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] 数据库名
[
[DEFAULT]CHARACTER SET[=]字符集|
[DEFAULT]COLLATE[=] 校对规则名称
];
规则说明:
最后一定要加分号,否则mysql不会执行.{}表示必选,[]表示可选项,|两侧为或的关系
参数说明:
1.[IF NOT EXISTS]:只有目前数据库尚未存在时才执行创建语句
2.[DEFAULT]可选项,表示指定默认值。
3.CHARACTER SET[=] 字符集,一般选择utf-8(万国码)
4.校对规则名在可视化工具中找到,用于指定字符集的校对规则
数据库命名规则:
1.不能出现重名
2.不能使用单独的数字,可以由任意字母、阿拉伯数字、下划线、和“$”组成
3.名称最长64个字符
4.不能使用MySQL关键字作为数据库名和表名
5.Windows下数据库大小写不敏感,Linux下敏感
复制
二、查看数据库
SHOW {DATABASES|SCHEMAS}
[LIKE'模式'WHERE条件]
;
eg:
SHOW DATABASE LIKE 'db_%';
复制
三、选择数据库
USE 数据库名;
复制
四、删除数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] 数据库名;
复制
五、MySQL存储引擎
1.查询支持的全部存储引擎
SHOW ENGINES;
复制
2.选择存储引擎的建议
InnoDB | MyISAM | MEMORY |
用于事务处理应用程序,具有众多特性,包括ACID事务支持,支持外键。如果需要对事务完整性较高以及需要频繁的更新、删除,InnoDB具有较大优势。 | 如果应用的完整性、并发性要求低,主要用于插入记录和读出记录,管理非事务表,则选择MyISAM。 | 所有数据均在内存中,数据处理速度快,但安全性不高,读写速度快。有此类需求则选择MEMORY存储引擎。 |
六、MySQL数据类型
只整理了常用的
数据类型 | 取值范围 | 说明 | 单位 |
INT | 很大 | 标准整数 | 4字节 |
FLOAT | 很大 | 单精度浮点数 | 8或4字节 |
DOUBLE | 很大 | 双精度浮点数 | 8字节 |
类型 | char(M) | char | varchar(M) |
说明 | 固定长度为M的字符串,m取值0~255 | 0~255个字符 | 长度可变,最大255 |
TINYTEXT | 255字节 | 小 |
TEXT | 65535字节 | 中 |
LONGTEXT | 4294967295字节 | 大 |
时间类型 | 取值范围 | 格式 |
DATE | 1000-01-01~9999-12-31 | 日期,YYYY-MM-DD |
TIME | -838:58:59~835:59:59 | 时间,HH:MM:SS |
DATETIME | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 时间和日期, YYYY-MM-DD HH:MM:SS |
YEAR | 1901~2155 | 年份可指定两位数字和四位数字 |
七、创建数据表
CREATE [TEMPORARY]TABLE[IF NOT EXISTS] 数据表名
[(create_definition,...)][table_options][select-statement]
复制
关键字 | 说明 |
TEMPORARY | 使用该关键字表示创建一个临时表 |
IF NOT EXISTS | 避免存在同名表 |
create_definition | 表的列属性,MySQL要求创建表时至少包含一列 |
table_options | 表的一些特性参数,一般不用管 |
select_statement | select语句描述部分,用它可以快速创建表 |
下面介绍列属性create_definition部分,定义格式如下:
col_name type[NOT NULL|NULL][DEFAULT default_value][AUTO_INCREMENT]
[PRIMARY KEY][reference_definition]
复制
参数说明:
参数 | 说明 |
col_name | 字段名 |
type | 字段类型 |
NOT NULL|NULL | 是否允许为空值 |
DEFAULT default_value | 表示默认值 |
AUTO_INCREMENT | 表示是否自动编号,每个表只能有一个AUTO_INCREMENT列,并且必须为索引列 |
PRIMARY KEY | 表示是否为主键,一个表只能有一个主键,若需要主键,MySQL则将第一个没有任何NULL值的UNIQUE作为主键 |
reference_definition | 为字段添加注释 |
例:
USE 数据库名;
CREATE TABLE col_name(列名 数据类型 其他约束条件);
复制
八、查看表结构
SHOW [FULL]COLUMNS FROM 数据表名 [FROM 数据库名];
或
SHOW [FULL]COLUMNS FROM 数据库名.数据表名;
或
DESCRIBE 数据表名;//可简写为DESC
DESCRIBE 数据表名 列名;//查看指定列
复制
九、修改表结构
1.添加新字段以及修改字段定义
USE 数据库名
ALTER TABLE 数据表名 ADD 列名 数据类型 其他约束条件,
MODIFY 列名 数据类型;//修改数据类型
通过ALTER语句修改表列,其前提是必须将表中数据全部删除,然后才可以修改表列
复制
2.修改字段名
ALTER TABLE 数据库名.数据表名
CHANGE COLUMN 原列名 新列名 其它约束条件;
复制
3.删除字段
USE 数据库名;
ALTER TABLE 表名 DROP 列名;
复制
4.修改表名
USE 数据库名;
ALTER TABLE 原表名 RENAME AS 新表名;
或重命名表:
RENAME TABLE 原表名 TO 新表名;
复制
十、复制表
//创建表的备份,也就是复制表
CREATE TABLE [IF ONT EXISTS]数据表名
{LIKE 源数据表名}
eg:
CREATE TABLE 表A
LIKE 表B;
//只能复制表的结构,不能复制表中的内容,可以通过AS子句实现
CREATE TABLE 表A
AS SELECT*FROM 表B;//同时复制内容
//查看数据
SELECT * FROM 表名;
复制
十一、删除表
DROP TABLE [IF EXISTS] 数据表名;//如果要删除多张,用逗号分隔开
复制
码完!!!
文章转载自小张的栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2968次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
852次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
495次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
435次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
373次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
290次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
278次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
274次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
257次阅读
2025-04-30 12:17:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
247次阅读
2025-04-28 11:01:25