728x90
반응형

프로그래밍 언어/Database 67

MySQL 데이터베이스의 테이블 크기를 얻는 방법

질문 : MySQL 데이터베이스의 테이블 크기를 얻는 방법은 무엇입니까? 이 쿼리를 실행하여 MySQL 데이터베이스에있는 모든 테이블의 크기를 가져올 수 있습니다. show table status from myDatabaseName; 결과를 이해하는 데 도움이 필요합니다. 크기가 가장 큰 테이블을 찾고 있습니다. 어떤 열을 봐야합니까? 답변 이 쿼리를 사용하여 테이블의 크기를 표시 할 수 있습니다 (먼저 변수를 대체해야 함). SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "$DB_NA..

psql : 치명적 : 데이터베이스“<user> " 존재하지 않는다

질문 : psql : 치명적 : 데이터베이스“ " 존재하지 않는다 Mac 용 PostgreSql 앱 ( http://postgresapp.com/ )을 사용하고 있습니다. 이전에 다른 컴퓨터에서 사용했지만 Macbook에 설치할 때 문제가 발생합니다. 응용 프로그램을 설치했고 다음을 실행했습니다. psql -h localhost 다음을 반환합니다. psql: FATAL: database "" does not exist 찾기를 시도하는 데이터베이스를 만들기 위해 콘솔을 실행할 수도없는 것 같습니다. 방금 실행할 때도 똑같은 일이 발생합니다. psql 또는 애플리케이션 드롭 다운 메뉴에서 psql을 실행하는 경우 : 기계 통계 : OSX 10.8.4 psql (PostgreSQL) 9.2.4 도움을 주시면 ..

SQL Server에서 INNER JOIN을 사용하여 삭제하는 방법

질문 : SQL Server에서 INNER JOIN을 사용하여 삭제하려면 어떻게해야합니까? SQL Server 2008 에서 INNER JOIN 을 사용하여 삭제하고 싶습니다. 하지만 이 오류가 발생합니다. 메시지 156, 수준 15, 상태 1, 줄 15 키워드 'INNER'근처에 잘못된 구문이 있습니다. 내 코드 : DELETE FROM WorkRecord2 INNER JOIN Employee ON EmployeeRun=EmployeeNo WHERE Company = '1' AND Date = '2013-05-06' 답변 삭제할 테이블을 지정해야합니다. 다음은 별칭이있는 버전입니다. DELETE w FROM WorkRecord2 w INNER JOIN Employee e ON EmployeeRun=Em..

PostgreSQL 명령 줄 유틸리티를 종료하는 방법 : psql

질문 : PostgreSQL 명령 줄 유틸리티를 종료하는 방법 : psqlpsql 을 종료하는 데 사용할 수있는 명령 또는 단축 키는 무엇입니까?답변\q 를 입력 한 다음 ENTER 를 눌러 psql 을 종료합니다.업데이트 : 2018 년 10 월 19 일PostgreSQL 11 부터는 PostgreSQL 명령 줄 인터페이스에 " quit "및 " exit "키워드가 포함되어 명령 줄 도구를 쉽게 종료 할 수 있습니다.출처 : https://stackoverflow.com/questions/9463318/how-to-exit-from-postgresql-command-line-utility-psql

MongoDB 또는 기타 문서 지향 데이터베이스 시스템의 사용시기

질문 : MongoDB 또는 기타 문서 지향 데이터베이스 시스템을 언제 사용해야합니까? 비디오 및 오디오 클립, 사진 및 벡터 그래픽을위한 플랫폼을 제공합니다. 우리는 MySQL을 데이터베이스 백엔드로 시작했고 최근에는 MongoDB 가 요구 사항에 더 적합하기 때문에 파일의 모든 메타 정보를 저장하기 위해 MongoDB를 포함했습니다. 예를 들어, 사진에는 Exif 정보가있을 수 있고 비디오에는 메타 정보를 저장하려는 오디오 트랙도있을 수 있습니다. 비디오와 벡터 그래픽은 일반적인 메타 정보 등을 공유하지 않으므로 MongoDB가이 구조화되지 않은 데이터를 저장하고 검색 가능하게 유지하는 데 완벽하다는 것을 알고 있습니다. 그러나 우리는 플랫폼을 계속 개발하고 기능을 추가합니다. 이제 다음 단계 중 하..

MySQL 데이터베이스의 이름을 손쉽게 바꾸는 방법

