Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

Database - MySQL , DBMS, RDBMS 본문

DataBase

Database - MySQL , DBMS, RDBMS

보람- 2023. 9. 18. 14:04

목차

1. DBMS

2. RDBMS(관계형 데이터베이스)

3. SQL

4. MySQL 설치하기 (Linux)

5. SQL 구문


 

 

1. DBMS

 

- DataBase Management System

- DB : 데이터를 저장하는 공간

- DBMS : 데이터를 저장하는 공간을 도와주는 프로그램

   - 사용하고 실행하려면 프로세스에 올려야한다.

 

 

 

 

2. RDBMS(관계형 데이터베이스)

 

- 관계형(MySQL) :  데이터를 테이블로 저장하는것

- 비관계형(MongoDB) : 데이터를 객체형태로 저장하는것

 

  • 관계형 데이터베이스

- oracle

- mysql

- mariadb

- postgresql

- mssql

- db2 

 

 

 

 

3. SQL

- Structured Query Language

- 데이터베이스에서 데이터를 관리하는데 사용하는 언어

 

 

 

 

4. MySQL 설치하기 (Linux)

 

cd ~

sudo apt update
sudo apt upgrade

sudo apt install mysql-server
mysql --version

- 설치한 다음 버전을 확인해본다. (파일을 다운받은것!!)

 

sudo service mysql start

ps -ef | grep mysql

sudo service mysql stop

sudo service mysql status

- mysql을 start, stop해서 확인해보고 상태도 확인해본다.

 

sudo mysql_secure_installation

- 입력하게되면 user root의 비밀번호를 설정하라고 하는데 사용할 비밀번호를 8자리에 대소문자+숫자+특수문자까지 사용해서 적어준다.

- 플러그인을 설치하겠다는 질문에 n 입력하고 엔터

- change the password for root 질문에 n 입력하고 엔터

- 나머지 질문(remove anonymous users, disallow root login remotely,  remove test database, reroading)에는 y하고 엔터를 하면 설치는 끝이난다.

 

sudo service mysql start

sudo mysql -uroot -p

- mysql을 start하고 설정한 비밀번호를 입력해준다.

 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.34-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

- 비밀번호를 입력하고나면 이렇게 나오게된다.

- "mysql>" 뜬다면 DB를 프로세스에 올렸고 MySQL에 접속한상태이므로 sql구문을 사용해준다.

 

 

 

5. SQL 구문

 

5-1 show databases;

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

- 여기서의 'databases'는 폴더같은 의미이다.

 

 

 

5-2 use mysql;

use [데이터베이스명]
use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

- database 폴더중에 mysql 폴더로 들어간것을 의미한다.

 

 

 

5-3 show tables;

show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
37 rows in set (0.01 sec)

- mysql의 파일들을 보여준것

 

 

 

5-4  desc user;

desc user;
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                    | Type                              | Null | Key | Default               | Extra |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                     | char(255)                         | NO   | PRI |                       |       |
| User                     | char(32)                          | NO   | PRI |                       |       |
| Select_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv      | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv   | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type                 | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher               | blob                              | NO   |     | NULL                  |       |
| x509_issuer              | blob                              | NO   |     | NULL                  |       |
| x509_subject             | blob                              | NO   |     | NULL                  |       |
| max_questions            | int unsigned                      | NO   |     | 0                     |       |
| max_updates              | int unsigned                      | NO   |     | 0                     |       |
| max_connections          | int unsigned                      | NO   |     | 0                     |       |
| max_user_connections     | int unsigned                      | NO   |     | 0                     |       |
| plugin                   | char(64)                          | NO   |     | caching_sha2_password |       |
| authentication_string    | text                              | YES  |     | NULL                  |       |
| password_expired         | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed    | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime        | smallint unsigned                 | YES  |     | NULL                  |       |
| account_locked           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_role_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_role_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Password_reuse_history   | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_reuse_time      | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_require_current | enum('N','Y')                     | YES  |     | NULL                  |       |
| User_attributes          | json                              | YES  |     | NULL                  |       |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
51 rows in set (0.01 sec)

- 필드를 객체로 보자면 속성을 뜻하고, 엑셀로 보자면 맨위에 적는 항목(제목)이라고 볼수있다.

  - desc user는 파일안에 제목들을 보여준것

     - 컬럼목록보기와같다!

 

- 항목을 만드는것을 "스키마(schema)"라고 한다.

- 필드마다 타입이 정해져있다.

 

 

 

5-5 select * from user;

select * from user;
select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

- select * from user; 는 레코드를 보는것

- select user,host from user; 는 user와 host의 레코드를 보는것

 

 

 

 


※ sql 구문에 ; 세미콜론 빼먹지않기!!! 

 

※ 스키마 참고하기

https://coding-factory.tistory.com/216

 

[DB기초] 스키마란 무엇인가?

스키마란? 1. 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 2. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(R

coding-factory.tistory.com

 

※ 프로그래머스에 sql 문제가 있다고 알려주심!

 

※ web server router 잘나누고 연습하기!

'DataBase' 카테고리의 다른 글

Database - Database connection  (0) 2023.09.20
Database - sql 계정 생성, mysql2 설치, net-tools설치  (0) 2023.09.20
Database - SQL, DDL, DML  (0) 2023.09.19