수색…


비고

MySQL 로고

MySQL 은 Oracle Corporation에서 개발 및 지원하는 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS)입니다.

MySQL은 Linux 변형, OS X 및 Windows를 포함한 많은 플랫폼에서 지원 됩니다. 또한 C, C ++, Java, Lua, .Net, Perl, PHP, Python 및 Ruby를 비롯한 많은 언어에 대한 API 를 제공합니다.

MariaDB약간 다른 기능 세트 가있는 MySQL 포크입니다. 대부분의 응용 프로그램에서 MySQL과 완전히 호환됩니다.

버전

번역 출시일
1.0 1995-05-23
3.19 1996-12-01
3.20 1997-01-01
3.21 1998-10-01
3.22 1999-10-01
3.23 2001-01-22
4.0 2003-03-01
4.1 2004-10-01
5.0 2005-10-01
5.1 2008-11-27
5.5 2010-11-01
5.6 2013-02-01
5.7 2015-10-01

시작하기

MySQL에 데이터베이스 만들기

CREATE DATABASE mydb;

반환 값 :

쿼리 OK, 영향을받는 행 1 개 (0.05 초)


생성 된 데이터베이스 mydb

USE mydb;

반환 값 :

데이터베이스가 변경됨

MySQL에 테이블 만들기

CREATE TABLE mytable
(
  id              int unsigned NOT NULL auto_increment,
  username        varchar(100) NOT NULL,
  email           varchar(100) NOT NULL,
  PRIMARY KEY     (id)
);

CREATE TABLE mytablemytable 이라는 새 테이블을 작성합니다.

id int unsigned NOT NULL auto_incrementid 열을 생성합니다.이 유형의 필드는 테이블의 각 레코드에 고유 한 숫자 ID를 할당합니다 (이 경우 두 행이 동일한 id 를 가질 수 없음을 의미). MySQL은 자동으로 새로운, 레코드의 id 필드에 고유 한 값 (1부터 시작).

반환 값 :

쿼리 OK, 영향을받은 행 0 개 (0.10 초)


MySQL 테이블에 행 삽입하기

INSERT INTO mytable ( username, email )
VALUES ( "myuser", "[email protected]" );

반환 값의 예 :

질의 OK, 1 행 영향 (0.06 초)

varchar 일명 strings 은 작은 따옴표를 사용하여 삽입 할 수도 있습니다.

INSERT INTO mytable ( username, email )
VALUES ( 'username', '[email protected]' );

행을 MySQL 테이블로 업데이트하기

UPDATE mytable SET username="myuser" WHERE id=8

반환 값의 예 :

질의 OK, 1 행 영향 (0.06 초)

int 값은 따옴표없이 쿼리에 삽입 할 수 있습니다. 문자열과 날짜는 따옴표로 묶어야합니다 ' 또는 큰 따옴표 " .


행을 MySQL 테이블에 삭제하기

DELETE FROM mytable WHERE id=8

반환 값의 예 :

질의 OK, 1 행 영향 (0.06 초)

그러면 id 가 8 인 행이 삭제됩니다.


MySQL의 조건에 따라 행 선택하기

SELECT * FROM mytable WHERE username = "myuser";

반환 값 :

+----+----------+---------------------+
| id | username | email               |
+----+----------+---------------------+
|  1 | myuser   | [email protected]  |
+----+----------+---------------------+

1 행 세트 (0.00 초)


기존 데이터베이스 목록 표시

SHOW databases;

반환 값 :

+-------------------+
| Databases         |
+-------------------+
| information_schema|
| mydb              |
+-------------------+

2 줄 세트 (0.00 초)

"information_schema"는 데이터베이스 메타 데이터에 대한 액세스를 제공하는 "마스터 데이터베이스"로 생각할 수 있습니다.


기존 데이터베이스에 테이블 표시

SHOW tables;

반환 값 :

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+

1 행 세트 (0.00 초)


