📝 테이블 구조를 확인하는 방법
[ 목차 ]
1. 기본
• 열 / 특정 열 조회 방법
2. 표현식
1) 산술 연산 표현식
📝 AS
2) 문자열 표현식
3) 날짜 표현식
4) 테이블에 없는 컬럼 값
5) DISTINCT
일단 예시 테이블을 생성하고 데이터를 넣어주도록 하자.
CREATE TABLE EMPLOYEE(
사원번호 VARCHAR(6) PRIMARY KEY,
이름 VARCHAR(25) NOT NULL,
연락처 VARCHAR(11) NOT NULL,
부서 VARCHAR(25) NOT NULL,
고용일 DATE NOT NULL,
성별 CHAR(1) CHECK (성별 IN ('M', 'F')),
생일 DATE,
급여 DECIMAL(10,2) NOT NULL
);
INSERT INTO EMPLOYEE(사원번호, 이름, 연락처, 부서, 고용일, 성별, 생일, 급여)
VALUES
('E00001', '김철수', '01012345678', '인사부', '2021-03-15', 'M', '1990-06-15', 2500000.00),
('E00002', '이영희', '01087654321', '마케팅부', '2019-07-21', 'F', '1992-09-25', 3200000.00),
('E00003', '박민수', '01011112222', '개발부', '2018-01-30', 'M', '1988-12-01', 2800000.00),
('E00004', '정지훈', '01033334444', '영업부', '2020-11-10', 'M', '1985-04-18', 3000000.00),
('E00005', '최유진', '01055556666', '인사부', '2022-05-20', 'F', '1995-08-22', 2700000.00),
('E00006', '강수진', '01077778888', '개발부', '2017-02-14', 'F', '1991-10-13', 3400000.00),
('E00007', '한성민', '01099990000', '마케팅부', '2020-09-01', 'M', '1987-07-07', 3200000.00),
('E00008', '조미나', '01022223333', '영업부', '2023-03-03', 'F', '1996-05-23', 2500000.00),
('E00009', '이현우', '01044445555', '개발부', '2021-12-12', 'M', '1990-01-29', 3600000.00),
('E00010', '김하나', '01066667777', '마케팅부', '2019-06-18', 'F', '1993-11-11', 3100000.00);
📝 테이블 구조를 확인하는 방법
테이블 생성을 완료했으면, 테이블 구조도 한 번 확인해보자.
DESC 테이블명;
-- 또는
DESCRIBE 테이블명;
• DESC는 MySQL에서 테이블의 구조(스키마)를 확인할 때 사용하는 명령어다.
• 보통 컬럼 타입을 수정하거나 새로운 컬럼을 추가할 때 참고한다.
• 데이터베이스 구조 설계 검토 시 사용된다.
• Field: 테이블의 각 컬럼(필드) 이름
• Type: 컬럼의 데이터 타입
• Null: NULL 값 허용여부
• Key:
→ PRI: Primary Key
→ UNI: Unique Key
→ MUL: Multiple Key (Foreign Key 또는 인덱스)
• Default: 컬럼의 기본값
• Extra: 추가 정보 (예: auto_increment 등)
SELECT 구문으로 데이터 조회하기
1. 기본
1) 모든 열 조회
SELECT * FROM 테이블명;
• SELECET: 데이터를 선택하겠다는 명령어
• * : 테이블의 모든 열을 선택한다는 것
• FROM: 데이터를 가져올 테이블을 지정하는 키워드
• 테이블명: 데이터를 조회할 테이블의 이름
2) 특정 열만 조회
SELECT 열 FROM 테이블명;
3) 특정 여러 열 조회
SELECT 열1, 열2, ... FROM 테이블명;
2. 표현식 SELECT 하기
1) 산술 연산 표현식
예시 ①
SELECT 이름, 급여, 급여 * 1.1 AS 보너스 포함 급여
FROM EMPLOYEE;
• 이렇게 컬럼 값에 수학적 연산을 수행하여 특정 컬럼의 계산된 값을 조회하는 것도 가능하다.
📝 AS
• SQL에서 별칭(Alias)을 만들 때 사용하는 키워드
• 별칭을 통해 컬럼이나 테이블에 임시로 이름을 부여할 수 있다.
• 별칭은 결과에만 적용되며, 실제 데이터베이스 테이블에는 영향을 주지 않는다.
• 별칭은 띄어쓰기가 금지다,
• 별칭을 만들때 '('와 같은 특수기호를 같이 넣고 싶다면 별칭에 큰따옴표를 사용해야 한다.
SELECT 이름, 급여, 급여 * 1.1 AS "급여(보너스포함)"
FROM EMPLOYEE;
• 별칭에 띄어쓰기를 넣고 싶은 경우에도 큰따옴표를 사용해야 한다.
SELECT 이름, 급여, 급여 * 1.1 AS "보너스 포함 급여"
FROM EMPLOYEE;
2) 문자열 표현식
예시 ①
SELECT CONCAT(이름, ' - ', 연락처) AS 이름_및_연락처
FROM EMPLOYEE;
예시 ②
SELECT UPPER(이름), LOWER(이름) AS 대문자_이름
FROM EMPLOYEE;
3) 날짜 표현식
예시 ①
SELECT 이름, DATEDIFF(CURDATE(), 고용일) AS 근무_일수
FROM EMPLOYEE;
예시 ②
SELECT 이름, DATE_ADD(고용일, INTERVAL 1 YEAR) AS 입사한지_1년
FROM EMPLOYEE;
4) 테이블에 없는 컬럼값을 SELECT
예시 ①
SELECT 이름, 부서, 1300 FROM EMPLOYEE;
• 없는 컬럼값을 사용할 경우 모든 행에 해당 값이 표현된다.
예시 ②
SELECT 이름, 부서, abc FROM EMPLOYEE;
• 예시 의 1300의 경우 숫자로 인식하기 때문에 문제가 없지만 abc는 문자열로 인식이 되서 unknown 컬럼이라는 에러가 발생하게 된다.
SELECT 이름, 부서, 'abc' FROM EMPLOYEE;
• 이런 경우엔 abc가 컬럼명이 아닌 문자열이란걸 '홑따옴표'를 통해 알려주면 된다.
5) DISTINCT
• distinct의 사전적 의미는 '뚜렷한, 구별되는, 분명한' 이다.
• 데이터베이스에서 distinct는 테이블에서 중복된 값을 제거하고 고유한(유니크한) 값만 반환할 때 사용한다.
• 즉, 여러 행에서 중복된 데이터가 있다면, DISTINCT 사용 시, 중복된 행들 중 하나만 표시된다.
SELECT DISTINCT 부서
FROM employee;
SELECT DISTINCT 부서, 이름
FROM employee;
• 이 경우엔, 같은 부서의 동명이인을 제외하고 조회되는 것이 된다.
'데이터 분석 > MySQL' 카테고리의 다른 글
MySQL 총 정리5: ORDER BY로 데이터 정렬 (1) | 2024.10.02 |
---|---|
MySQL 총 정리4: 다양한 연산자로 필터링된 데이터 조회 (0) | 2024.09.30 |
MySQL 총 정리2: 데이터 추가ㆍ변경ㆍ삭제 (1) | 2024.09.27 |
MySQL 총 정리1: 명명 규칙, 테이블 생성ㆍ구조 변경ㆍ삭제 (0) | 2024.09.24 |
디비버(Dbeaver) 설치 방법 및 실행해보기 / 대문자 변환 • 자동 대문자 설정하기 (3) | 2024.07.23 |