MySQL database 기초 명령어

2022. 11. 9. 12:19sql

SQL 문법에는 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)이 있다.

데이터 정의어(DDL)

-Data Definition Language

- 데이터 정의어는 데이터를 정의하는 언어

- 테이블이나 관계의 구조를 생성하는 데 사용

- CREATE, ALTER, DROP, TRUNCATE 문이 있음

데이터 조작어(DML)

-  Data Manipulation Language

- 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어

- SELECT, INSERT, UPDATE, DELETE 문이 있음

- SELECT 문은 특별히 질의어(Query)라고 부름

 

데이터 제어어(DCL)

- 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 DBA가 사용하는 제어용 언어

- GRANT, REVOKE 문이 있음

 

MySQL 기본 세팅

https://corineee.tistory.com/49

 

mySQL 기초 세팅 이론

https://www.mysql.com/ MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More

corineee.tistory.com

데이터베이스 접속 명령

  • mysql -u계정 -p비밀번호 데이터베이스명  
  • c:\>mysql -u아이디 -p비밀번호 데이터베이스명 또는 c:\>mysql -u아이디 -p비밀번호   // 계정로그인 mysql>use 데이터베이스명 // use 명령을 사용해 작업하려는 데이터베이스 선택
  • 데이터베이스 생성과 삭제 권한은 관리자에게만 있으므로 root로 접속해서 명령을 실행해야 한다!!!! (중요) 데이터베이스 생성 명령 : creat database 데이터베이스명;
  • 데이터베이스는 관리자만 생성할 수 있기 때문에 반드시 root계정으로 생성한 후, 데이터베이스 출력 명령을 통해 그 존재를 확인해 본다.

 

데이터베이스 삭제 명령 : drop database 데이터베이스명;

MySQL 데이터베이스 테이블 관련 명령어

데이터베이스 테이블 생성 명령

//Shell
create table 테이블명(
  필드명1 타입,
  필드명2 타입,
  ......
  PRIMARY KEY(필드명)
);

PRIMARY KEY

  • 기본키 ( 중복되는 데이터가 들어있지 않은 Field )
  • 데이터를 검색, 수정, 삭제 할 수 있는 키
  • 해당 KEY 가 중복되는지 검사 후 생성

데이터베이스 테이블 생성

c:\>mysql -uid -p1234 id_db
mysql>create table friend(
          num int not null,     // primary key로 설정해주었기 때문에 not null로 필수항목 처리 num int => num 은 정수
          name char(10) not null,	// name은 문자열이고 10글자이다 ( 10bit )
          address char(80) not null,
          tel char(20) not null,
          email char(20),
          
          primary key(num)   // 기본키는 필드값은 서로 중복되지 않는 유일한 값을 갖는다. 구별되는 필드.
          );
mysql>show tables;  // 테이블 생성 확인

데이터베이스 테이블 구조 확인

mysql>desc 테이블명;

생성된 테이블

데이터베이스 테이블 수정 명령

새로운 필드 추가 명령
alter table 테이블명 add 새로운필드명 필드타입 [first 또는 after 필드명];

mysql>alter table 테이블명 add age int;  // 테이블명 테이블에 age 필드를 정수형으로 추가 (제일 마지막에 추가됨)
mysql>alter table 테이블명 add hp char(20) after tel;  // tel 필드 바로 다음에 hp필드를 추가

add age int; 입력시 테이블의 가장 마지막에 추가
add hp char(20) after tel 입력시 테이블의 tel 뒤에 추가


필드 삭제 명령

alter table 테이블명 drop 삭제할 필드명1, 필드명2, ....;

mysql>alter table 테이블명 drop email;   // email 필드 삭제
mysql>alter table 테이블명 drop age;    // age 필드 삭제

삭제된 email 과 age

필드 수정 명령

alter table 테이블명 change 이전필드명 새로운필드명 필드타입;

mysql>alter table 테이블명 change tel phone int;

phone으로 바뀐 tel

필드 타입 수정 명령

alter table 테이블명 modify 필드명 새로운타입;

mysql>alter table 테이블명 modify name char(20);

데이터베이스 테이블명 수정 명령

alter table 이전테이블명 rename 새로운테이블명;

mysql>alter table 테이블명 rename 변경될테이블명;

데이터베이스 테이블 삭제 명령

drop table 테이블명;

mysql>drop table 테이블명;

SQL 명령의 일괄 실행

  • 텍스트 파일에 데이터베이스 테이블 생성 명령 저장
  • 설정 폴더로 이동
  • SQL 명령 일괄 실행 및 실행 확인
  • c: 드라이버에 [설정] 폴더를 만든다. 메모장에 아래와 같이 입력후 설정폴더에 파일명.sql로 저장한다.

vs code 실행 후 sql file 생성

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

vs code로 sql 파일 생성 후 sql문 작성

shell 에서 생성폴더로 접근

friend2.sql 파일에 있는 저장된 명령을 다음과 같이 일괄 실행

c:\bini>mysql -u아이디 -p비밀번호 db이름<friend2.sql

c:\bini>mysql -u아이디 -p비밀번호 db이름  // 아이디 계정에 접속한다.
mysql>show tables;  //테이블이 생성되었는지 확인
mysql>desc friend2;  //테이블 구조 확인

폴더 안에 sql 파일이 생성된 것을 확인할 수 있다

파일생성완료

MySQL 레코드 관련 명령(insert, select, update, delete)

1.레코드 삽입 명령

  • *insert into 테이블명 (필드명1, 필드명2,....) values (필드값1, 필드값2, ..);
mysql>insert into friend2 (num,name,address,tel) values (1,'이순신','서울 동작구 노량진동','123-000');

2.레코드 검색 명령

  • select Field명 from 테이블명;
mysql>select * from friend2;

table 을 확인해보면 값이 들어가있지만 한글이 깨져서 표현되고있다.

명령프롬프트의 기본 언어가 라틴어로 설정되어있어 설정을 변경해주어야 한다

값이 들어가있지만 한글이 제데로 표시되고 있지 않다

show variables like 'character_set%'; 입력

set names euckr;

한글이 제데로 표현되고 있다