테이블의 모든 필드 표시

DESCRIBE databaseName.tableName;

또는 이미 데이터베이스를 사용하는 경우 :

DESCRIBE tableName;

반환 값 :

+-----------+----------------+--------+---------+-------------------+-------+
| Field     | Type           | Null   | Key     | Default           | Extra |
+-----------+----------------+--------+---------+-------------------+-------+
| fieldname | fieldvaluetype | NO/YES | keytype | defaultfieldvalue |       |
+-----------+----------------+--------+---------+-------------------+-------+

Extra 에는 auto_increment 가 포함될 수 있습니다.

Key 는 필드에 영향을 줄 수있는 키 유형을 나타냅니다. 기본 (PRI), 고유 (UNI) ...

n 행 세트 (0.00 초)

여기서 n은 테이블의 필드 수입니다.


사용자 만들기

먼저 사용자를 생성 한 다음 특정 데이터베이스 / 테이블에 대한 사용 권한을 부여해야합니다. 사용자를 생성하는 동안이 사용자가 연결할 수있는 위치도 지정해야합니다.

CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';

데이터베이스가 호스팅되는 로컬 컴퓨터에서만 연결할 수있는 사용자를 만듭니다.

CREATE USER 'user'@'%' IDENTIFIED BY 'some_password';

어디서나 연결할 수있는 사용자를 만듭니다 (로컬 컴퓨터 제외).

반환 값의 예 :

쿼리 OK, 영향을받은 행 0 개 (0.00 초)

권한 추가하기

지정된 데이터베이스의 모든 테이블에 대해 공통된 기본 권한을 사용자에게 부여하십시오.

GRANT SELECT, INSERT, UPDATE ON databaseName.* TO 'userName'@'localhost';

모든 데이터베이스에있는 모든 테이블에 대해 모든 권한을 사용자에게 부여하십시오 (이에 대한주의 사항).

GRANT ALL ON *.* TO 'userName'@'localhost' WITH GRANT OPTION;

위에서 설명한 것처럼 *.* 은 모든 데이터베이스와 테이블을 대상으로하며 databaseName.* 은 특정 데이터베이스의 모든 테이블을 대상으로합니다. 과 같이 데이터베이스와 테이블을 지정할 수도 있습니다 databaseName.tableName .

사용자가 다른 사용자에게 권한을 부여 할 필요가없는 경우 WITH GRANT OPTION 을 생략해야합니다.

권한은 다음 중 하나 일 수 있습니다 .

ALL

또는 쉼표로 구분 된 각각의 다음 조합 (비 한정적인 목록).

SELECT
INSERT
UPDATE
DELETE
CREATE
DROP

노트

일반적으로 공백이 포함 된 열 또는 테이블 이름을 사용하거나 SQL에서 예약어를 사용하지 마십시오. 예를 들어, 같은 이름을 방지하기 위해 최선의 table 또는 first name .

그러한 이름을 사용해야한다면 백틱 (back-tick) `` 구분자 (delimiter) 사이에 두어라. 예 :

CREATE TABLE `table`
(   
   `first name` VARCHAR(30)
);

이 테이블에 백틱 구분 기호가 포함 된 질의는 다음과 같습니다.

 SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';

정보 스키마 예제

처리 목록

그러면 모든 활성 및 대기중인 쿼리가 해당 순서대로 얼마나 오랫동안 표시됩니다.
SELECT * FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;

기본적으로 초 단위이기 때문에 시간 프레임에 대한 자세한 내용입니다.

SELECT ID, USER, HOST, DB, COMMAND, 
TIME as time_seconds, 
ROUND(TIME / 60, 2) as time_minutes, 
ROUND(TIME / 60 / 60, 2) as time_hours, 
STATE, INFO
FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;

저장 프로 시저 검색

단어 및 와일드 카드에 대한 모든 Stored Procedures 를 쉽게 검색 할 수 있습니다.

SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%word%';


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow