본문 바로가기

Database14

[Oracle] CONNECT BY LEVEL - 연속된 숫자 조회, 순번 생성 CONNECT BY LEVEL 계층형 쿼리 'CONNECT BY LEVEL'을 활용한 예제를 살펴보자. 예시 - 순번 생성 계층형 쿼리를 사용하면 순번을 가진 테이블을 생성할 수 있다. 또한, 이 쿼리를 활용하면 반복문을 사용하지 않고도 순번을 생성해서 채번을 진행할 수 있다. 예를 들어, ID를 '056932'부터 2000개의 ID를 순차적으로 기입해서 데이터를 삽입해야 한다면 어떻게 해야할까? 무식하게 2000개의 ID를 하나씩 넣어서 진행할 수도 있지만 매우 비효율적이다. 이때 'CONNECT BY LEVEL'을 사용하면 보다 쉽게 순번을 만들어서 데이터를 삽입할 수 있다. 아래는 ID를 '056932'부터 2000개의 ID를 순차적으로 생성해서 조회하는 쿼리문이다. SELECT LPAD(LEVEL.. 2023. 1. 19.
[MySQL] 데이터를 검색하는 SELECT 명령어의 응용 및 예제 정리(4) - 합집합, 교집합, 차집합 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 2개 이상의 테이블 데이터를 하나로 통합하는 집합 연산(합집합, 교집합, 차집합)에 대해서 알아보겠습니다. 예제에 사용되는 테이블 소개 mysql> SELECT * FROM student; +--------+---------+-------------+--------+------------+---------------+ | stdnum | stdname | major | sex | birthdate | phonenum | +--------+---------+-------------+--------+------------+---------------+ |.. 2021. 10. 2.
[MySQL] ERROR 1822 (HY000): Failed to add the foreign key constraint - 외래키 제약조건의 삭제 & 추가를 통한 외래키 변경 방법 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 외래키 제약조건을 설정해주거나 외래키 설정을 바꿔줄 때 발생하는 오류를 해결하는 방법에 대해서 알아보겠습니다. 제거할 제약조건의 이름 확인 # 테이블명이 student인 테이블의 제약조건 목록을 확인 mysql> SELECT * FROM information_schema.table_constraints WHERE table_name='student'; +--------------------+-------------------+-----------------+--------------+------------+-----------------+-------.. 2021. 10. 2.
[MySQL] 데이터를 검색하는 SELECT 명령어의 응용 및 예제 정리(3) - IN, NOT IN, EXISTS, NOT EXISTS 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 서브쿼리에 값이 존재하는지(존재하지 않는지) 판별하는데 사용되는 'IN', 'NOT IN', 'EXISTS', 'NOT EXISTS'에 대해서 알아보겠습니다. 예제에 사용되는 테이블 소개 mysql> SELECT * FROM student; +--------+---------+-------------+--------+------------+---------------+ | stdnum | stdname | major | sex | birthdate | phonenum | +--------+---------+-------------+--------+--.. 2021. 9. 30.
[MySQL] 데이터를 검색하는 SELECT 명령어의 응용 및 예제 정리(2) - LIKE 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 대표 문자를 이용하여 지정된 속성의 값이 패턴과 일치하는 데이터를 검색하는 'LIKE'에 대해서 알아보겠습니다. LIKE - 지정된 속성의 값이 대표 문자의 패턴과 일치하는 데이터를 검색 # student 테이블의 전체 속성에 대해서 sex 값이 'F'로 시작하는 데이터를 모두 검색 mysql> SELECT * FROM student WHERE sex LIKE 'F%'; +--------+---------+-------------+--------+------------+---------------+ | stdnum | stdname | major | .. 2021. 9. 30.
[MySQL] 데이터를 검색하는 SELECT 명령어의 응용 및 예제 정리(1) - ORDER BY 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 데이터를 검색할 때 지정된 속성으로 데이터를 정렬하는 'ORDER BY'에 대해서 알아보겠습니다. ORDER BY - 지정된 속성으로 데이터를 정렬하여 검색 # student 테이블의 전체 속성에 대해서 stdname을 기준으로 오름차순으로 정렬시킨 데이터를 검색 mysql> SELECT * FROM student ORDER BY stdname [ASC]; +--------+---------+-------------+--------+------------+---------------+ | stdnum | stdname | major | sex | bi.. 2021. 9. 30.
[MySQL] 데이터를 검색, 삽입, 삭제, 갱신하는 명령어 모음 및 예제 정리 - SELECT, INSERT, DELETE, UPDATE 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 테이블 안에 저장된 데이터를 삽입, 갱신, 삭제하는 DML(Data Manipulation Language) 명령어에 대해서 알아보겠습니다. SELECT - 테이블 안에 저장된 데이터(튜플)를 검색 # student 테이블의 전체 속성에 대해서 존재하는 모든 데이터를 검색 mysql> SELECT * FROM student; mysql> SELECT student.* FROM student; mysql> SELECT stdnum, stdname, major, sex, birthdate, phonenum FROM student; mysql> SELECT.. 2021. 9. 29.
[MySQL] 사용자 권한을 부여, 조회, 취소하는 명령어 모음 및 예제 정리 - GRANT, SHOW, REVOKE 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 데이터베이스의 사용자에게 권한을 부여하고 취소하는 명령어인 DCL(Data Control Language)에 대해서 알아보도록 하겠습니다. GRANT - 데이터베이스 사용자에게 권한 부여 # test@localhost 계정에 모든 권한 부여 mysql> GRANT ALL [PRIVILEGES] ON user TO test@localhost; Query OK, 0 rows affected (0.01 sec) # test1@localhost 계정에 SELECT, INSERT, UPDATE, DELETE, ALTER 권한 부여 mysql> GRANT SEL.. 2021. 9. 28.
[MySQL] 사용자 계정을 생성, 삭제 및 계정 목록을 확인하는 명령어 및 예제 정리 - CREATE USER, DROP USER 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 이번 게시물에서는 root 계정 외에 별도의 사용자 계정을 생성하고 삭제하는 명령어를 알아보도록 하겠습니다. 사용자 계정 목록 확인 mysql> USE mysql; Database changed mysql> SELECT host, user, authentication_string FROM user; +-----------+------------------+------------------------------------------------------------------------+ | host | user | authentication_string | +------.. 2021. 9. 27.
[MySQL] 인덱스를 생성, 조회, 삭제하는 명령어 및 예제 정리 - CREATE INDEX, ADD INDEX, SHOW INDEX, DROP INDEX 들어가기에 앞서 본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다. 인덱스는 데이터베이스(스키마), 뷰와 마찬가지로 변경이 불가능하므로 생성, 조회, 삭제하는 명령어만 알아놓도록 합니다. CREATE INDEX - 인덱스 생성 및 정의 # student 테이블의 stdname 속성을 오름차순으로 정렬하는 name_idx 인덱스를 생성하고 UNIQUE 특성을 부여함 mysql> CREATE [UNIQUE] INDEX name_idx ON student(stdname [ASC]); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 'UNIQUE'가 사용되면 .. 2021. 9. 27.