MySQL 创建数据库问题:You have an error in your SQL syntax(MySQL 数据库命名规则问题)

问题描述与处理策略

1、问题描述
CREATE DATABASE my-shop-db;
  • 执行上述 SQL 语句,报如下错误
CREATE DATABASE my-shop-db
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-shop-db' at line 1

# 翻译
CREATE DATABASE my-shop-db
SQL 语句语法有错误
请查看与 MySQL 服务版本对应的手册,以获取在第 1 行使用的正确语法
2、问题原因
  1. 在 MySQL 中创建一个名为 my-shop-db 的数据库失败,因为 my-shop-db 中包含了不被允许的字符(此案例中为破折号 -

  2. MySQL 的数据库名称有一些限制,通常只允许字母、数字、下划线(_),并且不能以数字开头

3、处理策略
  • my-shop-db 中的破折号 - 修改为下划线(_
CREATE DATABASE my_shop_db;

补充学习

MySQL 数据库命名规则
(1)基本介绍
  1. 数据库名称只能包含字母 a ~ z、A ~ Z、数字 0 ~ 9 和下划线 _

  2. 特殊字符(例如,空格、破折号 -@、井号 # 等)是不被允许的

  3. 在大多数操作系统上(例如,类 Unix 系统),MySQL 的数据库名称是区分大小写的,但在 Windows 上,MySQL 的数据库名称默认不区分大小写,因为 Windows 文件系统通常不区分大小写

  4. 避免使用 MySQL 的保留字作为数据库名称

  5. 每个数据库名称在 MySQL 中必须是唯一的

(2)演示(反例)
  1. 避免使用特殊字符
CREATE DATABASE my@shop@db;
# 结果

CREATE DATABASE my@shop@db
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@shop@db' at line 1
  1. 注意区分大小写(此案例环境为 Windows 系统,在数据库 my_shop_db 存在的情况下创建数据库 my_shop_DB
CREATE DATABASE my_shop_DB;
# 结果

CREATE DATABASE my_shop_DB
> 1007 - Can't create database 'my_shop_db'; database exists
  1. 避免使用保留字
CREATE DATABASE select;
# 结果

CREATE DATABASE select
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select' at line 1
  1. 注意唯一性在数据库 my_shop_db 存在的情况下创建数据库 my_shop_db
CREATE DATABASE my_shop_db;
# 结果

CREATE DATABASE my_shop_db
> 1007 - Can't create database 'my_shop_db'; database exists

你可能感兴趣的:(数据库,-,问题清单,数据库,mysql,sql,java,开发语言,java-ee,intellij-idea)