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

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

时间:2025-01-19 15:32:27浏览次数:3  
标签:shop DATABASE 数据库 MySQL db SQL my CREATE

问题描述与处理策略

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

标签:shop,DATABASE,数据库,MySQL,db,SQL,my,CREATE
From: https://blog.csdn.net/weixin_52173250/article/details/145243273

相关文章

  • 安全认证框架【springSecurity】进行数据库效验开箱即用。
    流程:注册---加密密码---保存数据库---登录---授权---认证---效验数据库账号密码---生成token存redis---返回前端第一步子模块引入依赖;版本号由父统一管理,这里有不理解的可以看我maven篇巩固一下。<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apac......
  • ingress-nginx代理tcp使其能外部访问mysql
    一、helm部署mysql主从复制helmrepoaddbitnamihttps://charts.bitnami.com/bitnamihelmrepoupdate helmpullbitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类)117##@paramarchitectureMySQLarchitecture(`standalone`or`re......
  • MySQL数据库基本操作命令
    数据库基本操作数据库可以看作是一个专门存储数据对象的容器,每一个数据库都有唯一的名称,并且数据库名称都是有实际意义的,这样就可以清晰的看出每一个数据库用来存放什么数据。在MySQL数据库中存在系统数据库和自定义数据库,系统数据库是安装在MySQL后系统自带的数据库,自定义......
  • MySQL——DQL基本查询 聚合函数 分组查询 排序查询 分页查询
    1.3DQL语法DQL:数据查询语言,用来查询数据库表中的记录。DQL基本查询1.查询多个字段select字段1,字段2,字段3...from表名;案例查询指定字段nameworknoageselectname,workno,agefromemp;2.查询所有字段select*from表名;select*fromemp;3.设置别名select字段1a......
  • SpringBoot体育场馆在线预约系统ig5br(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,场地类别,场地信息,场地预约,取消预约,统计数据开题报告内容一、研究背景与意义随着人们健康意识的增强,体育锻炼已成为现代人日常生活的重要组成部分。体......
  • N个utils(sql)
    sql,操作数据库的语言,也可以叫做数据库软件的指令集吧。名字而已,无所谓啦。本质上,sql并不是java语言内的范畴。但却是企业级开发的范畴。并且我整个文章的一篇逻辑的本质,层的概念,其中一个大的层级就是指,数据库。在数据库下,还能有库  表   数据行   字段最基本的......
  • Golang结合MySQL和DuckDB提高查询性能
    要在Golang中组合MySQL和DuckDB以提高查询性能,请考虑使用混合查询执行方法。这种方法利用了MySQL强大的事务管理和DuckDB闪电般的分析处理能力。本文介绍如何充分利用两者的方法。各取所长用MySQL处理事务,用DuckDB处理分析MySQL应该处理常规的INSERT、UPDATE和DELETE操......
  • 免费送源码:Java+ssm+MySQL SSM宁夏地区自助旅游管理系统 计算机毕业设计原创定制
     摘 要本论文主要论述了如何使用SSM框架开发一个自助旅游管理系统,严格按照软件开发流程进行各个阶段的工作,采用B/S架构JAVA技术,面向对象编程思想进行项目开发。在引言中,作者将论述自助旅游管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各......
  • 宿舍管理信息系统【控制台+MySQL】(Java课设)
      客官进来看一眼呗,有惊喜!【帮你解决烦恼】:Java课设和计Java毕设太难不会做怎么办?系统类型控制台类型+Mysql数据库存储数据使用范围适合作为Java课设!!!部署环境jdk1.8+Mysql8.0+Idea或eclipse+jdbc运行效果本系统源码地址:宿舍管理信息系统【控制台+MySQL】(Java课设)资......
  • libsql bottomless 集成minio 简单使用
    libsql支持bottomless可以方便的将wal数据存储在s3中(基于了虚拟wal接口实现),以下是一个简单使用环境准备docker-compose环境开启了namespace以及集成主从服务services:db1:image:ghcr.io/tursodatabase/libsql-server:latestentrypoint:/bin/sqld--db-p......