SQL 기초 1~3

김태국 (ktaek94)·2023년 2월 14일

SQL

목록 보기
1/6

SQL 설치하기(Windows)

  • https://dev.mysql.com/downloads/mysql/ 에서 dmg 파일 다운로드
  • recommend download 클릭하고 용량이 높은것 선택해서 다운
  • 설치 완료 후 developer default 설정
  • excute 버튼을 눌러서 부족한 것들 설치 진행.
  • next 버튼 누르고 기본설정 진행
  • MySQL Root Password: 절대 잃어버리면 안됨. 기억해야함.
  • Apply Configuration : excute 선택
  • 설치 완료후 MysQL 8.0 command Line Clinet 에서 비밀번호 입력
  • command 가 아나콘다 프롬프트 역할
  • Workbench 는 jupyter 역할

DB 사용하기

  • DB: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합,관리하는 데이터의 집합체
  • DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리해주는 소프트웨어(MySQL)
  • RDB: 서로간에 관계가 있는 데이터 테이블을 모아둔 데이터 저장공간
  • SQL: DB에서 데이터를 정의,조작,제어하기 위해 사용하는 언어
  • SQL 구성
    • 데이터 정의 언어(DDL): CREATE,ALTER,DROP 등
    • 데이터 조작 언어(DML): INSERT,UPDATE,DELETE,SELECT
    • 데이터 제어 언어(DCL): GRANT,REVOKE,COMMIT,ROLLBACK
show databses; #현재 DB 현황
create database testdb; #testdb 생성
use testdb; #testdb 로 이동
drop database testdb; #testdb 제거

user 관리

use mysql;
select host, user from user; #유저 정보
create user 'noma'@'localhost' identified by '1234'; #` 아니고 ' #현재 PC에서 접속가능한 사용자(noma,1234) 생성
create user 'noma'@'%' identified by '1234';#외부에서 접속 가능한 사용자를 비밀번호와 함께 생성(noma,1234)
select host,user from user;

  • 호스트 정보가 다른 유저는 이름이 같아도 상관없음.
  • 유저 삭제
drop user 'noma'@'localhost'
drop user 'noma'@'%'
select host,user from user;

user 권한 관리

  • 사용자 정보는 mysql 에서 담당하고 있기 때문에 use mysql; 먼저 실행
create database testdb; #권한부여할 DB 생성
create user 'noma'@'localhost' identified by '1234'; #권한 관리 실습 사용자 생성
show grants for 'noma'@'localhost'; #사용자에게 부여된 모든 권한 목록 확인

  • testdb 의 모든 권한 부여
grant all on testdb.* to 'noma'@'localhost';
show grants for 'noma'@'localhost';

  • 안보일 때 새로고침
flush privileges;
  • 모든 권한 삭제
revoke all on testdb.* from 'noma'@'localhost';
show grants for 'noma'@'localhost';

Table 생성하기

  • 'zerobase' 라는 이름의 데이터 베이스 생성
create database zerobase default character set utf8mb4; #디폴트로 캐릭터 셋을 다국어로 지원하고, 이모지 문자도 이용한다.
  • Table : 실제 데이터가 저장되는 형태이고, 행과 열로 구성된 데이터 모음
  • id(int)와 name(varchar(16)) 컬럼을 가지는 mytable 생성(CREATE TABLE)
use zerobase;
 create table mytable
    -> (
    -> id int,
    -> name varchar(16)
    -> );
show tables;

  • table 정보 확인(DESC)
desc mytable

  • Table 이름 변경 하기(ALTER)
alter table mytable
rename person;

  • table 컬럼 추가 하기 (agee 컬럼)
alter table person add column agee double;

  • datatype 변경하기
alter table person modify column agee int;

  • name 바꾸기 (double 도 int로 바꾸기)
alter table person
change column agee age int;

  • 컬럼 삭제
alter table person
drop column age;

  • 테이블 삭제
drop table person;
show tables;

데이터 조작어 SELECT,INSERT,UPDATE,DELETE

  • 실습 환경 만들기
use zerobase;
create table person
    -> (
    -> id int,
    -> name varchar(16),
    -> age int,
    -> sex char
    -> );
desc person;

  • INSERT (into): 데이터 추가
    - 입력한 컬럼 이름의 순서와 값의 순서가 일치하도록 주의
insert into table(id,name,age,sex)
values (1,'이효리',43,F);
select * from person; # person 테이블의 모든 데이터 보기

  • 모든 컬럼 값을 추가하는 경우 컬럼지정하지 않아도 되지만 입력 값의 순서는 컬럼 순과 일치해야함
insert into person
values (2,'이상순',48,'M')
select *from person;

  • SELECT (from): 데이터 조회
    - 테이블 내의 특정 칼럼에 대한 데이터를 조회
select name,age,sex from person;

  • 테이블 내의 모든 컬럼에대한 데이터 조회
select * from person;

  • WHERE: 조건
    - 조건을 만족하는 데이터 조회
select * from person where sex='F';

  • UPDATE (set): 데이터 수정
update person
set age=23 where name='이효리';
select * from person where name='이효리';

  • DELETE (from): 데이터 삭제 where 생략시 전체 데이터 삭제
delete from person where name='이상순';
select * from person;

0개의 댓글