728x90
반응형

프로그래밍 언어/Database 67

SQL Server에서 INSERT INTO로 데이터 내보내기

질문 : SQL Server에서 INSERT INTO로 데이터 내보내기 SQL Server 2008 Management Studio를 사용하고 있으며 다른 DB 서버로 마이그레이션하려는 테이블이 있습니다. SQL 스크립트에 삽입으로 데이터를 내보내는 옵션이 있습니까 ?? 답변 개체 탐색기의 SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 "작업"을 선택한 다음 "스크립트 생성"을 선택합니다. 이렇게하면 단일 또는 모든 테이블에 대한 스크립트를 생성 할 수 있으며 옵션 중 하나는 "스크립트 데이터"입니다. TRUE로 설정하면 마법사가 데이터에 대한 INSERT INTO () 문을 사용하여 스크립트를 생성합니다. 2008 R2 또는 2012를 사용하는 경우 다른 이름으로 불립니다. 아래 스크린 샷을..

MySQL 오류 "Every derived table must have its own alias"

질문 : MySQL에서 "모든 파생 테이블에는 자체 별칭이 있어야합니다"라는 오류는 무엇입니까? 이 쿼리를 MySQL에서 실행하고 있습니다. SELECT ID FROM ( SELECT ID, msisdn FROM ( SELECT * FROM TT2 ) ); 이 오류가 발생합니다. 모든 파생 테이블에는 고유 한 별칭이 있어야합니다. 이 오류의 원인은 무엇입니까? 답변 모든 파생 테이블 (일명 하위 쿼리)에는 실제로 별칭이 있어야합니다. 즉, 대괄호로 묶인 각 쿼리에는 별칭 ( AS whatever )이 지정되어야하며, 나머지 외부 쿼리에서이를 참조하는 데 사용할 수 있습니다. SELECT ID FROM ( SELECT ID, msisdn FROM ( SELECT * FROM TT2 ) AS T ) AS T..

배열 크기가 1보다 큰 문서 쿼리

질문 : 배열 크기가 1보다 큰 문서 쿼리 다음 형식의 문서가 포함 된 MongoDB 컬렉션이 있습니다. { "_id" : ObjectId("4e8ae86d08101908e1000001"), "name" : ["Name"], "zipcode" : ["2223"] } { "_id" : ObjectId("4e8ae86d08101908e1000002"), "name" : ["Another ", "Name"], "zipcode" : ["2224"] } 현재 특정 배열 크기와 일치하는 문서를 가져올 수 있습니다. db.accommodations.find({ name : { $size : 2 }}) name 배열에 2 개의 요소가있는 문서를 올바르게 리턴합니다. $gt 명령을 사용하여 name 필드의 배열 크기가 ..

SQL Server의 DateTime2 vs DateTime

질문 : SQL Server의 DateTime2 대 DateTime 어느 것: datetime datetime2 SQL Server 2008+에서 날짜와 시간을 저장 하는 데 권장되는 방법은 무엇입니까? 정밀도 (그리고 아마도 저장 공간)의 차이를 알고 있지만 지금은이를 무시하고 언제 무엇을 사용해야하는지에 대한 모범 사례 문서가 있습니까? datetime2 답변 대한 MSDN 문서 날짜는 사용을 권장 DATETIME2를 . 권장 사항은 다음과 같습니다. time , date , datetime2 및 datetimeoffset 데이터 유형을 사용하십시오. 이러한 유형은 SQL 표준과 일치합니다. 휴대 성이 더 뛰어납니다. time , datetime2 및 datetimeoffset 은 더 많은 초 정밀도..

mysqldump에서 덤프 파일을 복원하는 방법

질문 : mysqldump에서 덤프 파일을 어떻게 복원합니까? Windows Server 2008 컴퓨터에서 데이터베이스로 복원해야하는 MySQL 데이터베이스 파일을 받았습니다. MySQL 관리자를 사용해 보았지만 다음 오류가 발생했습니다. 선택한 파일은 mysqldump에 의해 생성되었으며이 애플리케이션에서 복원 할 수 없습니다. 어떻게 작동합니까? 답변 다음을 실행하는 것만 큼 간단해야합니다. mysql -u -p < db_backup.dump 덤프가 단일 데이터베이스 인 경우 파일 맨 위에 다음 행을 추가해야 할 수 있습니다. USE ; 많은 데이터베이스의 덤프 였다면 use 문이 이미 거기에 있습니다. 이러한 명령을 운영하는 (윈도우에서) 프롬프트 명령 및 최대 열려면 cd 하여 디렉토리 mysq..

