웹사이트 검색

MySQL 기본 데이터베이스 관리 명령 - 1부


데이터베이스는 전자적으로 저장된 구조화된 데이터 세트입니다. 데이터베이스의 개념은 컴퓨터가 없던 시절에도 우리 조상들에게 알려져 있었지만, 그러한 데이터베이스를 만들고 유지하는 것은 매우 지루한 일이었습니다. 예를 들어 100페이지의 수동 데이터베이스에서 급여가 10,000 미만인 직원을 모두 검색해야 한다면 얼마나 어려웠을지 생각해 보세요. .

오늘날의 세계에서는 데이터베이스에서 벗어날 수 없습니다. 현재 전 세계적으로 수백만 개의 데이터베이스가 전략 데이터, 직원 기록, 웹 기술 등 모든 종류의 데이터를 저장하고 가져오고 있습니다.

데이터베이스는 최종 사용자에게 표시되지도 않고 최종 사용자가 데이터베이스와 직접 상호작용하지도 않기 때문에 종종 백엔드 프로세스라고 불립니다. 그들은 프런트 엔드 프로세스, 즉 PHP, VB, ASP.NET 등에서 작업하고 프런트 엔드에 데이터베이스 처리를 요청합니다. 백엔드에서.

Oracle, MySQL, MySQLi, MariaDB, MongoDB 등과 같은 여러 데이터베이스 서버와 클라이언트를 사용할 수 있습니다. 이들 모두의 구문은 더 많거나 덜 동일합니다. 하나를 마스터한다는 것은 대부분의 기능을 제어할 수 있다는 것을 의미하며 데이터베이스 쿼리를 배우는 것은 매우 쉽고 재미있습니다.

데이터베이스에 대한 간단한 쿼리부터 시작해 보겠습니다. 우리는 기본적으로 대부분의 Linux 배포판과 함께 번들로 제공되는 MySQL을 사용할 것입니다. 귀하의 경우 기본적으로 설치되지 않은 경우 저장소에서 수동으로 설치할 수 있습니다.

데이터베이스 쿼리는 필요에 따라 맞춤화되고 정제된 결과를 얻기 위해 데이터베이스로 전송되는 간단한 코드 조각입니다.

MySQL 데이터베이스 설치

MySQL 데이터베이스를 설치하려면 "yum" 또는 "apt" 패키지 관리자를 사용하세요.

yum install mysql mysql-client mysql-server  (on Yum based Systems)

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
MySQL 시작

다음과 같이 MySQL 데이터베이스 서비스를 시작합니다.

service mysqld start
or
service mysql start

MySQL 데이터베이스를 설치하면 관리자 비밀번호 등을 설정하라는 메시지가 표시되는 구성으로 이동합니다. 서버 설치 및 시작이 완료되면 MySQL로 이동합니다. 프롬프트.

mysql -u root -p

root를 구성된 사용자 이름으로 바꾸고 메시지가 표시되면 비밀번호를 입력합니다. 로그인 자격 증명이 정확하면 MySQL<로 이동하게 됩니다. 눈 깜짝할 사이에 프롬프트가 표시됩니다.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

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>

이제 이 프롬프트에서 쿼리를 수행하는 것은 매우 교육적이고 재미있습니다.

데이터베이스 tecmint 생성
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

참고: 쿼리가 정확하다고 보고되며 이는 데이터베이스가 생성되었음을 의미합니다. 새로 생성된 데이터베이스를 다음과 같이 확인할 수 있습니다.

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

참고: 위 출력에서 데이터베이스를 확인하세요.

데이터베이스 선택

이제 작업할 데이터베이스를 선택해야 합니다.

mysql> use tecmint;
Database changed
mysql>
MySQL에서 테이블 생성

여기서는 다음과 같은 세 가지 필드가 있는 "minttec"이라는 테이블을 생성합니다.

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

참고: 위 쿼리는 OK로 표시됩니다. 이는 테이블이 오류 없이 생성되었음을 의미합니다. 테이블을 확인하려면 아래 쿼리를 실행하세요.

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

지금까지는 모든 것이 잘 진행되고 있습니다. 예! "minttec" 테이블에 생성한 열을 다음과 같이 볼 수 있습니다.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

