MySql의 SQL 문장 학습 노트 (1)

13463 단어
요약: 1, SELECT 2, DISTINCT 문장 3, WHERE 자문 4, 인용부호의 사용 5, AND와 OR 연산자 6, ORDER BY 7, INSERT INTO 문장 8, UPDATE 문장 9, DELETE 문장 10, TOP 자문 11, LIKE 조작부호 12, SQL 어댑터 13, IN 조작부호 14, BETWEN 15, SQL Alias(별명)
SQL 문은 대소문자에 민감하지 않습니다.SELECT = select.
1. SELECT 문
  • 문법:
  • SELECT     FROM    
    SELECT * FROM    
    
  • 사례:
  • mysql> SELECT * FROM test.Persons;
    +------+----------+-----------+----------------+----------+
    | Id_P | LastName | FirstName | Address        | City     |
    +------+----------+-----------+----------------+----------+
    |    1 | Aaa      | John      | Oxford Street  | London   |
    |    2 | Bush     | George    | Fifth Avenue   | New York |
    |    3 | Carter   | Thomas    | Changan Street | Beijing  |
    |    4 | Carter   | George    | xford Street   | London   |
    +------+----------+-----------+----------------+----------+
    4 rows in set (0.00 sec)
    

    2. DISTINCT 문
    DISTINCT 키워드는 고유한 다른 값을 반환하는 데 사용됩니다.
  • 문법:
  • SELECT DISTINCT     FROM    
    
  • 사례:
  • mysql> select DISTINCT(LastName) from test.Persons;
    +----------+
    | LastName |
    +----------+
    | Aaa      |
    | Bush     |
    | Carter   |
    +----------+
    3 rows in set (0.00 sec)
    

    3. WHERE 자구
    테이블에서 데이터를 조건부로 선택하려면 WHERE 자문을 SELECT 문에 추가합니다.
  • 문법
  • SELECT     FROM     WHERE        
    

    다음 연산자는 WHERE 자문에서 사용할 수 있습니다.
    조작부호
    묘사
    =
    ... 과 같다
    <>
    같지 않다
    >
    보다 크다
    <
    보다 작음
    >=
    보다 크거나 같음
    <=
    보다 작음
    BETWEEN
    어느 범위 내에서
    LIKE
    모드 검색
    참고: 일부 SQL에서는 연산자 <>이(가)!=으로 쓸 수 있습니다.
  • 사례
  • mysql> SELECT * FROM Persons WHERE City='Beijing';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    +------+----------+-----------+----------------+---------+
    1 row in set (0.00 sec)
    

    4. 따옴표의 사용
    SQL은 텍스트 값을 둘러싸는 데 단일 따옴표를 사용합니다(대부분의 데이터베이스 시스템도 더블 따옴표를 사용합니다).숫자의 경우 따옴표를 사용하지 마십시오.
  • 텍스트 값:
  •      :
    SELECT * FROM Persons WHERE FirstName='Bush'
    
         :
    SELECT * FROM Persons WHERE FirstName=Bush
    
  • 수치:
  •      :
    SELECT * FROM Persons WHERE Year>1965
    
         :
    SELECT * FROM Persons WHERE Year>'1965'
    

    5, AND 및 OR 연산자
    AND와 OR는 WHERE 하위 문에서 두 개 이상의 조건을 결합할 수 있습니다.첫 번째 조건과 두 번째 조건이 모두 성립되면 AND 연산자에 기록이 표시됩니다.첫 번째 조건과 두 번째 조건 중 하나만 성립되면 OR 연산자는 기록을 표시합니다.
  • 문법
  • SELECT     FROM     WHERE (       ) AND/OR (       )
    
  • AND 케이스
  • mysql> SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    +------+----------+-----------+----------------+---------+
    1 row in set (0.00 sec)
    
  • OR 케이스
  • mysql> SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    |    4 | Carter   | George    | xford Street   | London  |
    +------+----------+-----------+----------------+---------+
    2 rows in set (0.00 sec)
    
  • 통합 활용 사례
  • mysql> SELECT * FROM Persons 
        -> WHERE (FirstName='Thomas' OR FirstName='William')
        -> AND LastName='Carter';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    +------+----------+-----------+----------------+---------+
    1 row in set (0.00 sec)
    

    6、ORDER BY
  • 는 결과 집합을 정렬하는 데 사용됩니다.
  • 결과 세트를 지정된 열에 따라 정렬하는 데 사용합니다.
  • 기본적으로 오름차순으로 기록을 정렬합니다.기록을 내림차순으로 정렬하려면 DESC 키워드를 사용합니다.
  • 문법
  • SELECT     FROM     ORDER BY   DESC/ASC,  DESC/ASC ...
    
  • Company 내림차순 사례
  • +---------+-------------+
    | Company | OrderNumber |
    +---------+-------------+
    | Xiaomi  | 7890        |
    | Tencent | 6953        |
    | LeEco   | 2876        |
    | JD      | 3847        |
    | IBM     | 3532        |
    | Baidu   | 2356        |
    | Apple   | 4698        |
    | Ali     | 6534        |
    +---------+-------------+
    8 rows in set (0.00 sec)
    
  • Company 내림차순, OrderNumber 오름차순 사례
  • mysql> SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC;
    +---------+-------------+
    | Company | OrderNumber |
    +---------+-------------+
    | Xiaomi  | 7890        |
    | Tencent | 6953        |
    | LeEco   | 2876        |
    | JD      | 3847        |
    | IBM     | 3532        |
    | Baidu   | 2356        |
    | Apple   | 4698        |
    | Ali     | 6534        |
    +---------+-------------+
    8 rows in set (0.00 sec)
    

    7. INSERT INTO 문
    테이블에 새 행을 삽입하는 데 사용합니다.
  • 문법
  • INSERT INTO     VALUES ( 1,  2,....)
    

    또한 삽입할 데이터의 열을 지정할 수도 있습니다.
    INSERT INTO table_name ( 1,  2,...) VALUES ( 1,  2,....)
    
  • 사례
  • INSERT INTO Persons VALUES (6,'Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
    INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees');
    
    mysql> select * from Persons;
    +------+----------+-----------+----------------+----------+
    | Id_P | LastName | FirstName | Address        | City     |
    +------+----------+-----------+----------------+----------+
    |    1 | Aaa      | John      | Oxford Street  | London   |
    |    2 | Bush     | George    | Fifth Avenue   | New York |
    |    3 | Carter   | Thomas    | Changan Street | Beijing  |
    |    4 | Carter   | George    | xford Street   | London   |
    | NULL | Wilson   | NULL      | Champs-Elysees | NULL     |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing  |
    +------+----------+-----------+----------------+----------+
    6 rows in set (0.01 sec)
    

    8. UPDATE 문
    테이블의 데이터를 수정하는 데 사용됩니다.
  • 문법:
  • UPDATE     SET     =    WHERE     =   
    
  • 사례
  • mysql> UPDATE Persons SET FirstName = 'Fred',Id_p = 9 
    WHERE LastName = 'Wilson';
    
    mysql> select * from Persons;
    +------+----------+-----------+----------------+----------+
    | Id_P | LastName | FirstName | Address        | City     |
    +------+----------+-----------+----------------+----------+
    |    1 | Aaa      | John      | Oxford Street  | London   |
    |    2 | Bush     | George    | Fifth Avenue   | New York |
    |    3 | Carter   | Thomas    | Changan Street | Beijing  |
    |    4 | Carter   | George    | xford Street   | London   |
    |    9 | Wilson   | Fred      | Champs-Elysees | NULL     |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing  |
    +------+----------+-----------+----------------+----------+
    6 rows in set (0.00 sec)
    

    9. DELETE 문
    테이블에서 행을 삭제할 수 있습니다.
  • 문법
  • DELETE FROM     WHERE     =  
    

    모든 줄을 삭제합니다. 테이블을 삭제하지 않은 상태에서 모든 줄을 삭제할 수 있습니다.이것은 테이블의 구조, 속성 및 색인이 모두 완전하다는 것을 의미한다.
    DELETE FROM table_name
      :
    DELETE * FROM table_name
    

    10. 탑 자구
    되돌아갈 기록의 수를 정하는 데 쓰인다.수천 개의 기록을 가진 대형 표에 탑자구는 매우 유용하다.주석: 모든 데이터베이스 시스템이 TOP 자구를 지원하는 것은 아닙니다.SQL Server의 구문:
    SELECT TOP number|percent column_name(s)
    FROM table_name
    

    MySQL 구문:
    SELECT column_name(s)
    FROM table_name
    LIMIT number
    

    Oracle 구문:
    SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number
    

    11. LIKE 조작부호
    WHERE 자문에서 열의 지정된 모드를 검색하는 데 사용됩니다.SQL LIKE 연산자 구문:
    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE/NOT LIKE pattern
    
  • 사례
  • mysql> SELECT * FROM Persons
        -> WHERE City NOT LIKE '%lon%';
    +------+----------+-----------+----------------+----------+
    | Id_P | LastName | FirstName | Address        | City     |
    +------+----------+-----------+----------------+----------+
    |    2 | Bush     | George    | Fifth Avenue   | New York |
    |    3 | Carter   | Thomas    | Changan Street | Beijing  |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing  |
    +------+----------+-----------+----------------+----------+
    3 rows in set (0.01 sec)
    
    mysql> SELECT * FROM Persons WHERE City LIKE '%lon%';
    +------+----------+-----------+---------------+--------+
    | Id_P | LastName | FirstName | Address       | City   |
    +------+----------+-----------+---------------+--------+
    |    1 | Aaa      | John      | Oxford Street | London |
    |    4 | Carter   | George    | xford Street  | London |
    +------+----------+-----------+---------------+--------+
    2 rows in set (0.00 sec
    

    12. SQL 와일드카드
    데이터베이스에서 데이터를 검색할 때 SQL 와일드카드를 사용하여 하나 이상의 문자를 대체할 수 있습니다.SQL 와일드카드는 LIKE 연산자와 함께 사용해야 합니다.SQL에서는 다음 와일드카드를 사용할 수 있습니다.
    와일드카드
    묘사
    %
    하나 이상의 문자 대체
    _
    문자만 대체
    [charlist]
    문자 열의 모든 단일 문자
    [^charlist] 또는 [!charlist]
    문자 열에 없는 단일 문자
  • 사례
  • MySql은 [] 작업과 약간 다르므로 LIKE 대신 REGEXP를 사용해야 합니다.
    mysql> SELECT * FROM Persons WHERE City REGEXP '[BO]';
    +------+----------+-----------+----------------+----------+
    | Id_P | LastName | FirstName | Address        | City     |
    +------+----------+-----------+----------------+----------+
    |    1 | Aaa      | John      | Oxford Street  | London   |
    |    2 | Bush     | George    | Fifth Avenue   | New York |
    |    3 | Carter   | Thomas    | Changan Street | Beijing  |
    |    4 | Carter   | George    | xford Street   | London   |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing  |
    +------+----------+-----------+----------------+----------+
    5 rows in set (0.00 sec)
    
    mysql> SELECT * FROM Persons WHERE City REGEXP '^[BO]';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing |
    +------+----------+-----------+----------------+---------+
    2 rows in set (0.00 sec)
    
    mysql> 
    

    자세한 내용은 MySql 기초(一) 참조
    13. IN 연산자
    IN 연산자를 사용하면 WHERE 자문에 여러 값을 지정할 수 있습니다.
  • 문법
  • SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1,value2,...)
    
  • 사례
  • mysql> SELECT * FROM Persons
        -> WHERE LastName IN ('Adams','Carter');
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    3 | Carter   | Thomas    | Changan Street | Beijing |
    |    4 | Carter   | George    | xford Street   | London  |
    +------+----------+-----------+----------------+---------+
    2 rows in set (0.01 sec)
    

    14、BETWEEN
    BETWEEN 연산자는 WHERE 자문에서 사용되며 두 값 사이의 데이터 범위를 선택하는 데 사용됩니다.
    연산자 BETWEEN...AND는 두 값 사이의 데이터 범위를 선택합니다.이 값들은 수치, 텍스트, 날짜일 수 있습니다.
  • 문법:
  • SELECT column_name(s)
    FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2
    
                     ,    NOT    
    

    다른 데이터베이스 대 BETWEEN...AND 조작부호의 처리 방식은 차이가 있다.일부 데이터베이스는'value1'과'value2'사이에 있는 사람을 열거하지만'value1'과'value2'는 포함하지 않습니다.일부 데이터베이스는'value1'과'value2'사이에 있고'value1'과'value2'를 포함하는 사람을 열거합니다.다른 데이터베이스는'value1'과'value2'사이에 있는 사람을 열거하지만'value1'을 포함하지 않습니다.그러므로 데이터베이스가 BETWEEN을 어떻게 처리하는지 확인하십시오...AND 조작부호의!
  • 사례:
  • SELECT * FROM Persons
    WHERE LastName
    NOT BETWEEN 'Adams' AND 'Carter'
    
    mysql> SELECT * FROM Persons
        -> WHERE LastName
        -> NOT BETWEEN 'Adams' AND 'Carter';
    +------+----------+-----------+----------------+---------+
    | Id_P | LastName | FirstName | Address        | City    |
    +------+----------+-----------+----------------+---------+
    |    1 | Aaa      | John      | Oxford Street  | London  |
    |    9 | Wilson   | Fred      | Champs-Elysees | NULL    |
    |    6 | Gates    | Bill      | Xuanwumen 10   | Beijing |
    +------+----------+-----------+----------------+---------+
    3 rows in set (0.00 sec)
    

    15. SQL Alias(별칭)
    SQL을 사용하면 열 이름과 테이블 이름에 앨리어스(Alias)를 지정할 수 있습니다.SQL 문을 쉽게 읽을 수 있습니다.
  • Alias 구문
  • SELECT column_name(s)FROM table_nameAS alias_name
       SQL Alias   
    SELECT column_name AS alias_nameFROM table_name
    
  • 사례:
  • mysql> SELECT p.LastName AS Family, p.FirstName AS Name
        -> FROM Persons as p;
    +--------+--------+
    | Family | Name   |
    +--------+--------+
    | Aaa    | John   |
    | Bush   | George |
    | Carter | Thomas |
    | Carter | George |
    | Wilson | Fred   |
    | Gates  | Bill   |
    +--------+--------+
    6 rows in set (0.00 sec)
    

    좋은 웹페이지 즐겨찾기