>  기사  >  데이터 베이스  >  mysql 입력 쿼리 및 종료 쿼리 명령

mysql 입력 쿼리 및 종료 쿼리 명령

伊谢尔伦
伊谢尔伦원래의
2016-11-23 13:36:521898검색

이전 섹션에서 설명한 대로 서버에 연결되어 있는지 확인하세요. 서버에 연결해도 데이터베이스가 선택되지는 않지만 괜찮습니다. 쿼리 방법에 대한 기본 사항을 아는 것이 바로 테이블 생성, 데이터 로드, 테이블에서 데이터 검색을 시작하는 것보다 더 중요합니다. 이 섹션에서는 몇 가지 쿼리를 사용하여 명령 입력의 기본 원칙을 설명합니다. MySQL의 작동 방식을 이해할 수 있습니다.

이것은 서버에 버전 번호와 현재 날짜를 알려달라고 요청하는 간단한 명령입니다. mysql> 프롬프트에 다음 명령을 입력하고 Enter를 누르세요.

mysql> SELECT VERSION(), CURRENT_DATE; 
+-----------------+--------------+
| VERSION()    | CURRENT_DATE |
+-----------------+--------------+
| 5.1.2-alpha-log | 2005-10-11  |
+-----------------+--------------+
1 row in set (0.01 sec)
mysql>

이 질문은 mysql의 여러 측면을 설명합니다.

· 명령은 일반적으로 SQL 문과 하위 섹션으로 구성됩니다. 숫자. (세미콜론이 필요하지 않은 예외도 있습니다. 앞에서 언급한 QUIT는 예시입니다. 다른 예시는 나중에 살펴보겠습니다.)

· 명령이 내리면 mysql이 이를 서버로 보내고 실행합니다. 명시적으로 그 결과는 다른 명령을 받아들일 준비가 되었음을 보여주는 또 다른 mysql>와 함께 표시됩니다.

· mysql은 쿼리 출력을 테이블(행과 열)로 표시합니다. 첫 번째 행에는 열 레이블이 포함되고 후속 행은 쿼리 결과입니다. 일반적으로 열 레이블은 데이터베이스 테이블에서 가져온 열의 이름입니다. 이전 예에서와 같이 테이블 열의 값이 아닌 표현식을 검색하는 경우 MySQL은 표현식 자체로 열에 태그를 지정합니다.

· MySQL은 반환된 행 수와 쿼리에 걸린 시간을 표시하여 서버 성능에 대한 일반적인 아이디어를 제공합니다. 이는 시계 시간(CPU 또는 머신 시간이 아님)을 나타내고 서버 로드 및 네트워크 대기 시간과 같은 요소의 영향을 받기 때문에 이러한 값은 부정확합니다. (간결하게 하기 위해 이 장의 다른 예에서는 "컬렉션의 행"이 더 이상 표시되지 않습니다.)

대문자 및 소문자로 키워드를 입력하는 기능(대소문자 구분 안 함). 다음 쿼리는 동일합니다.

mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE; 
这是另外一个查询,它说明你能将mysql用作一个简单的计算器:
mysql> SELECT SIN(PI()/4), (4+1)*5; +------------------+---------+
| SIN(PI()/4)      | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 |      25 |
+------------------+---------+
1 row in set (0.02 sec)

지금까지 표시된 명령은 비교적 짧은 한 줄 명령문입니다. 각 명령문을 세미콜론으로 구분하여 한 줄에 여러 명령문을 입력할 수 있습니다.

mysql> SELECT VERSION(); SELECT NOW(); 
+-----------------+
| VERSION()       |
+-----------------+
| 5.1.2-alpha-log |
+-----------------+
1 row in set (0.00 sec)
+---------------------+
| NOW()               |
+---------------------+
| 2005-10-11 15:15:00 |
+---------------------+
1 row in set (0.00 sec)

명령을 한 줄에 모두 입력할 필요는 없습니다. 더 긴 명령은 여러 줄에 입력할 수 있습니다. MySQL은 입력 줄의 끝이 아닌 종료 세미콜론을 찾아 명령문이 끝나는 위치를 결정합니다. (즉, MySQL은 자유 형식 입력을 허용합니다. 입력 줄을 수집하지만 세미콜론이 나타날 때까지 실행되지 않습니다.)

다음은 간단한 여러 줄 문의 예입니다.

