子兮子兮 子兮子兮

No can, but will.

目录
多种数据库创建库或模式语法
/    

多种数据库创建库或模式语法

  • Microsoft SQL Server 创建数据库 database 语法;
  • PostgreSQL / KingBase 创建数据库 database 语法;
  • MySQL / MariaDB / TiDB 创建模式 schema 语法;
  • Oracle Database 创建模式 schema 语法;
  • 达梦 DM8 创建模式 schema 语法。

Microsoft SQL Server

USE [master]
GO

CREATE DATABASE [NewDBName]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'NewDBName', FILENAME = N'D:\DB\DATA\NewDBName.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10MB )
 LOG ON 
( NAME = N'NewDBName_log', FILENAME = N'D:\DB\DATA\NewDBName_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 10MB )
 WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

PostgreSQL / KingBase

-- 创建新用户,也可以使用已存在的用户
create user new_user_name with password '123456' login createdb createrole;

-- 创建数据库并授权给已存在的用户
create database new_db_name with owner new_user_name;

MySQL / MariaDB / TiDB

在 MySQL 中,create database 等效于 create schema

-- 创建新用户,也可以使用已存在的用户
create user NewUserName identified by '123456';

-- 创建架构(库),并指定排序规则
create schema NewDBName collate utf8mb4_unicode_ci;

-- 为指定用户授予操作新架构的权限
grant alter, alter routine, create, create routine, create temporary tables,
    create view, delete, drop, event, execute, grant option, index, insert,
    lock tables, references, select, show view, trigger, update
    on NewDBName.* to NewUserName;

Oracle Database

Oracle 数据库中的模式通常指用户

-- Oracle 12c 及以上数据库在创建用户前可能需要先执行以下语句
ALTER SESSION SET CONTAINER=CDB$ROOT;
ALTER PLUGGABLE DATABASE ORCLPDB OPEN;
ALTER SESSION SET CONTAINER=ORCLPDB;
-- 创建新用户并创建同名模式
CREATE USER NEW_USER_DB_NAME IDENTIFIED BY "123456";
-- 为新用户授予连接和资源操作相关权限
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO NEW_USER_DB_NAME;

达梦 DM8

达梦数据库同样没有库的概念,可以创建用户模式

-- 创建新用户并创建同名模式
CREATE USER "NewUserDBName" IDENTIFIED BY "123456" PASSWORD_POLICY 1;

-- 创建新模式并授权给已存在的用户
CREATE SCHEMA "NewDBName" AUTHORIZATION "NewUserDBName";