Day_04 (SQL 쿼리문 실습)

HD.Y·2023년 11월 2일
0

한화시스템 BEYOND SW

목록 보기
4/58
post-thumbnail

SQL 이란?

  • SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리 및 처리하기 위해
    개발된 특수 목적의 프로그래밍 언어이다.

  • RDBMS에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터 베이스 객체 접근 조정 관리를 위해 개발되었다.

  • SQL의 종류에는 3가지가 있다.
    1. DDL ( Data Definition Language ) : 데이터 정의어
    2. DML ( Data Manipulation Language ) : 데이어 조작어
    3. DCL ( Data Control Language ) : 데이터 제어어

  • 각각에 해당하는 명령어는 다음과 같다.
    1. DDL : CREATE (생성) / ALTER (컬럼 변경) / DROP (테이블 삭제)
    2. DML : SELECT (선택) / INSERT (삽입) / UPDATE (수정) / DELETE (데이터 삭제)
    3. DCL : GRANT (권한 부여) / REVOKE (권한 회수)

SQL 쿼리문 작성 예시

  • DB 선택 : USE DB명 ;

  • 테이블 생성 : CREATE TABLE 테이블명 ( 속성명 데이터타입 옵션 );
  • 테이블 변경
    • ALTER TABLE 테이블명 ADD 속성명 데이터타입 ;
    • ALTER TABLE 테이블명 DROP 속성명 ;
    • ALTER TABLE 테이블명 RENAME COLUMN 기존 속성명 TO 변경 속성명 ;
    • ALTER TABLE 테이블명 MODIFY 속성명 데이터타입 ;
  • 테이블 삭제 : DROP TABLE 테이블명 ;

  • 데이터 조회 : SELECT 속성명1, 속성명2, ... FROM 테이블명 WHERE 조건 ;
  • 데이터 삽입 : INSERT INTO 테이블명 ( 속성명1 , 속성명2 ) VALUES( 값1 , 값2 );
  • 데이터 삭제 : DELETE FROM 테이블명 WHERE 조건 ;
  • 데이터 수정 : UPDATE 테이블명 SET 속성명 = 값 WHERE 조건 ;

  • 권한 부여 : GRANT 권한명 ON 테이블명 TO 사용자명 ;
  • 권한 회수 : REVOKE 권한명 ON 테이블명 FROM 사용자명 ;

  • 위 처럼 SQL 쿼리문을 이용하여 name , addr 의 속성을 가지고 있는 STUDENT 라는 테이블을 형성하고, name : 홍길동, addr : 서울시 인 데이터를 삽입한 뒤 조회하는 쿼리문을 예시로 작성해봤다.
  • 이와 같이 DDL , DML , DCL 을 이용하면 다양한 쿼리문을 작성할 수 있다.

다른 사람이 작성한 SQL 쿼리문 가져오기(mysql 기준)

  • 리눅스 컴퓨터에 다른 사람이 작성한 SQL 쿼리문을 압축한 파일을 다운받는다.
    명령어 : wget [경로명]

  • unzip 명령어를 이용해 압축을 해제해준다. ( 명령어가 없다면 새로 설치해준다.)
    명령어 : unzip [파일명]

  • DB 서버의 관리자 권한으로 압축 해제한 파일을 DB 서버에 추가
    명령어 : mysql -u root -p < [파일명.sql]

  • 쿼리문에 접근할 수 있도록 권한을 부여한다.
    명령어 : GRANT ALL PRIVILEGES ON [파일명].* TO [사용자명]

오늘의 느낀점 👀

  • 새롭게 깨달은 내용 : mysql에서 사용자 생성 시 접근 가능한 주소를 부여하고
    권한을 변경하고 싶을때는 ALTER, GREANT 가 아닌 RENAME 을 사용한다.
    RENAME USER test2@'%' TO test2@777.777.0.77;

  • 오늘은 실제로 SQL 쿼리문 작성을 실시해봤다. SQL 쿼리문을 문제로만 보다가
    실제로 작성해보고 어떻게 동작하는지 확인해보니 신기하고 흥미로웠다🙂

  • 이제부터 중요한것은 이론적으로 공부했던 쿼리문을 실제로 쳐보는 것이다❗
profile
Backend Developer

0개의 댓글