질문 : MySQL 데이터베이스의 이름을 빠르게 바꾸려면 어떻게합니까 (스키마 이름 변경) 에서 MySQL의 매뉴얼 MySQL은 이를 다루고 있습니다. 일반적으로 데이터베이스를 덤프하고 새 이름으로 다시 가져옵니다. 이것은 매우 큰 데이터베이스에 대한 옵션이 아닙니다. RENAME {DATABASE | SCHEMA} db_name TO new_db_name; 나쁜 일을하고 소수의 버전에만 존재하며 전반적으로 나쁜 생각입니다 . 이것은 MyISAM 과는 매우 다른 것을 저장 하는 InnoDB 와 함께 작동해야합니다. 답변 InnoDB 의 경우 다음이 작동하는 것 같습니다. 새 빈 데이터베이스를 만든 다음 각 테이블의 이름을 차례로 새 데이터베이스로 바꿉니다. RENAME TABLE old_db.table ..

지정된 이름의 열을 포함하는 모든 테이블 찾기-MS SQL Server

질문 : 지정된 이름의 열을 포함하는 모든 테이블 찾기-MS SQL Server 열을 포함하는 테이블 이름을 쿼리 할 수 있습니까? LIKE '%myName%' 답변 검색 테이블 : SELECT c.name AS 'ColumnName' ,t.name AS 'TableName' FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id WHERE c.name LIKE '%MyName%' ORDER BY TableName ,ColumnName; 테이블 및보기 검색 : SELECT COLUMN_NAME AS 'ColumnName' ,TABLE_NAME AS 'TableName' FROM INFORMATION_SCHEMA.COLUMNS WHERE COL..

SQL은 열에 최대 값이있는 행만 선택합니다

