一般来说,我对mySQL和sql是全新的.我已经安装了mysql workbench和mysql community server开始练习,正如我在许多教程中看到的那样.我有两个可能相互关联的问题.在许多脚本中,我看到

USE master;

在我的workbench版本(8.0版)中,当我try 运行此查询时,会显示"未知数据库‘master’".我不太确定master数据库有什么(我在google上搜索了它,我只知道在master数据库中创建自己的数据库是一种很好的做法).

我的另一个更让我困惑的问题是何时使用IF.

IF NOT EXISTS(SELECT name FROM master.dbo.sysdatabases
    WHERE name = 'mydatabase')
    CREATE DATABASE [mydatabase]

它不断给我错误:"如果在这个位置无效,需要EOF、ALTER、ANALYSE、BEGIN,…"

当我在IF之前使用BEGIN时,表示:IF在此位置无效,应为EOF,";"

起初,我认为它与主数据库有关,所以我try 了一些不同的方法:

IF OBJECT_ID('tablename','U') IS NULL
 CREATE TABLE tablename(
 ....);

我也会犯同样的错误.我在stackoverflow上发现的唯一内容是:

USE [master]
GO

IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases 
WHERE name = 'HotelManagement')
CREATE DATABASE [HotelManagement] COLLATE Greek_CI_AI -- Collatiom : CI = Case Insensitive, AI = Accent Insensitive
GO

/* =====================
   CREATE ENTITIES 
======================*/
USE [HotelManagement]
GO

IF OBJECT_ID ('Customers', 'U') IS NULL
BEGIN
CREATE TABLE Customers
(
   Customer_ID int IDENTITY(1,1) PRIMARY KEY, 
   First_name varchar (50) not null, 
   Last_name varchar (50) not null, 
   Birth_date datetime,
   Issuing_authority varchar (50) not null, 
   Email varchar (50),
   Phone varchar (50)
)
END

推荐答案

这很令人困惑,但每个品牌都有自己的SQL实现.

SQL基于ANSI标准,但没有一家供应商实现整个标准.此外,SQL标准允许供应商创建自己的SQL语言专有扩展.每个供应商至少都会这样做一点.

底线是,您不应该假设一个品牌的数据库的SQL代码在另一个品牌上工作.它们有相似之处,因为它们都基于SQL,但您确实需要分别研究每个品牌的文档.

您甚至需要研究正在使用的特定version个数据库的文档,因 for each 供应商在每个版本中都引入了新功能(或者也不推荐一些旧功能).

对于MySQL:

还有许多其他区别.只需等到您开始编写存储过程!

Mysql相关问答推荐

在Join的ON分句中使用SUM()

无法从容器从APS. NET应用程序连接到MySQL服务器容器

左联接重复问题

如果WHERE语句包含所有列,唯一键顺序是否重要?

对具有依赖子查询结果的2列使用等式比较来优化连接

MySQL:一个查询中的SELECT语句,用于从一个表中检索所有数据,并仅从另一个表中检索一个数据

如何从MySQL数据库中提取入职第一个月的工作天数?

mysql 获取每个单词的第一个字母

在MySQL的join查询中进行计算

将类图转换为SQL数据库

MySQL 关于 JSON 数组和子查询的问题

SQL使用LIMIT获取结果和结果中的行数

如何在 MySQL 中查找重复值和更新值

MySQL 使用了错误的索引

此更新查询是否有任何可能的重写选项?

MySQL 工作台与 phpMyAdmin

如何通过一个查询批量更新 mysql 数据?

Mysql:创建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS'

'LIKE ('%this%' OR '%that%') and something=else' 不起作用

PHP MYSQL - 插入不使用列名但使用自动增量字段