SQL 원하지 않는 칼럼을 제외하고 SELECT 하는 방법

질문 : SQL은 SELECT * [columnA 제외] FROM tableA를 사용하여 열을 제외합니까? 우리 모두는 테이블에서 모든 열을 선택하기 위해 SELECT * FROM tableA 모든 열을 지정하지 않고 테이블에서 열을 제외하는 방법이 있습니까? SELECT * [except columnA] FROM tableA 내가 아는 유일한 방법은 모든 열을 수동으로 지정하고 원하지 않는 열을 제외하는 것입니다. 이것은 정말로 시간이 많이 소요되므로 테이블에 열이 많거나 적을 경우 향후 유지 관리뿐만 아니라 이에 대한 시간과 노력을 절약 할 방법을 찾고 있습니다. 답변 이 방법으로 시도 할 수 있습니다. /* Get the data into a temp table */ SELECT * INTO #Te..

각 그룹의 상위 1 개 행 가져 오기

질문 : 각 그룹의 상위 1 개 행 가져 오기 각 그룹에 대한 최신 항목을 얻고 싶은 테이블이 있습니다. 표는 다음과 같습니다. DocumentStatusLogs 테이블 |ID| DocumentID | Status | DateCreated | | 2| 1 | S1 | 7/29/2011 | | 3| 1 | S2 | 7/30/2011 | | 6| 1 | S1 | 8/02/2011 | | 1| 2 | S1 | 7/28/2011 | | 4| 2 | S2 | 7/30/2011 | | 5| 2 | S3 | 8/01/2011 | | 6| 3 | S1 | 8/02/2011 | 테이블은 DocumentID DateCreated 별로 내림차순으로 정렬됩니다. 각 DocumentID 에 대해 최신 상태를 얻고 싶습니다. 내..

MySQL에서 특정 열 이름이 있는 모든 테이블을 찾는 방법

질문 : 특정 열 이름이있는 MySQL의 모든 테이블을 찾는 방법은 무엇입니까? 전체 DB에서 조회하고 싶은 열 이름이 2-3 개 있고 해당 열이있는 모든 테이블을 나열합니다. 쉬운 스크립트? 답변 YourDatabase columnA 또는 ColumnB 열이있는 모든 테이블을 가져 오려면 다음을 수행하십시오. SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase'; 출처 : https://stackoverflow.com/questions/193780/how-to-find-all-the-tables-in-mysql-with..

[Database] left, right, outer, inner join의 차이점

질문 : 왼쪽, 오른쪽, 외부 및 내부 조인의 차이점은 무엇입니까?이 모든 조인을 차별화하는 방법이 궁금합니다 ...답변간단한 예 Students 테이블과 Lockers 테이블이 있다고 가정 해 보겠습니다. SQL에서 조인에 지정하는 첫 번째 테이블 인 Students 는 LEFT 테이블이고 두 번째 테이블 인 Lockers 는 RIGHT 테이블입니다.각 학생은 로커에 할당 될 수 있으므로 Student LockerNumber 열이 있습니다. 한 명 이상의 학생이 잠재적으로 단일 사물함에있을 수 있지만, 특히 학년 초에는 사물함이없는 신입생과 배정 된 학생이없는 사물함이있을 수 있습니다.이 예를 위해 학생 100 명 중 70 명에 사물함이 있다고 가정 해 보겠습니다. 총 50 개의 사물함 이 있으며 그중..

특정 마이그레이션을 롤백하는 방법

질문 : 특정 마이그레이션을 롤백하는 방법은 무엇입니까? 다음 마이그레이션 파일 db\migrate\20100905201547_create_blocks.rb 마이그레이션 파일을 구체적으로 롤백하려면 어떻게해야합니까? 답변 rake db:rollback STEP=1 롤백하려는 마이그레이션이 마지막으로 적용된 경우이를 수행하는 방법입니다. 되돌리려는 마이그레이션 수를 1로 대체 할 수 있습니다. 예를 들면 : rake db:rollback STEP=5 또한 나중에 발생한 모든 마이그레이션 (4, 3, 2 및 1)도 롤백합니다. 모든 마이그레이션을 대상 마이그레이션으로 롤백하려면 다음을 사용하십시오. (이 수정 된 명령은 원본 게시물에서 오류를 지적한 모든 주석 후에 추가되었습니다) rake db:migrat..

MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여

