>  기사  >  데이터 베이스  >  Mysql 관련 지식 요약

Mysql 관련 지식 요약

PHP中文网
PHP中文网원래의
2017-06-21 16:08:42723검색

데이터베이스 및 테이블 정보 얻기

일반적으로 일반 프로그래머나 DBA는 코드를 입력할 때 갑자기 다음과 같은 일련의 질문을 떠올립니다. 나는 누구인가? 내가 뭘 하고 있는 거지? 내 데이터베이스는 어디에 있나요? 내 테이블을 어떻게 만들었나요? 어떻게 해야 하나요? SHOW DATABASES 명령을 생각할 수도 있습니다. 하지만 이 명령은 mysql에서 관리하는 데이터베이스를 나열하는 명령이므로 내가 어디에 있는지 알 수 있는 명령은 아닙니다. 어떤 명령인가요?

내 누군가가 고대 고전을 검색할 때 다음 명령을 발견했습니다.

SELECT DATABASE();

mysql> SELECT DATABASE();
+--------- ----+
| DATABASE() |
+----------------+
| 테스트 |
+----------------+
1행 set (0.00 sec)

mysql>

분명히 이것은 내가 어느 데이터베이스에 있는지 알려주는 명령입니다. 그러면 다음과 같은 질문을 하는 젊은 그룹이 분명히 있을 것입니다. 데이터베이스를 입력하지 않으면 무엇이 표시되나요?

mysql> SELECT DATABASE();
+---+
| DATABASE() |
+------------ --+
| NULL |
+----------------+
1행(0.00초)

mysql>

물론 NULL입니다. 그럴까요?

이제 우리가 사용하고 있는 데이터베이스(테스트)를 찾습니다. 그러면 (애완동물) 등 원하는 테이블을 찾아보면 됩니다. 고대 서적의 기록에 따르면 다음 명령을 사용해야 합니다:

SHOW TABLES;

mysql> SHOW TABLES;
+----------------+
| 이벤트                                                           )

mysql>


그리고 테이블의 구조를 알고 싶습니다. 어떻게 해야 하나요?

DESCRIBE pet;

mysql> DESCRIBE pet;

+---------+------------+------+ ---+---------+-------+

| 필드 유형 | Null 키 |

+---------+ -------------+------+-----+---------+-------+

| (20) | NULL | varchar(20) | NULL | | 사망 | 날짜 | NULL ----+------+------+---------+-------+

6개 행( 0.00초)

mysql>





이전 드라이버는 일반적으로

DESC pet로 축약합니다.

Field는 열 이름을 나타냅니다.

Type은 열의 데이터 유형을 나타냅니다.

Null은 NULL이 될 수 있는지 여부를 나타냅니다.

Key는 인덱스 여부를 나타냅니다.

Default는 필드를 나타냅니다. 기본값은

테이블에 인덱스가 있는 경우 SHOW INDEX FROM tbl_name에 인덱스 정보가 표시됩니다.

일반적인 쿼리의 예

무엇을 하기 전에 먼저 테이블을 만들어야 합니다. 상인()의 각 품목()의 가격을 저장하는 테이블(상점)이 있다고 가정합니다. ). (아이템 및 판매자는 기본 키로 사용됩니다.)

작업은 다음과 같습니다.

mysql> CREATE TABLE shop(

-> Article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,

-> Dealer CHAR (20) DEFAULT '' NOT NULL,

-> 가격 DOUBLE(16,2) DEFAULT '0.00' NOT NULL,

-> PRIMARY KEY(기사, 딜러));

쿼리 확인, 0개 행이 영향을 받음(0.56초) )

mysql>

그런 다음 일부 데이터를 삽입하세요:

mysql> INSERT INTO shop VALUES
-> (1,'A',3.45),(1,'B',3.99),(2,'A' ,10.99),(3 ,'B',1.45),
-> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
쿼리 확인, 7개 행이 영향을 받았습니다(0.24초)
기록: 7 중복: 0 경고: 0

mysql>

테이블 확인:

mysql> SELECT * FROM shop;
+---------+---------+-------+
|딜러 가격 |
+--- ------+-------+
| 0001 | 3.99 |
| 0003 | 1.45 |
| 0003 | 19.95 |
+------ +-------+
7 행 세트(0.00초)

mysql>

그러면 다음 내용을 배울 수 있습니다

열의 최대값


예: 상점에서 가장 큰 품목 번호는 무엇입니까?

작업은 다음과 같습니다.

SELECT MAX(article) FROM shop;

mysql> SELECT MAX(article) FROM shop;

+-------------+

| 기사) |

+---------------+

| 4 |
+-------------+
1행 세트(0.00초)

mysql>

예: 가장 비싼 제품을 찾으려면