mysql> SELECT     -> USER()     -> , -> CURRENT_DATE; 
+---------------+--------------+
| USER()     | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2005-10-11  |
+---------------+--------------+

이 예에서는 여러 줄 쿼리의 첫 번째 줄을 입력한 후 프롬프트가 mysql>에서 ->로 어떻게 변경되는지 확인하세요. 이는 mysql이 완전한 문을 보지 못했고 기다리고 있음을 나타내는 것과 정확히 같습니다. 나머지 . 프롬프트는 귀중한 피드백을 제공하기 때문에 친구이며, 해당 피드백을 사용하면 mysql이 무엇을 기다리고 있는지 항상 알 수 있습니다.

입력 중인 명령을 실행하지 않으려면 c를 입력하여 취소하세요.

mysql> SELECT     -> USER()     -> \c mysql>

또한 c를 입력한 후 나타나는 프롬프트에 주의하세요. , mysql>로 다시 전환하고 mysql이 새 명령을 받아들일 준비가 되었음을 나타내는 피드백을 제공합니다.

다음 표에서는 볼 수 있는 다양한 프롬프트를 보여주고 해당 프롬프트가 나타내는 mysql의 상태를 간략하게 설명합니다.

프롬프트 의미

mysql>

-> 여러 줄 명령의 다음 줄을 기다립니다.

'> 작은따옴표("'")로 시작하는 문자열의 끝을 기다리며 다음 줄을 기다립니다.

"> 다음 줄을 기다리며 큰따옴표(""")로 시작하는 문자열의 끝을 기다립니다.

`> 백슬래시 점('`')으로 시작하는 식별자의 끝을 기다리며 다음 줄을 기다립니다.

/*> 다음 줄과 /*로 시작하는 주석이 끝날 때까지 기다립니다.

한 줄에 명령을 실행하려고 할 때 여러 줄 문이 나타나지만 종료 세미콜론이 없는 것은 "우연히" 발생하는 경우가 많습니다. 이 경우 mysql은 추가 입력을 기다리고 있습니다.

mysql> SELECT USER()     ->

이런 일이 발생하면(문장 입력을 마쳤다고 생각하지만 -> 프롬프트만 응답함) mysql이 기다리고 있을 가능성이 높습니다. 세미콜론의 경우 . 프롬프트를 눈치채지 못한다면, 무엇을 해야 할지 깨닫기 전에 잠시 거기 앉아 있을 수도 있습니다. 세미콜론을 입력하여 명령문을 완성하면 mysql이 실행됩니다:

mysql> SELECT USER()    -> ; 
+---------------+
| USER()    |
+---------------+
| jon@localhost |
+---------------+

문자열 수집 중에 '> 및 "> 프롬프트가 나타납니다(MySQL이 문자열의 끝을 기다리고 있다는 프롬프트). MySQL에서는 ''' 또는 '"' 문자로 묶인 문자열(예: 'hello' 또는 "goodbye")을 작성할 수 있으며 mysql에서는 여러 줄에 걸쳐 문자열을 입력할 수 있습니다. '> 또는 "> 프롬프트가 표시되면 ''' 또는 '"' 대괄호 문자로 시작하는 문자열이 포함된 줄이 입력되었지만 문자열을 끝내는 일치하는 따옴표가 입력되지 않았음을 의미합니다. 이는 부주의하게 따옴표 문자를 생략했음을 나타냅니다. 예:

mysql> SELECT * FROM my_table WHERE name = &#39;Smith AND age < 30;     &#39;>

如果你输入SELECT语句,然后按Enter(回车)键并等待结果,什么都没有出现。不要惊讶,“为什么该查询这么长呢?”,注意">提示符提供的线索。它告诉你mysql期望见到一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串"Smith丢掉了第二个引号。)

走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入\c,因为mysql作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样mysql知道你完成了字符串),然后输入\c:

mysql> SELECT * FROM my_table WHERE name = &#39;Smith AND age < 30;     &#39;> '\c mysql>

提示符回到mysql>,显示mysql准备好接受一个新命令了。

`> 提示符类似于 '> 和"> 提示符,但表示你已经开始但没有结束以`> 开始的识别符。

知道'>和">提示符的含义很重要,因为如果你错误地输入一个未终止的字符串,任何后面输入的行将要被mysql忽略--包括包含QUIT的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。


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