질문 : MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여 예를 들어 'mydb'와 같은 데이터베이스를 만들었습니다. CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH'; GRANT ALL ON mydb.* TO 'myuser'@'%'; GRANT ALL ON mydb TO 'myuser'@'%'; GRANT CREATE ON mydb TO 'myuser'@'%'; FLUSH PRIVILEGES; 이제 어디서나 데이터베이스에 로그인 할 수 있지만 테이블을 만들 수는 없습니다. 해당 데이터베이스 및 (향후) 테이블에 대한 모든 권한을 부여하는 방..

Docker에서 영구 저장소 (예 : 데이터베이스)를 처리하는 방법

질문 : Docker에서 영구 저장소 (예 : 데이터베이스)를 처리하는 방법 사람들은 Docker 컨테이너의 영구 스토리지를 어떻게 처리합니까? 현재이 접근 방식을 사용하고 있습니다. 예를 들어 PostgreSQL 용 이미지를 빌드 한 다음 다음을 사용하여 컨테이너를 시작합니다. docker run --volumes-from c0dbc34fd631 -d app_name/postgres IMHO는 단점이 있는데, "c0dbc34fd631"컨테이너를 삭제해서는 안된다는 것입니다. 또 다른 아이디어는 컨테이너에 호스트 볼륨 "-v"를 장착하는 것입니다, 그러나, 컨테이너 내의 사용자 ID는 반드시 호스트에서 사용자 ID와 일치하지 않는 한 다음 사용 권한이 엉망이 될 수 있습니다. 참고 : --volumes-..

MySQL의 명령 줄을 사용하여 SQL 파일을 가져오는 방법

질문 : MySQL의 명령 줄을 사용하여 SQL 파일을 어떻게 가져 옵니까? phpMyAdmin 에서 내 보낸 .sql 파일이 있습니다. 명령 줄을 사용하여 다른 서버로 가져오고 싶습니다. Windows Server 2008 R2가 설치되어 있습니다. .sql 파일을 C 드라이브 에 배치하고이 명령을 시도했습니다. database_name < file.sql 그것은 작동하지 않습니다. 구문 오류가 발생합니다. 문제없이이 파일을 어떻게 가져올 수 있습니까? 먼저 데이터베이스를 만들어야합니까? 답변 시험: mysql -u username -p database_name < file.sql MySQL 옵션을 확인하십시오. 참고 -1 : file.sql 의 전체 경로를 사용하는 것이 좋습니다. 참고 -2 : 원래..

PostgreSQL 데이터베이스의 모든 테이블을 삭제하는 방법

질문 : PostgreSQL 데이터베이스의 모든 테이블을 삭제하려면 어떻게해야합니까? 명령 줄에서 작업하면서 PostgreSQL의 모든 테이블을 삭제하려면 어떻게해야합니까? 난 그냥 모든 테이블과 그 안에있는 모든 데이터, 데이터베이스 자체를 삭제하고 싶지 않아요. 답변 모든 테이블이 단일 스키마에있는 경우이 접근 방식이 작동 할 수 있습니다 (아래 코드에서는 스키마 이름이 public 이라고 가정합니다). DROP SCHEMA public CASCADE; CREATE SCHEMA public; PostgreSQL 9.3 이상을 사용하는 경우 기본 권한을 복원해야 할 수도 있습니다. GRANT ALL ON SCHEMA public TO postgres; GRANT ALL ON SCHEMA public T..

Ruby on Rails 데이터베이스 제거 또는 재생성

질문 : Ruby on Rails 데이터베이스 제거 또는 재생성 데이터로 가득 찬 dev Ruby on Rails 데이터베이스가 있습니다. 모든 것을 삭제하고 데이터베이스를 다시 만들고 싶습니다. 다음과 같은 것을 사용할 생각입니다. rake db:recreate 이것이 가능한가? 답변 이 작업을 수행하는 두 가지 방법을 알고 있습니다. 이렇게하면 데이터베이스가 재설정되고 현재 스키마가 모두 다시로드됩니다. rake db:reset db:migrate 그러면 db가 파괴되고 생성 된 다음 현재 스키마가 마이그레이션됩니다. rake db:drop db:create db:migrate 두 시나리오 모두에서 모든 데이터가 손실됩니다. 출처 : https://stackoverflow.com/questions/4..

PHP에서 SQL 공격(injection)을 방지하는 방법

