데이터베이스와 테이블은 PHP 관리자 패널을 통해 명시 적으로 생성되거나 스크립트 내에서 정의됩니다.
Creating a Database
1 | CREATE DATABASE database_name
|
Creating a table
1 2 3 4 5 6 7 8 9 | CREATE TABLE users (
id MEDIUMINT NOT NULL
AUTO_INCREMENT,
UserId Varchar (30),
Age Number,
Gender char (1),
Name VarChar (222),
PRIMARY KEY (id)
)
|
|
데이터베이스는 암시 적 또는 명시 적으로 만들 수 있습니다. 첫 번째 문서 삽입 중 내재적으로 데이터베이스 및 콜렉션이 작성되고이 문서에 자동 _id 필드가 추가됩니다.
1 2 3 4 5 6 | db.users.insert( {
UserId: "user1" ,
Age: 55,
Name: "Berry Hellington" ,
Gender: "F" ,
} )
|
Mongo Shell에서이 주석을 실행하여 데이터베이스를 명시 적으로 작성할 수도 있습니다.
1 | db.createCollection( "users" )
|
|
MySQL에서는 생성중인 테이블에 열을 지정하고이 예에서와 같이 일부 열에 적용되는 데이터 유형 및 길이와 같은 유효성 검사 규칙을 설정해야합니다. MongoDB의 경우 각 문서가 보유해야하는 필드 나 지정된 필드가 보유해야하는 유효성 검사 규칙을 정의 할 필요는 없습니다.
그러나 MongoDB에서 데이터 무결성 및 일관성을 위해 JSON SCHEMA VALIDAT를 사용하여 유효성 검사 규칙을 설정할 수 있습니다
|
Dropping a table
|
|
이것은 MongoDB의 경우 MySQL 및 콜렉션에 대한 테이블을 삭제하기 위한 명령문입니다.
|
join_date라는 새 열 추가
1 | ALTER TABLE users ADD join_date DATETIME
|
이미 정의 된 경우 join_date 열 제거
1 | ALTER TABLE users DROP COLUMN join_date DATETIME
|
|
join_date라는 새 필드 추가
1 | db.users.updateMany({},{$set:{‘join_date’: new Date()})
|
컬렉션의 모든 문서가 현재 날짜로 참가 날짜가 되도록 업데이트됩니다.
이미 정의 된 경우 join_date 필드 제거
1 | db.users.updateMany({},{$unset:{‘join_date’: “”})
|
모든 콜렉션 문서에서 join_date 필드가 제거됩니다.
|
열 / 필드를 추가하거나 삭제하여 스키마의 구조를 변경합니다.
MongoDB 아키텍처는 문서 구조에 대해 엄격하게 시행하지 않기 때문에 문서마다 필드가 다를 수 있습니다.
|
UserId 열을 오름차순으로 하여 내림차순으로 인덱스 만들기
1 2 | CREATE INDEX idx_UserId_asc_Age_desc
ON users(UserId)
|
|
UserId 및 Age 필드와 관련된 인덱스를 만듭니다.
1 | db.users.ensureIndex( { UserId: 1, Age: -1 } )
|
|
쿼리 프로세스를 용이하게 하기 위해 인덱스가 일반적으로 생성됩니다.
|
1 2 3 4 5 6 | INSERT INTO users(UserId,
Age,
Gender)
VALUES ( "user1" ,
25,
"M" )
|
|
1 2 3 4 5 6 | db.users.insert( {
UserId: "bcd001" ,
Age: 25,
Gender: "M" ,
Name: "Berry Hellington" ,
} )
|
|
새 레코드 삽입
|
1 2 | DELETE FROM users
WHERE Age = 25
|
|
1 | db.users.deleteMany( { Age = 25 } )
|
|
나이가 25 인 테이블 / 컬렉션에서 레코드 삭제
|
|
|
테이블 / 컬렉션에서 모든 레코드 삭제
|
|
|
모든 테이블 / 컬렉션이있는 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT id, Age, Gender FROM users
|
|
1 2 3 4 | db.users.find(
{ },
{ Age: 1, Gender: 1 }
)
|
|
연령, 성별 및 기본 키 열이 있는 사용자 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT Age, Gender FROM users
|
|
1 2 3 4 | db.users.find(
{ },
{ Age: 1, Gender: 1,_id: 0}
)
|
|
Age 및 Gender 열 / 필드가 있는 users 테이블 / 컬렉션의 모든 레코드를 반환합니다. 기본 키는 생략되었습니다.
|
1 | SELECT * FROM users WHERE Gender = “M”
|
|
1 | db.users.find({ Gender: "M" })
|
|
성별 값이 M으로 설정된 users 테이블 / 컬렉션에서 모든 레코드를 반환합니다.
|
1 | SELECT Gender FROM users WHERE Age = 25
|
|
1 | db.users.find({ Age: 25}, { _id: 0, Gender: 1})
|
|
성별 값만 있고 나이 값이 25 인 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT * FROM users WHERE Age = 25 AND Gender = ‘F’
|
|
1 | db.users.find({ Age: 25, Gender: "F" })
|
|
성별 값이 F로 설정되고 연령이 25 인 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT * FROM users WHERE Age != 25
|
|
1 | db.users.find({ Age:{$ne: 25}})
|
|
Age 값이 25가 아닌 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT * FROM users WHERE Age = 25 OR Gender = ‘F’
|
|
1 | db.users.find({$or:[{Age: 25, Gender: "F" }]})
|
|
성별 값이 F로 설정되거나 연령이 25 인 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT * FROM users WHERE Age > 25
|
|
1 | db.users.find({ Age:{$gt: 25}})
|
|
사용자 테이블 / 컬렉션에서 Age 값이 25보다 큰 모든 레코드를 반환합니다.
|
1 | SELECT * FROM users WHERE Age <= 25
|
|
1 | db.users.find({ Age:{$lte: 25}})
|
|
나이 값이 25 이하인 users 테이블 / 컬렉션의 모든 레코드를 반환합니다.
|
1 | SELECT Name FROM users WHERE Name like "He%"
|
|
1 2 3 | db.users.find(
{ Name: /He/ }
)
|
|
사용자 테이블 / 컬렉션에서 이름 값이 He lette 인 모든 레코드를 리턴합니다.
|
1 | SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id ASC
|
|
1 | db.users.find( { Gender: "F" } ).sort( { $natural: 1 } )
|
|
Gender 값이 F로 설정된 users 테이블 / 컬렉션에서 모든 레코드를 반환하고이 결과를 MySQL의 경우 id 열의 오름차순으로 정렬하고 Mongo의 경우에는 시간을 삽입합니다.
|
1 | SELECT * FROM users WHERE Gender = ‘F’ ORDER BY id DESC
|
|
1 | db.users.find( { Gender: "F" } ).sort( { $natural: -1 } )
|
|
Gender 값이 F로 설정된 users 테이블 / 컬렉션에서 모든 레코드를 반환하고 MySQL의 경우 id 열의 내림차순으로 정렬하고 Mong의 경우 시간을 삽입합니다.
|
1 | SELECT COUNT (*) FROM users
|
|
or
|
users 테이블 / collecti의 모든 레코드를 계산합니다.
|
1 | SELECT COUNT ( Name ) FROM users
|
|
1 | db.users.count({Name:{ $exists: true }})
|
or
1 | db.users.find({Name:{ $exists: true }}).count()
|
|
사용자 테이블 / 컬렉션에서 이름 prope에 대한 값을 갖는 모든 레코드를 계산합니다.
|
1 | SELECT * FROM users LIMIT 1
|
|
or
|
users 테이블 / coll의 첫 번째 레코드를 반환합니다
|
1 | SELECT * FROM users WHERE Gender = ‘F’ LIMIT 1
|
|
1 | db.users.find( { Gender: "F" } ).limit(1)
|
|
성별 값이 F 인 사용자 테이블 / 컬렉션의 첫 번째 레코드를 리턴합니다.
|
1 | SELECT * FROM users LIMIT 5 SKIP 10
|
|
1 | db.users.find().limit(5).skip(10)
|
|
처음 5 개 레코드를 건너 뛴 후 users 테이블 / 컬렉션의 5 개 레코드를 반환합니다.
|
1 | UPDATE users SET Age = 26 WHERE age > 25
|
|
1 2 3 4 | db.users.updateMany(
{ age: { $gt: 25 } },
{ $set: { Age: 26 } }
)
|
|
사용자 테이블 / 컬렉션에서 25 ~ 2 세 이상의 모든 레코드의 연령을 설정합니다.
|
1 | UPDATE users SET age = age + 1
|
|
1 2 3 4 | db.users.updateMany(
{} ,
{ $inc: { age: 1 } }
)
|
|
사용자 테이블 / 컬렉션에 있는 모든 레코드의 나이가 1 씩 증가합니다.
|
1 2 | UPDATE users SET age = age - 1
WHERE id = 1
|
|
1 2 3 4 | db.users.updateMany(
{} ,
{ $inc: { age: -1 } }
)
|
|
이는 users 테이블 / collectio에서 첫 번째 레코드의 나이를 줄입니다.
|