작업은 다음과 같습니다.

SELECT MAX(price) FROM shop;

mysql> SELECT MAX(price) FROM shop;

+- ----- ------+

|MAX(가격) |

+---+

|19.95 |
+------ ----------+
1개 행(0.00초)

mysql>

MAX() 함수가 무엇을 하는지 아시나요? ㅋㅋㅋ SELECT MAX(가격) FROM shop);

mysql> SELECT * FROM shop

-> WHERE 가격 =

--> (SELECT MAX(가격) FROM shop);

+--------- +------ ---+-------+

| 기사 가격 |

+---------+-------+--- ----+

| 0004 | 19.95 |

+---------+---------+------+

1행(0.00초) )

mysql>

다른 작업이 있습니다:

SELECT * FROM shop ORDER BY 가격 DESC LIMIT 1;

mysql> SELECT * FROM shop

-> ORDER BY 가격 DESC

-> ------ ---+---------+-------+

| 기사 딜러 가격 |

+---------+--- -----+ -------+
|0004 | 19.95 |
+---------+------- +
1행 세트(0.00초)

mysql>

전자는 중첩 쿼리이고, 후자는 가격별로 정렬하여 하나만 표시합니다.

열 최대값: 그룹별




밤나무: 각 항목(물품)의 최대 가격은 얼마인가요?

작업은 다음과 같습니다.

SELECT 항목, MAX(가격) AS 가격 FROM shop GROUP BY 기사;

mysql> SELECT 기사, MAX(가격) AS 가격

-> FROM shop

-> GROUP BY 기사;

+---------+-- ---- -+

| 가격 |

+---------+

| 0001 | 10.99 |

|

| 0004 | 19.95 |

+---------+-------+

4개 행(0.00초)

mysql>

특정 분야의 그룹




라인은 제목의 의미를 이해하지 못합니다. . . .

밤나무: 각 품목별로 가격이 가장 비싼 딜러를 찾아보세요.

작업은 다음과 같습니다.

SELECT 기사, 딜러, 가격
FROM shop s1
WHERE 가격 = (SELECT MAX(가격)

FROM shop s2

WHERE s1.article = s2.article);

mysql> 기사, 딜러, 가격

-> FROM shop s1

- -> WHERE 가격 = (SELECT MAX(s2.price)

- -> FROM shop s2

- -> WHERE s1.article = s2.article) ;

+--- ------+---------+-------+

| 기사 가격 |

+---------- +------ --+------+

| 0002 | 1.69 |

| +------ ----+---------+-------+

4행 세트(0.00초)

이유는 책에는 안 적혀 있는데 제가 잘 이해가 되지 않습니다. 더 알고 싶은 분들은 댓글란으로 설명해주세요●﹏●. ㅋㅋㅋ MAX(가격) FORM shop;

SELECT * FROM shop WHERE 가격 = @min_price OR 가격 = @max_price;

mysql> SELECT @min_price:=MIN(가격), @max_price:=MAX(가격) FROM shop;
+--------- +-- ---------+
| @min_price:=MIN(가격) | @max_price:=MAX(가격) |
+-- --- ------+------------+
|1.25 |
+------------+------ ----- +
1행 세트(0.13초)

mysql> SELECT * FROM shop WHERE 가격=@min_price OR 가격 = @max_price;
+---------+------ ----+ -------+
| 대리점 | 가격 |
+---------+-------+ 0003 | | 1.25 |
| 0004 | 19.95 |
+----------+-------+
2행 세트(0.09초)

mysql>

사용자 변수에 대해서는 나중에 더 자세한 내용이 나올 예정이니 궁금하신 분들은 바이두를 이용해보세요.

외래 키 사용

더 이상 말할 필요 없이 위의 포털이 있는데 매우 좋습니다. ㅋㅋㅋ e
CREATE TABLE person (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name CHAR(60) NOT NULL,
    PRIMARY KEY (id)
);
 <br>
CREATE TABLE shirt (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
    color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
    owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),
    PRIMARY KEY (id)
);
 <br>
INSERT INTO person VALUES (NULL, 'Antonio Paz');
 <br>
SELECT @last := LAST_INSERT_ID();
 <br>
INSERT INTO shirt VALUES
rrree

mysql> 테이블 생성 표시G

**************************** 1. 행 **** ***********************

테이블: 셔츠

테이블 만들기: CREATE TABLE `shirt` (

`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,

`style` enum('t-shirt','polo','dress') NOT NULL,

`color` enum('red','blue','orange','white',' black') NOT NULL,

`owner` smallint(5) unsigned NOT NULL,

PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
1 행 세트(0.01초)

mysql> ;

위 내용은 Mysql 관련 지식 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:MySQL 연구 노트다음 기사:MySQL 연구 노트