질문 : PHP에서 SQL 주입을 어떻게 방지 할 수 있습니까? 사용자 입력이 SQL 쿼리에 수정없이 삽입되면 다음 예제와 같이 애플리케이션이 SQL 주입에 취약 해집니다. $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); 사용자가 값과 같은 것을 입력 할 수 있기 때문입니다 value'); DROP TABLE table;-- , 쿼리는 다음과 같습니다. INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--') 이를 방지하기 위해 무엇을 할 수 있습니까? 답변 준비된 문과 매개 변수..

MongoDB 데이터베이스의 이름을 변경하는 방법

질문 : MongoDB 데이터베이스의 이름을 어떻게 바꾸나요? 내 MongoDB 데이터베이스 이름에 오타가 있으며 데이터베이스 이름을 바꾸려고합니다. 이렇게 복사 하고 삭제할 수 있습니다. db.copyDatabase('old_name', 'new_name'); use old_name db.dropDatabase(); 데이터베이스 이름을 바꾸는 명령이 있습니까? 답변 아니에요. https://jira.mongodb.org/browse/SERVER-701 참조 불행히도 이것은 데이터베이스 메타 데이터가 원래 (기본) 스토리지 엔진에 저장되는 방식으로 인해 구현할 수있는 간단한 기능이 아닙니다. MMAPv1 파일에서 모든 단일 컬렉션 및 인덱스를 설명하는 네임 스페이스 (예 : dbName.collectio..

Sqlite3 데이터베이스에서 열 이름 목록을 얻는 방법

질문 : Sqlite3 데이터베이스에서 열 이름 목록을 얻는 방법은 무엇입니까? iPhone 앱을 새 데이터베이스 버전으로 마이그레이션하고 싶습니다. 저장된 버전이 없기 때문에 특정 열 이름이 있는지 확인해야합니다. 이 Stackoverflow 항목 은 선택을 제안합니다. SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table' 결과를 구문 분석하십시오. 그게 일반적인 방법인가요? 대안? 답변 PRAGMA table_info(table_name); 모든 열 이름 목록이 표시됩니다. 출처 : https://stackoverflow.com/questions/947215/how-to-get-a-list-of-column-nam..

관계형 데이터베이스에 계층 적 데이터를 저장하는 옵션

질문 : 관계형 데이터베이스에 계층 적 데이터를 저장하는 옵션은 무엇입니까? 좋은 개요 일반적으로 빠른 읽기 시간 (예 : 중첩 세트) 또는 빠른 쓰기 시간 (인접 목록) 중에서 결정을 내립니다. 일반적으로 필요에 가장 적합한 아래 옵션 조합으로 끝납니다. 다음은 몇 가지 심층 자료를 제공합니다. 하나 더 중첩 된 간격 대 인접 목록 비교 : 내가 찾은 인접 목록, 구체화 된 경로, 중첩 된 집합 및 중첩 된 간격 의 최상의 비교. 계층 적 데이터 모델 : 장단점 및 예제 사용에 대한 좋은 설명이 포함 된 슬라이드 MySQL의 계층 구조 표현 : 특히 Nested Set에 대한 매우 좋은 개요 RDBMS의 계층 적 데이터 : 내가 본 것 중 가장 포괄적이고 잘 구성된 링크 집합이지만 설명 방식은 그리 많..

SQLite의 초당 INSERT 성능 향상

질문 : SQLite의 초당 INSERT 성능 향상 SQLite를 최적화하는 것은 까다 롭습니다. C 애플리케이션의 대량 삽입 성능은 초당 85 개의 삽입에서 초당 96,000 개 이상의 삽입까지 다양합니다! 배경 : 우리는 데스크톱 애플리케이션의 일부로 SQLite를 사용하고 있습니다. 애플리케이션이 초기화 될 때 추가 처리를 위해 구문 분석되고 SQLite 데이터베이스에로드되는 XML 파일에 저장된 많은 양의 구성 데이터가 있습니다. SQLite는 빠르고 특별한 구성이 필요하지 않으며 데이터베이스가 단일 파일로 디스크에 저장되기 때문에 이러한 상황에 이상적입니다. 근거 : 처음에 나는 내가보고있는 성능에 실망했습니다. SQLite의 성능은 데이터베이스 구성 방법과 API 사용 방법에 따라 크게 다를 ..

PostgreSQL 데이터베이스로 SQL 덤프 가져 오기

