본문 바로가기

Database22

[SQLite] 명령어 정리 데이터베이스 파일 위치 sqlite> .database 테이블 목록 sqlite> .tables 테이블 스키마 sqlite> .schema 출력 포맷 변경 sqlite> .mode list sqlite> .mode table sqlite> .mode column sqlite> .mode line ... 종료 sqlite> .exit 나가기 sqlite> .quit 명령어 설명 sqlite> .help mode 2023. 10. 30.
[PostgreSQL] ALTER TABLE RENAME COLUMN IF EXISTS PostgreSQL에서 존재할 경우에 실행하기 위해 IF EXISTS를 사용하는데 RENAME COLUMN에 경우 IF EXISTS를 지원하지 않는다. 그래서 DO문법을 활용해서 비슷하게 동작하게 만들 수 있습니다. DO $$ BEGIN IF EXISTS(SELECT * FROM information_schema.columns WHERE table_name='테이블명' and column_name='존재 체크할 컬럼명') THEN ALTER TABLE "public"."테이블명" RENAME COLUMN "존재 체크할 컬럼명" TO "변경할 컬럼명"; END IF; END $$; References [postgresql tutorial]: https://www.postgresqltutorial.com/p.. 2023. 9. 4.
[PostgreSQL] 시퀀스 초기화 시퀀스 초기화 setval SELECT setval('table_seq', 1); -- nextval(table_seq') = 2 SELECT setval('table_seq', 1, true); -- nextval(table_seq') = 2 SELECT setval('table_seq', 1, false); -- nextval(table_seq') = 1 첫번째 인자 (필수) : 적용 할 시퀀스 이름 두번째 인자 (필수) : 적용 할 시퀀스 값 세번째 인자 (옵션) : 시퀀스 값 포함 여부 ( 기본값: true ) References [PostgreSQL docs]: https://www.postgresql.org/docs/current/functions-sequence.html 9.17. Seque.. 2023. 8. 11.
[PostgreSQL] Update Multiple Columns From Select Sub Query members, users, user_infos 이렇게 3개 테이블이 있다라고 가정을 하겠습니다. users에 있는 컬럼값과 user_infos에 있는 컬럼값을 members에 update를 하고 싶을 때 아래와 같이 사용할 수 있습니다. UPDATE members AS m SET phone = temp_users.phone, address = temp_users.address, mname = temp_users.uname FROM ( SELECT u.name, ui.address ui.phone FROM users u LEFT JOIN user_infos ui ON ui.user_id = u.id ) AS temp_users WHERE m.user_id = temp_users.id; 2023. 6. 28.
[SQLite] Ubuntu 20 SQLite3 설치 및 간단한 사용법 sudo apt-get update sudo apt-get sqlite3 결과 Show Tables 전체 테이블을 보는 명령어입니다. .tables SELECT 다른 SQL문과 동일합니다. SELECT * FROM Exit SQLite3 터미널 종료 명령어입니다. .exit 참조 [SQLite Tutorial]: https://www.sqlitetutorial.net/sqlite-show-tables/ SQLite Show Tables: Listing All Tables in a Database In this tutorial, you will learn various ways to show tables from an SQLite database by using sqlite command or by que.. 2023. 6. 14.
[MySQL] 데이터베이스 및 유저 생성, 권한 설정 MySQL 루트 접속 mysql -u root 결과 데이터베이스 생성 캐릭터 셋 UTF8로 데이터베이스를 생성합니다. CREATE DATABASE [데이터베이스명] default CHARACTER SET UTF8; 결과 데이터베이스 생성확인 SHOW DATABASES; 결과 유저 생성 CREATE USER '유저명'@'호스트' IDENTIFIED BY '비밀번호'; * 호스트: '%' 입력시 모두 접근가능, 'localhost' 현재 서버만 접근 가능 결과 유저 권한설정 GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '유저명'@'호스트'; 결과 권한 반영 FLUSH PRIVILEGES; 결과 유저 생성확인 use mysql; select user, host from user; 결과 2023. 6. 7.
[PostgreSQL] 현재 시퀀스 마지막 값 조회하기 SELECT pg_sequence_last_value('스키마명.시퀀스명'); 예시 SELECT pg_sequence_last_value('public.users_id_seq'); 2023. 6. 5.
[PostgreSQL] Update Multiple Columns From Select members라는 테이블과 users라는 테이블이 이렇게 2개 있다라고 가정을 하겠습니다. users에 있는 컬럼값을 members에 update를 하고 싶을 때 아래와 같이 사용할 수 있습니다. UPDATE members AS m SET phone = u.phone, address = u.address, mname = u.uname FROM users AS u WHERE m.user_id = u.id; 2023. 5. 9.
[PostgreSQL] 가장 최근 날짜, 점수별 건수, 점수 평균 구하기 예시 테이블 구조 ( 테이블명: scores ) 학생이름 (컬럼명: student_name / 타입: varchar) 점수 (컬럼명: score / 타입: smallint) 거래일자 (컬럼명: exam_date / 타입: date) 홍길동 90 2023-04-28 최근날짜 기준 1~50 건수, 50 ~ 100 건수, 점수 평균 WITH count_scores AS ( SELECT COUNT(CASE WHEN score > 1 AND total_score 50 AND total_score 2023. 5. 3.
[PostgreSQL] 다중 컬럼 평균 구하기 (Average Multiple Columns) 특정 일자까지 건수를 구한 다음 평균을 구해야하는 경우가 있었습니다. 예시 테이블 구조 ( 테이블명: trades ) 거래금액 (컬럼명:amount / 타입: bigint) 거래일자 (컬럼명: trade_date / 타입: date) 10,000 2023-04-28 * 해당 예시 테이블은 실제 운영하는 서비스와 전혀 상관없는 참고용 예시 테이블입니다. 특정기간 특정금액 구간 건수 SELECT (SELECT COUNT(*) FROM trades WHERE amount > 0 AND amount = '2022-04-28' AND trade_date 1000 AND amount = '2022-04-28' AND trade_date 2000 AND amount = '2022-04-28' AND trade_dat.. 2023. 4. 28.
[PostgreSQL] DATE_TRUNC 활용 (연간, 월간, 주간 / 합산, 평균) DATE_TRUNC 지정된 날짜 기준으로 값을 자르고 타임스탬프(timestamp) 또는 간격(interval)을 반환하는 함수입니다. 예제 여기에 아래와 같은 금액 테이블(amounts)이 있다고 가정하시고 보시면 되겠습니다. 날짜 (컬럼명: trade_date / 타입:date) 금액 (컬럼명: amount / 타입:bigint) 2023-04-26 100,000 연간 합산 평균 SELECT date_trunc( 'year', trade_date), sum(amount), avg(amount) FROM amounts GROUP BY date_trunc( 'year', trade_date) 월간 합산 평균 SELECT date_trunc( 'month', trade_date), sum(amount), .. 2023. 4. 26.
[PostgreSQL] COALESCE null to 0 사용방법 SELECT COALESCE(column, 0); 예제 SELECT COALESCE(null, 0); -- 0 [PostgrSQL Tutorial COALESCE]: https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-coalesce/ PostgreSQL COALESCE Summary: in this tutorial, you will learn about the PostgreSQL COALESCE function that returns the first non-null argument. You will learn how to apply this function in SELECT statement to handle null valu.. 2023. 4. 24.