MySql의 SQL 문장 학습 노트 (1)
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 ( )
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)
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
SELECT FROM ORDER BY DESC/ASC, DESC/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)
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> 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 문을 쉽게 읽을 수 있습니다.
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)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.