먼저 Oracle사에서 만든 MySQL이 점점 유료화가 되면서 자유재단에서 동일한 구조를 가진 MariaDB가 탄생했다.
MySQL이나 MariaDB나 똑같은 SQL이라고 생각하면 편리하다.
먼저 리눅스 CentOS 7 에 MariaDB를 설치하는 방법은 아래를 참고한다.
https://ansan-survivor.tistory.com/1185
이제 리눅스위에 SQL서버를 구축한 후, MySQL 계정생성, 간단한 DB생성 방법에 관한 것이다.
<계정 설정>
0. SQL실행 명령 및 나가기 명령
- 실행
mysql
- 나가기
exit
1. 루트 계정 설정, 패스워드 변경
/usr/bin/mysqladmin -u root password
2. 루트 접속
mysql -u root -p
패스워드 입력하면 접속 됨.
3. 새로운 계정 생성, 아이디와 패스워드를 생성.
* wordpress-user : 내가 원하는 ID , your_strong_password : 내 패스워드 입력
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';
* 위에서 만든 wordpress-user 입력.
CREATE DATABASE `wordpress-db`;
GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
FLUSH PRIVILEGES;
exit
<DB 생성 및 조작>
데이터베이스 생성하는 방법은 아래와 같다.
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name]
- [ ] 에 들어가있는 것은 옵션이므로 생략 가능
- 중복되는 db이름이 있으면 에러를 일으킴
- [IF NOT EXITSTS] 라는 옵션값을 넣으면 해당 이름이 없다면 생성, 있다면 생성 안함
- 나머지 옵션들은 쓰지 않으면 default로 생성 함.
1. 로그인 (여기서는 root로 로그인 했다)
mysql -u root -p
(옵션) 어떤 데이터베이스가 있는지 확인하기
SHOW DATABASES;
2. 새 데이터베이스 생성하기
CREATE DATABASE testdb;
(옵션) 어떤식의 옵션으로 생성했는지 상세보기
SHOW CREATE DATABASE testdb;
3. 해당 database 사용하기 (선택하기), 테이블 생성하기 - 테이블 생성을 위해서는 해당 db가 선택되어야 한다.
3-1. db 선택
USE testdb;
3-2. db에 아래와 같은 테이블을 생성해본다.
* 주의할점은 위에 따옴표는 ' 가 아닌 ` 이다. (1번키 왼쪽에 있는)
CREATE TABLE `student_tb` (
`sno` int(11) NOT NULL,
`name` char(10) DEFAULT NULL,
`det` char(20) DEFAULT NULL,
`addr` char(80) DEFAULT NULL,
`tel` char(20) DEFAULT NULL,
PRIMARY KEY (`sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3-3. 테이블 생성 확인하기
SHOW TABLES;
3-4. 필드가 잘 생성되었는지 확인하기
-> DESC 테이블명
DESC student_tb;
4. 새로운 필드 삽입하기 (중간에 삽입하기)
-> (student_db 테이블의 age라는 이름을 int형 타입으로 name뒤에 생성) 이라는 뜻이다.
ALTER TABLE student_tb ADD age int AFTER name;
5. 새로운 필드 삽입하기 (맨끝에 삽입하기)
-> 맨뒤에 AFTER 필드명이 없으면 맨 아래 자동 생성된다.
ALTER TABLE student_tb ADD sex int;
6. 필드 삭제하기 (DROP 명령)
ALTER TABLE student_tb DROP age;
7. 필드 수정하기 (CHANGE 명령)
ALTER TABLE student_tb CHANGE tel phone int;
8. db에 또다른 테이블 만들기, 그리고 삭제 해보기
testdb 내 다른 테이블을 만든다.
* 테이블 생성
CREATE TABLE `delete_tb` (
`name` char(10) DEFAULT NULL,
`tel` char(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(확인)
SHOW TABLES;
* delete_tb 을 삭제해보기
DROP TABLE delete_tb;
(아래 블로그 출처)
https://www.everdevel.com/MySQL/creating-table/
https://www.mysqltutorial.org/mysql-create-database/