질문 : SQL은 열에 최대 값이있는 행만 선택합니다 [중복] 문서 용 테이블이 있습니다 (여기에 단순화 된 버전). +------+-------+--------------------------------------+ | id | rev | content | +------+-------+--------------------------------------+ | 1 | 1 | ... | | 2 | 1 | ... | | 1 | 2 | ... | | 1 | 3 | ... | +------+-------+--------------------------------------+ ID 당 하나의 행과 가장 큰 수익 만 선택하려면 어떻게해야합니까? 위의 데이터를 사용하면 결과에 [1, 3, ...] 및 [2, 1, ...

데이터베이스 필드의 표준 길이 목록

질문 : 데이터베이스 필드의 표준 길이 목록 저는 데이터베이스 테이블을 디자인하고 있으며 다시 한 번 같은 어리석은 질문을 합니다. 이름 필드는 얼마나 길어야합니까? 이름, 성, 이메일 주소와 같은 가장 일반적인 필드에 대한 합리적인 길이의 목록이있는 사람이 있습니까? 답변 W3C의 권장 사항 : 다양한 배경을 가진 사람들의 이름을 받아들이는 양식이나 데이터베이스를 디자인하는 경우 이름과성에 대해 별도의 필드가 필요한지 자문해야합니다. … 일부 문화권의 이름은 자신의 이름보다 훨씬 길 수 있음을 명심하십시오. … 데이터베이스의 이름에 대한 필드 크기를 제한하지 마십시오 . 특히 UTF-8의 4 자 일본어 이름이 4 바이트에 맞을 것이라고 가정하지 마십시오. 실제로 12자가 필요할 것입니다. https:/..

MySQL에서 AUTO_INCREMENT를 재설정하는 방법

질문 : MySQL에서 AUTO_INCREMENT를 재설정하는 방법은 무엇입니까? 필드의 AUTO_INCREMENT 를 어떻게 재설정 할 수 있습니까? 다시 1 부터 세기를 시작하고 싶습니다. 답변 다음을 사용하여 카운터를 재설정 할 수 있습니다. ALTER TABLE tablename AUTO_INCREMENT = 1 InnoDB의 경우 auto_increment 값을 현재 가장 높은 인덱스보다 낮거나 같게 설정할 수 없습니다. ( ViralPatel의 인용문) : 카운터를 이미 사용 된 값보다 작거나 같은 값으로 재설정 할 수 없습니다. MyISAM의 경우 값이 현재 AUTO_INCREMENT 열에있는 최대 값보다 작거나 같으면 값은 현재 최대 값에 1을 더한 값으로 재설정됩니다. InnoDB의 경우..

PostgreSQL : PostgreSQL에서 테이블 표시

질문 : PostgreSQL : PostgreSQL에서 테이블 표시PostgreSQL에서 MySQL의 show tables 을 표시하는 것과 동일한 것은 무엇입니까?답변psql 명령 줄 인터페이스에서먼저 데이터베이스를 선택하십시오.\c database_name 그러면 현재 스키마의 모든 테이블이 표시됩니다.\dt 프로그래밍 방식으로 (또는 psql 인터페이스에서도) :SELECT * FROM pg_catalog.pg_tables; 시스템 테이블은 pg_catalog 데이터베이스에 있습니다.출처 : https://stackoverflow.com/questions/769683/postgresql-show-tables-in-postgresql

데이터베이스에 암호를 저장하는 가장 좋은 방법

질문 : 데이터베이스에 암호를 저장하는 가장 좋은 방법 인증 (사용자 이름 및 비밀번호)이 필요한 프로젝트를 진행 중입니다.또한 데이터베이스에 연결되므로 사용자 이름과 비밀번호를 거기에 저장할 것이라고 생각했습니다. 그러나 데이터베이스에있는 테이블의 텍스트 필드처럼 암호를 갖는 것은 좋은 생각이 아닌 것 같습니다.C #을 사용하고 있으며 2008 Express 서버에 연결하고 있습니다. 누구든지 이러한 유형의 데이터를 저장하는 가장 좋은 방법이 무엇인지 (가능한 한 많은 예제와 함께) 제안 할 수 있습니까?추신 : 좋은 이유를 제공 할 수 있다면이 정보가 데이터베이스에 저장되지 않는다는 생각에 열려 있습니다. 답변 일반 텍스트 필드에 암호를 저장하는 것은 끔찍한 생각이라는 것이 맞습니다. 그러나 위치에 ..

활성 연결이있는 경우 PostgreSQL 데이터베이스를 삭제하는 방법

질문 : 활성 연결이있는 경우 PostgreSQL 데이터베이스를 삭제하는 방법은 무엇입니까? PostgreSQL 데이터베이스를 삭제하는 스크립트를 작성해야합니다. 많은 연결이있을 수 있지만 스크립트는이를 무시해야합니다. 표준 DROP DATABASE db_name 쿼리는 열린 연결이있는 경우 작동하지 않습니다. 문제를 어떻게 해결할 수 있습니까? 답변 다음을 제외한 기존 연결이 삭제됩니다. pg_stat_activity 쿼리하고 죽이려는 pid 값을 SELECT pg_terminate_backend(pid int) 를 실행합니다. PostgreSQL 9.2 이상 : SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE ..

SQL Server의 SELECT로 테이블을 업데이트 하는 방법

질문 : SQL Server의 SELECT에서 어떻게 업데이트합니까? SQL Server 에서는 INSERT.. SELECT 문을 사용하여 테이블에 행을 삽입 할 수 있습니다. INSERT INTO Table (col1, col2, col3) SELECT col1, col2, col3 FROM other_table WHERE sql = 'cool' SELECT 로 테이블 을 업데이트 할 수도 있습니까? 값이 포함 된 임시 테이블이 있으며 해당 값을 사용하여 다른 테이블을 업데이트하고 싶습니다. 아마도 다음과 같습니다. UPDATE Table SET col1, col2 SELECT col1, col2 FROM other_table WHERE sql = 'cool' WHERE Table.id = other_..

MySQL에서 datetime 또는 timestamp 데이터 유형을 사용하는 이유

질문 : MySQL에서 datetime 또는 timestamp 데이터 유형을 사용해야합니까?datetime 또는 timestamp 필드를 사용하는 것이 좋으며 그 이유 (MySQL 사용)를 권장합니까?저는 서버 측에서 PHP로 작업하고 있습니다.답변MySQL의 타임 스탬프는 일반적으로 레코드 변경 사항을 추적하는 데 사용되며 레코드가 변경 될 때마다 업데이트되는 경우가 많습니다. 특정 값을 저장하려면 datetime 필드를 사용해야합니다.UNIX 타임 스탬프 또는 기본 MySQL datetime 필드 사용 중에서 결정하려는 경우 기본 형식을 사용하십시오. MySQL 내에서 이러한 방식으로 계산을 수행 할 수 있으며 ("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)") 레..

전체 MySQL 데이터베이스 문자 집합 및 데이터 정렬을 UTF-8로 변환하는 방법

질문 : 전체 MySQL 데이터베이스 문자 집합 및 데이터 정렬을 UTF-8로 변환하는 방법은 무엇입니까? 전체 MySQL 데이터베이스 문자 집합을 UTF-8로, 데이터 정렬을 UTF-8로 어떻게 변환 할 수 있습니까? 답변 ALTER DATABASE 및 ALTER TABLE 명령을 사용하십시오. ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 또는 4 바이트 UTF-8을 지원하지 않는 MySQL 5.5.2 또는 이전 버전을 사용하는 경우 utf8mb4 utf8 사용합..

MySQL 데이터베이스 관리 시스템 (DBMS)의 현재 버전을 검색하는 방법

질문 : MySQL 데이터베이스 관리 시스템 (DBMS)의 현재 버전을 검색하는 방법은 무엇입니까? MySQL 데이터베이스의 현재 버전을 반환하는 명령은 무엇입니까? 답변 mysql --version 을 사용하도록 제안합니다. 그러나 mysql 프로그램은 클라이언트입니다. 서버는 mysqld 입니다. 따라서 명령은 mysqld --version 또는 mysqld --help 그것은 데비안과 Windows에서 나를 위해 작동합니다. 클라이언트로 MySQL 서버에 연결하면 다음을 사용할 수 있습니다. select version() 또는 select @@version 출처 : https://stackoverflow.com/questions/8987679/how-to-retrieve-the-current-ver..

PostgreSQL에서 데이터베이스 복사본 생성

질문 : PostgreSQL에서 데이터베이스 복사본 생성전체 데이터베이스 (구조 및 데이터)를 pgAdmin의 새 데이터베이스에 복사하는 올바른 방법은 무엇입니까?답변Postgres를 사용하면 새 데이터베이스를 만들 때 서버의 기존 데이터베이스를 템플릿으로 사용할 수 있습니다. pgAdmin이 데이터베이스 생성 대화 상자에서 옵션을 제공하는지 확실하지 않지만 그렇지 않은 경우 쿼리 창에서 다음을 실행할 수 있어야합니다.CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser; 그래도 다음을 얻을 수 있습니다.ERROR: source database "originaldb" is being accessed by other users 데이터베이스에서 다른 모든..

SQL Server에서 여러 행의 텍스트를 단일 텍스트 문자열로 연결하는 방법

질문 : SQL Server에서 여러 행의 텍스트를 단일 텍스트 문자열로 연결하는 방법은 무엇입니까? 세 개의 행이있는 이름을 보유하는 데이터베이스 테이블을 고려하십시오. Peter Paul Mary Peter, Paul, Mary 의 단일 문자열로 바꾸는 쉬운 방법이 있습니까? 답변 SQL Server 2017 또는 Azure를 사용하는 경우 Mathieu Renda 답변을 참조하세요. 일대 다 관계로 두 테이블을 조인하려고 할 때 비슷한 문제가 발생했습니다. XML PATH 메서드가 행의 연결을 매우 쉽게 처리 할 수 있음을 발견했습니다. STUDENTS 라는 테이블이있는 경우 SubjectID StudentName ---------- ------------- 1 Mary 1 John 1 Sam 2 ..

데이터베이스, 테이블 및 열 명명 규칙?

질문 : 데이터베이스, 테이블 및 열 명명 규칙? 데이터베이스를 디자인 할 때마다 데이터베이스에 항목 이름을 지정하는 가장 좋은 방법이 있는지 항상 궁금합니다. 나는 자주 다음과 같은 질문을합니다. 데이터베이스의 항목 이름 지정에 대한 권장 지침이 있습니까? 답변 Microsoft의 SQL Server 샘플 데이터베이스를 확인하는 것이 좋습니다. https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks AdventureWorks 샘플은 데이터베이스 개체 구성에 스키마 이름을 사용하는 매우 명확하고 일관된 명명 규칙을 사용합니다. 출처 : https://stackoverflow.com/questions/7662/database-..

ATTACH로 열린 SQLite 데이터베이스 파일의 테이블을 나열하는 방법

질문 : ATTACH로 열린 SQLite 데이터베이스 파일의 테이블을 나열하는 방법은 무엇입니까? SQLite 데이터베이스 파일에서 테이블 및 해당 테이블 내의 행을 나열하는 데 사용할 수있는 SQL 은 무엇입니까 ? SQLite 3 명령 줄 도구 ATTACH 명령을 사용하여 연결하면? 답변 .tables 및 .schema "helper"함수는 ATTACH 된 데이터베이스를 조사하지 않고 "main"데이터베이스에 대해 SQLITE_MASTER 결과적으로 ATTACH some_file.db AS my_db; 그럼 당신은해야 SELECT name FROM my_db.sqlite_master WHERE type='table'; .tables 와 함께 표시되지 않습니다 sqlite_temp_master 위해 s..

SQL Server의 기존 테이블에 기본값이있는 열 추가

질문 : SQL Server의 기존 테이블에 기본값이있는 열 추가SQL Server 2000 / SQL Server 2005 의 기존 테이블에 기본값이있는 열을 어떻게 추가 할 수 있습니까?답변ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} WITH VALUES ALTER TABLE SomeTable ADD SomeCol Bit NULL --Or NOT NULL. CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated. DEFAULT (0)--..

SQL SELECT에서 IF… THEN을 수행하는 원리

질문 : SQL SELECT에서 IF… THEN을 어떻게 수행합니까? SQL SELECT 문에서 IF...THEN 을 어떻게 수행합니까? 예를 들면 : SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product 답변 CASE 문은 SQL의 IF에 가장 가깝고 모든 버전의 SQL Server에서 지원됩니다. SELECT CAST( CASE WHEN Obsolete = 'N' or InStock = 'Y' THEN 1 ELSE 0 END AS bit) as Saleable, * FROM Product 결과를 부울 값으로 원하는 경우 CAST 를 수행하면됩니다. int 만족하면 다음과 같이 작동합니다. SELECT CASE WH..

728x90
반응형