Sự khác biệt trong thuật ngữ cơ sở dữ liệu giữa MS SQL và MySQL là gì?
Một phiên bản MySQL có thể có nhiều hơn một cơ sở dữ liệu không? Có vẻ như nó chỉ có thể tạo ra các lược đồ khác nhau. Tuy nhiên, lệnh SQL là create database
.
Trong MS SQL, bạn có thể tạo nhiều cơ sở dữ liệu, mỗi cơ sở dữ liệu có một lược đồ mặc định của DBO? Nhưng nhiều lược đồ trong cơ sở dữ liệu vẫn có thể?
Ry- ♦♦
213K54 Huy hiệu vàng445 Huy hiệu bạc459 Huy hiệu Đồng54 gold badges445 silver badges459 bronze badges
Hỏi ngày 8 tháng 12 năm 2009 lúc 20:10Dec 8, 2009 at 20:10
0
Từ liên kết này, chúng tôi thấy rằng các lược đồ MS SQL không còn gắn liền với người dùng, đây là báo giá có liên quan:
Hành vi của các lược đồ đã thay đổi trong SQL Server 2005. Các lược đồ không còn tương đương với người dùng cơ sở dữ liệu; Mỗi lược đồ bây giờ là một không gian tên riêng biệt tồn tại độc lập với người dùng cơ sở dữ liệu đã tạo ra nó. Nói cách khác, một lược đồ chỉ đơn giản là một thùng chứa các đối tượng. Một lược đồ có thể được sở hữu bởi bất kỳ người dùng nào và quyền sở hữu của nó có thể chuyển nhượng.
Trong MySQL, cơ sở dữ liệu và lược đồ là chính xác giống nhau, bạn thậm chí có thể trao đổi từ trong các lệnh, tức là tạo cơ sở dữ liệu có từ đồng nghĩa tạo lược đồ.
MySQL hỗ trợ nhiều cơ sở dữ liệu [lược đồ] và MS SQL hỗ trợ nhiều cơ sở dữ liệu và nhiều lược đồ.
Đã trả lời ngày 14 tháng 12 năm 2009 lúc 21:16Dec 14, 2009 at 21:16
Lance Robertslance RobertsLance Roberts
21.9K31 Huy hiệu vàng110 Huy hiệu bạc129 Huy hiệu đồng31 gold badges110 silver badges129 bronze badges
2
Nói chung, tôi thấy bài viết sau đây về Wikipedia là hữu ích.
Ở dưới cùng của bài viết là như sau:
Thông số kỹ thuật SQL cho thấy rõ "lược đồ SQL" là gì; Tuy nhiên, cơ sở dữ liệu khác nhau thực hiện không chính xác. Để kết hợp sự nhầm lẫn này, chức năng có thể, khi được thực hiện không chính xác, trùng lặp với cơ sở dữ liệu của cha mẹ. Lược đồ SQL chỉ đơn giản là một không gian tên trong cơ sở dữ liệu, những thứ trong không gian tên này được giải quyết bằng cách sử dụng dấu chấm của toán tử thành viên ".". Đây dường như là một phổ quát giữa tất cả các triển khai. Một truy vấn đủ điều kiện thực sự đầy đủ [cơ sở dữ liệu, lược đồ và bảng] được minh họa như vậy:
select * from database.schema.table
Bây giờ, vấn đề, cả lược đồ và cơ sở dữ liệu có thể được sử dụng để cô lập một bảng,
foo
từ một bảng khác như bảngfoo
. Sau đây là mã giả:select * from db1.foo
so vớiselect * from db2.foo
[không có lược đồ rõ ràng giữa DB và Bảng]select * from [db1.]default.foo
so với0 [không có tiền tố DB rõ ràng] Vấn đề phát sinh là người dùng MySQL trước đây sẽ tạo nhiều cơ sở dữ liệu cho một dự án. Trong bối cảnh này, cơ sở dữ liệu MYSQL tương tự chức năng với các trường sau, vì postgres thiếu chức năng cơ sở dữ liệu chéo mà MySQL có. Ngược lại, Postgres đã áp dụng nhiều đặc điểm kỹ thuật thực hiện bảng chéo, chéo, và sau đó rời khỏi phòng cho chức năng cơ sở dữ liệu chéo trong tương lai. Các bí danh MySQL đằng sau hậu trường, lược đồ với cơ sở dữ liệu, do đó tạo ra lược đồ và tạo cơ sở dữ liệu là các chất tương tự.SELECT * from world.dbo.city;
Do đó, có thể nói rằng MySQL đã triển khai chức năng bảng chéo, đã bỏ qua chức năng lược đồ hoàn toàn và cung cấp chức năng tương tự trong việc thực hiện cơ sở dữ liệu. Tóm lại, Postgres hỗ trợ đầy đủ các lược đồ, nhưng thiếu một số chức năng mà MySQL có với cơ sở dữ liệu, trong khi MySQL thậm chí không cố gắng hỗ trợ các lược đồ thực sự.. In summary, Postgres fully supports schemas, but lacks some functionality MySQL has with databases, while MySQL doesn't even attempt to support true schemas.
Đã trả lời ngày 15 tháng 12 năm 2009 lúc 23:25Dec 15, 2009 at 23:25
Greg Robertsgreg RobertsGreg Roberts
2.5521 Huy hiệu vàng20 Huy hiệu bạc23 Huy hiệu Đồng1 gold badge20 silver badges23 bronze badges
1
Tôi tin rằng bằng cách nói 'lược đồ' cho MS SQL, bạn có nghĩa là 'chủ sở hữu'.
Từ sự hiểu biết của tôi, trong mysql khi bạn làm một
SELECT * from world.city;
Truy vấn này đang chọn từ cơ sở dữ liệu thế giới thành phố bảng.
Trong MSSQL, bạn sẽ phải làm một
SELECT * from world.dbo.city;
Trong đó 'DBO' là chủ sở hữu mặc định của bảng.
Để làm cho cuộc sống dễ dàng hơn, hãy xác định cơ sở dữ liệu mặc định bằng cách nhập
USE world
SELECT * from city;
Trong MySQL không có cách nào để tuyên bố chủ sở hữu của bảng. I E. 'DBO'.
Đã trả lời ngày 8 tháng 12 năm 2009 lúc 20:40Dec 8, 2009 at 20:40
Đau quáYada
29,5K23 Huy hiệu vàng101 Huy hiệu bạc142 Huy hiệu đồng23 gold badges101 silver badges142 bronze badges
MS SQL chắc chắn hỗ trợ nhiều cơ sở dữ liệu, mỗi cơ sở có 1 đến nhiều lược đồ, DBO chỉ là mặc định cho mục đích tương thích ngược.
Đã trả lời ngày 8 tháng 12 năm 2009 lúc 20:14Dec 8, 2009 at 20:14
AndrewandrewAndrew
26.1k5 Huy hiệu vàng62 Huy hiệu bạc85 Huy hiệu Đồng5 gold badges62 silver badges85 bronze badges