그것은 마법에 지나지 않았습니다. 아무튼 선언의 종류와 의미에 대해 말씀드리겠습니다.

  1. Int는 정수입니다.
  2. Varchar는 정의된 가변 길이를 갖는 char입니다. Type 뒤의 값은 데이터를 저장할 수 있는 필드의 길이입니다.

이제 'first_name' 열 뒤에 'last_name'이라는 열을 추가해야 합니다.

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

이제 테이블에서 확인해 보세요.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>
MySQL에 열 추가

이제 오른쪽에 이메일 오른쪽에 '국가' 열을 추가하겠습니다.

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

위의 컬럼 삽입 쿼리를 확인합니다.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>
필드에 값 삽입

필드에 값을 삽입하는 것은 어떻습니까?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

위 표에 한 번에 1개 이상의 값을 삽입하는 것은 어떻습니까?

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

위의 삽입을 확인합니다.

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
필드의 값 삭제

위 출력의 세 번째 항목이 유효하지 않아 세 번째 항목을 삭제해야 한다고 가정해 보겠습니다.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

위의 작업을 확인합니다.

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
필드의 값 업데이트

ID(=4)를 수정해야 합니다.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

위 쿼리를 확인합니다.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

참고: 위의 쿼리는 수행된 대로 좋은 생각이 아닙니다. 이름이 'tecmint'인 경우 ID는 '4'로 변경됩니다. 최소한의 오류를 얻으려면 where 절과 함께 둘 이상의 열을 사용하는 것이 좋습니다. 다음과 같습니다.

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>
MySQL에서 열 삭제

여기에서 '국가'라고 말하는 것이 중요하지 않다고 생각하는 열을 삭제(삭제)해야 한다고 가정해 보겠습니다.

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

테이블을 확인하세요.

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
MySQL에서 테이블 이름 바꾸기

우리 테이블 이름 "minttec"이 별로 관련성이 없다고 생각하지 않나요? tecmint_table로 변경해 보세요.

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
모든 테이블 나열

현재 데이터베이스 아래의 모든 테이블을 봅니다.

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

테이블 이름이 변경되었습니다. 이제 복잡한 도구 없이 한 줄의 명령으로 위의 MySQL 데이터베이스를 백업하세요. mysql 프롬프트가 아닌 터미널에서 아래 코드를 실행하십시오.

mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

MySQL 데이터베이스의 백업을 유지하는 것은 항상 좋은 생각입니다. 백업된 MySQL 데이터를 복원하는 것은 mysql 프롬프트가 아닌 터미널 프롬프트에서 실행해야 하는 간단한 코드 라인입니다.

하지만 먼저 복원이 완벽한지 확인하기 위해 데이터베이스를 삭제하겠습니다.

데이터베이스 삭제
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

데이터베이스 서버에서 데이터베이스 'tecmint'를 확인하세요.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

엄청난! 데이터베이스가 손실되었지만 백업이 진행 중이므로 걱정할 필요가 없습니다.

데이터베이스 복원

손실된 데이터베이스를 복원하려면 다음 명령을 실행하십시오.

mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

앗!! 오류가 발생했습니다. tecmint 데이터베이스를 만들지 않았습니다. 따라서 mysql 프롬프트로 이동하여 'tecmint' 데이터베이스를 생성하세요.

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

이제 쉘 프롬프트에서 (엄격히) 복원 명령을 실행할 시간입니다.

mysql -u root -p tecmint < tecmint.sql 
Enter password:

데이터베이스를 확인하세요.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

데이터베이스의 내용을 확인하십시오.

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

복원된 테이블의 내용을 확인하세요.

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

이것이 끝이 아닙니다. 기본 키, 외래 키, 다중 테이블쿼리 실행의 개념을 다룰 것입니다. Strong> 기사의 다음 부분에서는 간단한 PHP 스크립트를 사용합니다.

기사를 읽으면서 어떤 느낌을 받았는지 저희에게 알려주세요. 귀하의 의견은 높이 평가됩니다. 건강하고 조심하고 Tecmint와 연결을 유지하세요.