SQL

OneTwoThree·2022년 7월 20일
0

SQL이란?-1

SQL이란?

SQL(Structured Query Language)은 데이터를 보다 쉽게 검색, 추가, 삭제, 수정하기 위해 고안된 컴퓨터 언어

Database 생성하기

콘솔에서 다음 명령 실행

mysql -uroot -p

uroot : u(user)를 관리자 계정인 root로 DBMS에 접속하겠다는 뜻
p : password를 의미

명령을 실행하고 나서 본인이 설치할 때 정했던 password를 입력한다
접속에 성공하면 mysql> 프롬프트가 표시된다

mysql> create database DB이름;

위 명령어로 database를 생성한다

Database 사용자 생성, 권한 부여

Database 생성 후에 해당 데이터베이스를 사용할 계정을 생성해야 한다
그리고 해당 계정에게 데이터베이스를 이용할 권한을 부여해야 한다

grant all privileges on db이름.* to 계정이름 @'%' identified by '암호';
grant all privileges on db이름.* to 계정이름 @'localhost' identified	by '암호';
flush privileges;

db이름. 에서 는 모든 권한을 부여한다는 의미이다.
@'%'는 모든 클라이언트에서 접근 가능하다는 의미이다.
@'localhost'는 해당 컴퓨터에서만 접근 가능하다는 의미이다.
flush privilieges는 DBMS에게 명령을 적용하라는 뜻이다
반드시 해당 명령을 실행해줘야 한다
(privilieges : 특권)

주의 : 8.0버전에서는 query가 다름

create database 데이터베이스이름;
create user 계정이름@localhost identified by '계정비밀번호';
grant all privileges on 데이터베이스이름.*TO '계정이름'@'localhost';
flush privileges;

내가 설치한 8.0 버전에서는 위와 같이 query를 입력해야 한다.

유저이름 : connectuser
pw : connect123!@#

생성한 Database에 접속하기

mysql -h호스트명 -uDB계정명 -p 데이터베이스이름 

호스트는 내 컴퓨터의 IP이므로 127.0.0.1
위의 사용자 생성에서 만든 계정명과 접속할 데이터베이스 이름을 입력하고 엔터 입력
계정 password 입력


database 이름 : connectdb
user 이름 : user1234 (pw : 1234)

MySQL 연결끊기

mysql> QUIT;
mysql> exit;

둘 중 뭐를 사용해도 상관없다
Bye가 출력되면 연결 끊기 성공

MySQL 현재 버전, 날짜 구하기

mysql> SELECT VERSION(), CURRENT_DATE;

SQL은 query라고 읽는다 (DBMS에 명령을 내리는 문장들)
SQL은 ;로 끝난다
;로 끝나기 때문에 ;가 입력되기 전에 엔터를 이용해서 줄바꿈을 하며 query를 작성할 수 있다
같은 원리로 문장 끝에 ;만 붙여주면 한 줄에 여러 문장을 실행할 수 있다.
SELECT 키워드는 어떤 내용을 조회할 때 사용한다

SQL의 키워드는 대소문자를 구분하지 않는다

쿼리를 이용해서 계산식을 작성할 수 있다.

mysql>SELECT SIN(PI()/4),(4+1)*5;

SQL을 입력하는 도중에 \c를 입력해서 취소할 수 있다.

DBMS에 존재하는 데이터베이스 확인하기

mysql>show databases

작업하기 위한 데이터베이스를 선택하려면 어떤 데이터베이스가 있는지 알아야 한다.

사용중인 데이터베이스 전환하기

mysql>use mydb;

use command를 사용한다. 이미 데이터베이스가 존재해야 하고, 접속한 계정이 데이터베이스에 대한 접근권한이 있어야 한다.

테이블

SQL이란?-2

RDBMS(관계형 DBMS)의 기본적 저장구조인 테이블
column : 테이블 상에서 단일 종류의 데이터를 나타냄, 특정 데이터 타입,크기를 가짐
row : column 값들의 조합, 기본 키 (PK)에 의해 구분된다
PK는 중복을 허용하지 않으며 없어서는 안된다
위의 예시에서는 student_id가 PK
field : row와 column의 교차점. 데이터를 포함하거나 없으면 null

데이터베이스에 테이블 목록 확인하기

테이블을 만들지 않은 상태에서 show tables; 를 입력하면 empty set을 표시한다.

강의에서 제공하는 파일 말고 댓글에서 제공하는 파일로 해야 되는것 같다..
곰니님 댓글에 있는 파일로 하면 됨

테이블 구조 확인

desc 테이블명;
해주면 해당 테이블의 구조를 확인할 수 있다.
(desc = describe)

0개의 댓글