一般来说,我对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