방명록
- SQL문 완전 정복2022년 04월 17일 23시 24분 10초에 업로드 된 글입니다.작성자: 핀수728x90반응형
한글자가 추가된 문자열을 찾기
[결과] 테이블 처럼 ‘미나’ 라는 문자열 앞에 한글자가 추가된 문자열을 찾기 위한 쿼리를 작성하시오.
(김조미나, 미나와 같이 앞에 한글자가 추가되지 않은 문자열은 조회되지 않아야한다.)
[이름]
이름 나이 김미나 23 박미나 43 임미나 28 김조미나 45 미나 13 [결과]
이름 나이 김미나 23 박미나 43 임미나 28 답
더보기👉
SELECT * FROM 표 WHERE 이름 LIKE_'미나';
컬럼 LIKE 패턴
- 와일드카드
와일드카드 설명 % 0개 이상의 문자열과 일치 [ ] 1개의 문자와 일치 [^] 1개의 문자와 불일치 _ 특정 위치의 1개의 문자와 일치 조인하기
[책이름]과 [가격표] 테이블을 조인하여 [결과] 테이블처럼 나오도록 쿼리를 작성하시오
답
더보기SELECT A.책번호, A.책이름, B.가격 FROM 책이름 A LEFT JOIN 가격표 B ON A.책번호 = B.책번호;
조인은 크게 inner join, outer join 이 있다.
- INNER JOIN (교집합) : 같은 것만 보여줘
- OUTER JOIN : 없는 것도 일단 보여줘
- LEFT OUTER JOIN : 왼쪽을 기준으로 다 보여주는데, 일치하는 것도 보여줘
- RIGHT OUTER JOIN : 오른쪽을 기준으로 다 보여주는데, 일치하는 것도 보여줘
- FULL OUTER JOIN : 양쪽의 모든 데이터 다 보여줘
문법
SELECT [컬럼] FROM 테이블1 [어떤] JOIN 테이블2 ON 테이블1.기본키 = 테이블2.기본키;
DML
Data Manage Language
-- 값 조회하기 SELECT * FROM 테이블명; -- group by / where select 내가 보고 싶은 컬럼 (* : 전부 다 보여줘) from 어느 테이블에서?? where 이 조건에 만족하는 애들만 보여줄래? group by 이 기준으로 그룹지어줘; -- group by / having select 내가 보고 싶은 컬럼 from 어느 테이블에서? group by 이 기준으로 그룹지어줄래? having 아 근데 여기 부합하지 않는 애들은 보여줄 필요없어^^; -- 참고로 where에서는 avg(stu_score) > 90 이런 식을 쓸 수 없다. -- 쓰면 그룹함수는 사용할 수 없고 오류뜸.. -- where stu_score > 90 은 가능하다. -- 함수(avg(stu_score))가 안되는거다. -- 값 추가하기 INSERT INTO 테이블명(컬럼명) VALUES(값들..) -- 값 수정하기 UPDATE 테이블명 SET 수정하려는 컬럼명 = 값 WHERE 조건; -- 값 삭제하기 (전체) DELETE * FROM 테이블명 -- 조건을 충족하는 컬럼 삭제 DELETE FROM 테이블명 WHERE 지우려는 컬럼명 = 값;
DCL
- DB 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 언어
사용 권한 부여
GRANT 권한 TO 사용자; // 시스템 권한 // 관리자가 사용자에게 테이블/뷰/프로시저 등을 생성하고 삭제할 수 있는 권한 부여 GRANT 권한 ON 테이블 TO 사용자; // 객체 권한 // 관리자가 사용자에게 테이블을 수정, 삽입, 삭제, 조회와 프로시저 실행을 할 수 있는 권한 부여 // 예시 GRANT UPDATE ON 학생 TO 원빈; //관리자가 사용자인 '원빈'에게 '학생' 테이블에 대해 UPDATE 할 수 있는 권한을 부여 GRANT SELECT ON 학생 TO 원빈 WITH GRANT OPTION: // 관리자가 사용자인 '원빈'에게 '학생' 테이블에 대해 SELECT 할 수 있는 권한과 // 그 권한을 다른 사용자에게 부여할 수 있는 권한 부여
사용 권한 취소
REVOKE 권한 FROM 사용자; // 시스템 권한 // 관리자가 사용자에게 테이블/뷰/프로시저 등을 생성하고 삭제할 수 있는 권한 회수 REVOKE 권한 ON 테이블 FROM 사용자; // 객체 권한 // 관리자가 사용자아게 테이블을 수정, 삽입, 삭제, 조회와 프로시저를 실행할 수 있는 권한 회수 // 예시 REVOKE UPDATE ON 학생 FROM 원빈; // 관리자가 사용자인 원빈에게 학생 테이블에 대해 UPDATE 할 수 있는 권한 회수 REVOKE SELECT ON 학생 FROM 원빈 CASCADE CONSTRAINTS; // 관리자가 사용자 원빈에게 학생 테이블에 대해 SELECT 할 수 있는 권한과 // WITH GRANT OPTION으로 부여된 사용자들의 권한까지 회수
DDL
- 데이터를 정의하는 언어
- 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
데이터베이스 오브젝트 생성
CREATE TABLE 테이블명 ( 속성명 데이터 타입 [NOT NULL].., .., PRIMARY KEY(기본 키), UNIQUE(속성명,..), FOREIGN KEY(외래키) REFERENCES 참조테이블(기본 키), CONSTRAINT 제약조건명 CHECK 조건식 );
데이터베이스 오브젝트 변경
컬럼을 추가하기
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
컬럼을 수정하기
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
컬럼을 삭제하기
ALTER TABLE 테이블명 DROP 컬럼명;
컬럼명을 수정하기
ALTER TABLE 테이블명 RENAME COLUMN 변경전_컬럼명 TO 변형후_컬럼명;
데이터베이스 오브젝트 삭제
DROP TABLE 테이블명 [CASCADE | RESTRICT];
데이터베이스 오브젝트 내용 삭제
TRUNCATE TABLE 테이블명
VIEW
- 논리 테이블
- 사용자에게 (사용 관점에서) 테이블과 동일
뷰의 생성
CREATE VIEW 뷰 이름 컬럼 목록 AS 데이터 조회 쿼리; // 예시 CREATE VIEW VW_A AS SELECT * FROM A; // SELECT 문에는 UNION 이나 ORDER BY절을 사용XX
뷰의 삭제 / 변경
- 뷰 정의 자체를 변경하는 것은 불가능
DROP VIEW 뷰 이름;
INDEX
- 데이터를 빠르게 찾는 수단, 테이블에 대한 조회 속도를 높여 주는 자료 구조
- 테이블의 특정 레코드 위치를 알려 주는 용도로 사용
INDEX 생성
- 컬럼은 복수 지정 가능
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);
INDEX 삭제
- 컬럼은 복수 지정 가능
DROP INDEX 인덱스명;
INDEX 변경
- 기존 인덱스를 삭제 하고 신규 인덱스를 생성하는 방식으로 사용 권고
ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);
728x90반응형'배경지식 > 배경지식' 카테고리의 다른 글
Class | Object | Instance | IoC | DI (2) 2022.07.02 포인터 (0) 2022.04.17 환경변수 (0) 2021.11.07 IO (0) 2021.11.05 다다익램 (0) 2021.11.05 다음글이 없습니다.이전글이 없습니다.댓글