복붙노트

[SQL] MySQL은 '스키마를 생성'과 '데이터베이스를 만드는'- 어떤 차이가 있나요

SQL

MySQL은 '스키마를 생성'과 '데이터베이스를 만드는'- 어떤 차이가 있나요

내 애완 동물 프로젝트 중 하나에 대한 메타 데이터에 INFORMATION_SCHEMA 데이터베이스와 피킹에 피크를 가지고 가서, 내가 힘든 시간을 이해하는 데 어떤 스키마 명령을 생성하고이 MySQL 용 데이터베이스 명령을 만드는 사이에 차이가있다 (있는 경우).

어떤 차이가 있습니까? 되지 않은 경우,이 관계형 데이터베이스 (I 오히려 데이터베이스와 동일한 수준에있는 것보다, Oracle 등의 기타 데이터베이스 용, 스키마는 데이터베이스에 존재 들었습니다)을위한 행동이 아니라 전형적인 패턴이다.

감사!

해결법

  1. ==============================

    1.MySQL의 문서는 말한다 :

    MySQL의 문서는 말한다 :

    그래서,이 두 명령은 동일한 작업을 수행하는 것이 일반적인 것 같다.

  2. ==============================

    2.MySQL의 문서는 말한다 : SCHEMA는 MySQL은 5.0.2로 DATABASE를 만들 동의어입니다 CREATE.

    MySQL의 문서는 말한다 : SCHEMA는 MySQL은 5.0.2로 DATABASE를 만들 동의어입니다 CREATE.

    이 모든 80 년대 중반에서 SQL에 대한 ANSI 표준을 거슬러 올라갑니다.

    그 표준은 "스키마를 작성"명령을했다, 그것은 소개 제공 테이블과 뷰 이름에 대한 여러 이름 공간. 모든 테이블과 뷰이었다 는 "스키마"에서 만들었습니다. 그 버전은 한 것인지의 여부를 모른다 일부 크로스 스키마 테이블과 뷰에 액세스 할 수 있지만, 나는 그것이 한 가정합니다. AFAIR, 아니 제품은 (적어도 그 당시에는) 정말, 그것을 구현 전체가 개념은 실제보다 이론이었다.

    OTOH, ISTR 표준이 버전은 개념이 없었다 "사용자"또는 "사용자 만들기"명령, 그래서를 사용하는 제품이 있었다 다음 테이블에 자신의 이름 공간을했다 ( "사용자"의 개념 뷰) "스키마"자신의 동등한를 구현합니다.

    이것은 시스템이 다른 영역이다.

    지금까지 관리에 관한 한,이 너무 많은 문제가되지해야한다, 여기에 있기 때문에 어쨌든 차이가 있습니다.

    지금까지 당신이 응용 프로그램의 코드를 보면, 당신은 "전용"걱정해야 하나의 응용 프로그램이 여러 이름 공간에서 테이블을 액세스하는 경우. AFAIK 모든 시스템은 구문을 지원 ".", 이 것은 이름 공간이있는이 아닌 문제입니다 여부를 사용자, "스키마", 또는 "데이터베이스".

  3. ==============================

    3.엄밀히 말하면, 데이터베이스 및 스키마의 차이는 MySQL의에서 inexisting된다.

    엄밀히 말하면, 데이터베이스 및 스키마의 차이는 MySQL의에서 inexisting된다.

    그러나,이 같은 SQL Server와 같은 다른 데이터베이스 엔진의 경우가 아니다. SQL 서버에서 :,

    기본적으로 속한다 기본 스키마에 대한 SQL Server의 모든 테이블은 DBO했다. 당신이 특정 스키마에 할당되지 않은 테이블을 쿼리 할 때 같은 작업을 수행 할 수 있습니다

    SELECT *
    FROM your_table
    

    이는 동일하다 :

    SELECT *
    FROM dbo.your_table
    

    이제, SQL 서버는 당신에게 유사한 목적을 공유 테이블을 그룹화의 가능성을 제공합니다 다른 스키마의 생성을 할 수 있습니다. 즉, 데이터베이스를 구성하는 데 도움이됩니다.

    예를 들어보기로 사용 송장, creditorders 같은 테이블 판매라는 스키마 (및 판매와 관련된 기타), 및 조회라는 또 다른 스키마와 같은 국가, 통화, subscriptiontypes 같은 테이블 (그리고 다른 테이블을 만들 수 있습니다 ) 테이블 위로.

    특정 도메인에 할당 된 테이블 (기본 DBO 스키마에 속한 테이블과 동일) 테이블 이름 앞에 추가 스키마 이름으로 SQL 서버 스튜디오 관리자에 표시됩니다.

    SQL Server의 특별한 스키마가 있습니다. 같은 책을 인용합니다 :

    스키마는 그룹화뿐만 아니라입니다. MSDN 설명 된 바와 같이, 다른 사용자들에게 각 스키마에 대해 서로 다른 권한을 부여 실제로 가능하다.

    이 방법을 수행, 스키마 조회는 위에서 언급 한 데이터베이스에서 표준 사용자에게 제공 될 수있다 (예를 들어 전용 권한을 선택)을 테이블이라고 supplierbankaccountdetails는 금융이라는 서로 다른 스키마에 할당 될 수있는 반면, 및 사용자 만 액세스 할 수 있도록 그룹 계정에 (그냥 예를 들어, 당신은 아이디어를 얻을).

    마지막으로, 다시 같은 책을 인용 :

  4. ==============================

    4.CREATE SCHEMA는 DATABASE를 만들 동의어입니다. DATABASE 구문을 만들

    CREATE SCHEMA는 DATABASE를 만들 동의어입니다. DATABASE 구문을 만들

  5. ==============================

    5.데이터베이스 스키마의 집합이며, 스키마는 테이블의 모음입니다. 그러나 MySQL의에서 그들은 같은 방법으로 사용합니다.

    데이터베이스 스키마의 집합이며, 스키마는 테이블의 모음입니다. 그러나 MySQL의에서 그들은 같은 방법으로 사용합니다.

  6. ==============================

    6.그래서, MySQL은 "데이터베이스"와 MySQL "스키마"차이가 없다 :이 같은 일에 대한 두 개의 이름이다 - 테이블 및 기타 DB 개체에 대한 네임 스페이스.

    그래서, MySQL은 "데이터베이스"와 MySQL "스키마"차이가 없다 :이 같은 일에 대한 두 개의 이름이다 - 테이블 및 기타 DB 개체에 대한 네임 스페이스.

    오라클 배경을 가진 사람들을 위해 : 오라클 스키마에 MySQL은 "데이터베이스"일명, MySQL은 "스키마"에 해당합니다. MySQL과 오라클의 차이는 SCHEMA 명령을 CREATE 오라클에 있다는 것입니다 실제로 스키마를 생성하지 않습니다 SCHEMA 명령을 CREATE 아니라 웁니다 테이블과 전망. 그리고 오라클의 데이터베이스 명령은 MySQL의 대응보다 매우 다른 일을 작성하십시오.

  7. from https://stackoverflow.com/questions/1219711/mysql-create-schema-and-create-database-is-there-any-difference by cc-by-sa and MIT license