자주 사용하는 SQL 정리하기

시작하기

터미널을 켜 mysql.server start 로 서버를 실행해주고, mysql -uroot -p 와 비밀번호까지 입력하면 MariaDB를 실행할 수 있다.

객체 생성

SQL문의 마지막에는 꼭 세미콜론(;)을 붙여주어야 한다.

데이터베이스 확인하기

  • show databases;

데이터베이스를 확인할 수 있다.

+--------------------+
| Database |
+--------------------+
| information_schema |
| megait1 |
| mysql |
| performance_schema |
| sys |
+--------------------+

show databases; 입력하여 지금 Database에 information_schema, megait1, mysql, performance_schema, sys 가 있다는 것을 알 수 있다.
여기서 megait1 은 내가 만든 거다.

데이터베이스 생성하기

  • create database 데이터베이스이름;

데이터 베이스를 만들고 싶을 때 사용할 수 있다.

create database pongdang; 을 입력하여 pongdang 이라는 데이터베이스를 만들었다.

+--------------------+
| Database |
+--------------------+
| information_schema |
| megait1 |
| mysql |
| performance_schema |
| pongdang |
| sys |
+--------------------+

show databases; 를 통해서 잘 만들었는지 확인할 수 있다.

데이터베이스 이동

  • use 데이터베이스이름

어떤 데이터 베이스로 이동하고 싶을 때 사용할 수 있다.

use pongdang; 을 입력하여 MariaDB [(none)]>MariaDB [pongdang]> 으로 변경된 것을 알 수 있다.

계정 생성 및 권한주기

  • create user "아이디"@"%" identified by "비밀번호"
    : 계정 생성

  • grant all privileges on 아이디.* to "데이터베이스이름"@"%"
    : 데이터베이스와 계정을 연결

  • flush privileges
    : 권한 적용 (새로고침)

  • show grants for "아이디"@"%"

  1. create user "pongpong"@"%" identified by "0121"

pongpong 이라는 아이디를 만들었다. 비밀번호는 비밀이다.

  1. grant all privileges on pongpong.* to "pongdang"@"%"

pongpong 계정pongdang 데이터 베이스를 연결하여 계정에게 데이터베이스 권한을 준다.

  1. flush privileges

권한을 적용하고 새로고침 한다.

  1. show grants for "pongpong"@"%"

권한을 확인할 수 있다.

테이블

테이블 만들기

  • create table 테이블 이름 (내용);
create table member(
  idx int(11) not null auto_increment,
  id varchar(50) not null,
  name varchar(50) default null,
  phone varchar(50) default null,
  primary key (idx)
);

member라는 이름을 가진 테이블을 만들었다.

테이블 확인하기

show tables; 로 내가 만든 테이블을 확인할 수 있다.

+--------------------+
| Tables_in_pongdang |
+--------------------+
| member |
+--------------------+

테이블 정보 보기

테이블의 정보를 보고 싶다면 desc 테이블이름; 을 입력하면 된다.

desc member

+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| idx | int(11) | NO | PRI | NULL | auto_increment |
| id | varchar(50) | NO | | NULL | |
| name | varchar(50) | YES | | NULL | |
| phone | varchar(50) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+

테이블 수정하기

alter table 테이블이름 명령어 상세내용;

예 |

+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| idx | int(11) | NO | PRI | NULL | auto_increment |
| id | varchar(50) | NO | | NULL | |
| name | varchar(50) | YES | | NULL | |
| phone | varchar(50) | YES | | NULL | |
| zipcode | varchar(10) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+

alter table member add zipcode varchar(10) after phone;
-> member라는 테이블의 phone 항목 후에 zipcode 항목을 추가해라

+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| idx | int(11) | NO | PRI | NULL | auto_increment |
| id | varchar(50) | NO | | NULL | |
| name | varchar(50) | YES | | NULL | |
| phone | varchar(50) | YES | | NULL | |
| zipcode | varchar(10) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+

alter table member add address varchar(100) null;
-> member라는 테이블의 address 항목을 추가해라

+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| idx | int(11) | NO | PRI | NULL | auto_increment |
| id | varchar(50) | NO | | NULL | |
| name | varchar(50) | YES | | NULL | |
| phone | varchar(50) | YES | | NULL | |
| address | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+

alter table member drop zipcode;
-> member라는 테이블의 zipcode 항목을 삭제해라

데이터 조작

데이터 읽기

select * from 테이블이름;

여기서 *은 테이블의 모든 항목들을 보겠다고 하는 것이다.

select * from member;

아직 만든 게 없어서 Empty set 이라고 뜬다.
select * from member;select idx, id, name, phone, address from member; 와 같은 의미이다.

데이터 입력하기

insert into 테이블이름(항목들) values(항목의 값들);

insert into member(id, name, phone) values("aaa", "pong", "010-1111-2222");

데이터를 입력 후 select * from member; 를 통해 member의 데이터를 확인했다.

데이터 수정하기

update member set id="___" 조건문;

update member set id="dang" where idx = 1;

idx가 1이었던 pong이라는 이름이 dang으로 바뀐 것을 확인할 수 있다.

데이터 삭제하기

delete from 테이블 이름 조건문

delete from member where idx = 1;

idx가 1이었던 데이터가 사라져서 Empty set이 되었다.


와 넘 어렵당

좋은 웹페이지 즐겨찾기