질문 : PostgreSQL 데이터베이스로 SQL 덤프 가져 오기 우리는 호스트를 전환하고 있으며 이전 사이트는 사이트의 PostgreSQL 데이터베이스에 대한 SQL 덤프를 제공했습니다. 이제 이것을 테스트하기 위해 로컬 WAMP 서버에 설정하려고합니다. 유일한 문제는 내가 설정 한 PostgreSQL 9에서이 데이터베이스를 가져 오는 방법을 모른다는 것입니다. pgAdmin III를 시도했지만 '가져 오기'기능을 찾을 수 없습니다. 그래서 방금 SQL 편집기를 열고 덤프의 내용을 붙여넣고 실행하면 테이블이 생성되지만 데이터를 넣으려고 할 때 오류가 계속 발생합니다. ERROR: syntax error at or near "t" LINE 474: t 2011-05-24 16:45:01.768633 20..

데이터베이스와 함께 애플리케이션 전송 하는 방법

질문 : 데이터베이스와 함께 애플리케이션 전송 애플리케이션에 데이터베이스가 필요하고 내장 데이터와 함께 제공되는 경우 해당 애플리케이션을 제공하는 가장 좋은 방법은 무엇입니까? 내가해야합니까: SQLite 데이터베이스를 미리 만들고 .apk ? 응용 프로그램에 SQL 명령을 포함하고 데이터베이스를 만들고 처음 사용할 때 데이터를 삽입하도록 하시겠습니까? 내가 보는 단점은 다음과 같습니다. SQLite 버전 불일치로 인해 문제가 발생할 수 있으며 현재 데이터베이스가 어디로 가야하고 어떻게 액세스해야하는지 모르겠습니다. 장치에서 데이터베이스를 만들고 채우는 데 시간이 오래 걸릴 수 있습니다. 어떤 제안? 문제에 관한 문서에 대한 포인터는 대단히 감사하겠습니다. 답변 데이터베이스 생성 및 업데이트에는 두 가지..

데이터베이스를 사용할 때 주의할 점

질문 : 응용 프로그램 개발자의 데이터베이스 개발 실수 응용 프로그램 개발자가 저지르는 일반적인 데이터베이스 개발 실수는 무엇입니까? 답변 1. 적절한 지표를 사용하지 않음 이것은 비교적 쉬운 일이지만 여전히 항상 발생합니다. 외래 키에는 인덱스가 있어야합니다. WHERE 에서 필드를 사용하는 경우에는 (아마도) 인덱스가 있어야합니다. 이러한 인덱스는 실행해야하는 쿼리를 기반으로 여러 열을 포함해야하는 경우가 많습니다. 2. 참조 무결성을 적용하지 않음 데이터베이스는 여기에서 다를 수 있지만 데이터베이스가 참조 무결성을 지원하는 경우 (즉, 모든 외래 키가 존재하는 엔터티를 가리 키도록 보장됨)이를 사용해야합니다. MySQL 데이터베이스에서이 오류를 보는 것은 매우 일반적입니다. 나는 MyISAM이 그것..

SQL Server에서 LEFT JOIN vs LEFT OUTER JOIN

질문 : SQL Server에서 LEFT JOIN vs LEFT OUTER JOIN LEFT JOIN 과 LEFT OUTER JOIN 의 차이점은 무엇입니까? 답변 설명서에 따라 : FROM (Transact-SQL) : ::= [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ ] ] JOIN OUTER 키워드는 선택 사항으로 표시됩니다 (대괄호로 묶임). 이 특정 경우에 OUTER 지정 여부는 차이가 없습니다. 의 다른 요소 절에 가입하면서 또한 차이를 만들 것입니다 그들을 떠나, 옵션으로 표시되어 있습니다. 예를 들어, JOIN 절의 전체 유형 부분은 선택 사항입니다.이 경우 JOIN 지정하면 INNER 입니다. 즉, 이것은 합법적입니다. SELECT *..

SQLite 데이터베이스에 한 번에 여러 행을 삽입 하는 방법

질문 : SQLite 데이터베이스에 한 번에 여러 행을 삽입 할 수 있습니까? MySQL에서는 다음과 같이 여러 행을 삽입 할 수 있습니다. INSERT INTO 'tablename' ('column1', 'column2') VALUES ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'); 그러나 이와 같은 작업을 시도하면 오류가 발생합니다. SQLite 데이터베이스에 한 번에 여러 행을 삽입 할 수 있습니까? 이를 수행하는 구문은 무엇입니까? 답변 BrianCampbell이 여기 에서 지적했듯이 SQLite 3.7.11 이상은 이제 원본 게시물의 더 간단한 구문을 지원합니다 . 그러나 표시된 접근 방식은 레거시 데..

728x90
반응형