簡單SQL語句語法

SQL日常語句 日常語句
create database wan; #創建數據庫 wan
use wan;
create table web (id int(11) NOT NULL AUTO_INCREMENT,namechar(20) NOT NULL DEFAULT '' COMMENT '站點名稱',url varchar(255) NOT NULL DEFAULT '',alexa int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',country char(10) NOT NULL DEFAULT '' COMMENT '國家',PRIMARY KEY (id)
);

mysql> desc web; 查看錶結構
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(20) | NO | | | |
| url | varchar(255) | NO | | | |
| alexa | int(11) | NO | | 0 | |
| country | char(10) | NO | | | |
+---------+--------------+------+-----+---------+----------------+

INSERT INTO web VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2''2', '淘寶', 'https://www.taobao.com/', '13', 'CN'), ('3', '百度', 'http://www.baidu.coom/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'qq', 'www.qq.com/', '3', 'CN');

mysql> select * from web;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
+----+--------+-------------------------+-------+---------+

select name,country from web; 表中選取 "name" 和 "country" 列
+--------+---------+
| name | country |
+--------+---------+
| Google | USA |
| 淘寶 | CN |
| 百度 | CN |
| 微博 | CN |
| qq | CN |
+--------+---------+

mysql> select distinct country from web;
在表中,一個列可能會包含多個重複值,有時您也許希望僅僅列出不同(distinct)的值。
DISTINCT 關鍵詞用於返回唯一不同的值。
+---------+
| country |
+---------+
| USA |
| CN |
+---------+

WHERE 子句
WHERE 子句用於提取那些滿足指定標準的記錄。
select * from web where country='CN';
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
+----+--------+-------------------------+-------+---------+

運算符          描述

=                      等於
<>                不等於。註釋:在 SQL 的一些版本中,該操作符可被寫成 !=
>                  大於
<                    小於
>=                大於等於
<=                小於等於
BETWEEN  在某個範圍內
LIKE              搜索某種模式
IN                指定針對某個列的多個可能值

AND & OR 運算符
如果第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。
如果第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。
select from web where country='CN' AND alexa > 50;
+----+--------+-----------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-----------------------+-------+---------+
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
+----+--------+-----------------------+-------+---------+
表中選取國家爲 "USA" 或者 "CN" 的所有客戶:
select
from web where country='CN' OR country='USA';
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
+----+--------+-------------------------+-------+---------+
也可以把 AND 和 OR 結合起來(使用圓括號來組成複雜的表達式)。
下面的 SQL 語句從 "Web" 表中選取 alexa 排名大於 "15" 且國家爲 "CN" 或 "USA" 的所有網站:
select * from web where alexa > 15 AND (country='CN' OR country='USA');
+----+--------+-----------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-----------------------+-------+---------+
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
+----+--------+-----------------------+-------+---------+

ORDER BY 關鍵字
ORDER BY 關鍵字用於對結果集按照一個列或者多個列進行排序。
ORDER BY 關鍵字默認按照升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用 DESC 關鍵字。
SQL 語句從 "web" 表中選取所有網站,並按照 "alexa" 列排序
select from web order by alexa;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 5 | qq | www.qq.com/ | 3 | CN |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
+----+--------+-------------------------+-------+---------+
按照降序
select
from web order by alexa desc;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
| 1 | Google | https://www.google.cm/ | 1 | USA |
+----+--------+-------------------------+-------+---------+
下面的 SQL 語句從 "Web" 表中選取所有網站,並按照 "country" 和 "alexa" 列排序:
select * from web order by country,alexa;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 5 | qq | www.qq.com/ | 3 | CN |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 1 | Google | https://www.google.cm/ | 1 | USA |
+----+--------+-------------------------+-------+---------+

INSERT INTO 語句用於向表中插入新記錄。
insert into web (name,url,alexa,country) values ('tb','www.tb.com','4','CN');
select from web;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
| 6 | tb | www.tb.com | 4 | CN |
+----+--------+-------------------------+-------+---------+
insert into web values ('7','7','www.7.com','7','USA');
mysql> select
from web;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
| 6 | tb | www.tb.com | 4 | CN |
| 7 | 7 | www.7.com | 7 | USA |
+----+--------+-------------------------+-------+---------+

UPDATE 語句
UPDATE 語句用於更新表中已存在的記錄。
把name=7 換成jd url 換成jd.com
update web set name='jd',url='jd.com' where id=7;
select * from web;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
| 6 | tb | www.tb.com | 4 | CN |
| 7 | jd | jd.com | 7 | USA |
+----+--------+-------------------------+-------+---------+

DELETE 語句
DELETE 語句用於刪除表中的行
delete from web where name='jd';
select * from web;
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
| 6 | tb | www.tb.com | 4 | CN |
+----+--------+-------------------------+-------+---------+
可以在不刪除表的情況下,刪除表中所有的行。這意味着表結構、屬性、索引將保持不變:

DELETE FROM table_name;

DELETE * FROM table_name;

SELECT TOP 子句
SELECT TOP 子句用於規定要返回的記錄的數目。

SELECT TOP 子句對於擁有數千條記錄的大型表來說,是非常有用的。
select * from web limit 5; 前5條
+----+--------+-------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+-------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘寶 | https://www.taobao.com/ | 13 | CN |
| 3 | 百度 | http://www.baidu.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | qq | www.qq.com/ | 3 | CN |
+----+--------+-------------------------+-------+---------+

LIKE 操作符
LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。
select from web where name like 'G%';
+----+--------+------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
+----+--------+------------------------+-------+---------+
select
from web where name like '%q';
+----+------+-------------+-------+---------+
| id | name | url | alexa | country |
+----+------+-------------+-------+---------+
| 5 | qq | www.qq.com/ | 3 | CN |
+----+------+-------------+-------+---------+

SQL 語句選取 name 包含模式 "oo" 的所有客戶:

實例
SELECT * FROM Websites
WHERE name LIKE '%oo%';

通過使用 NOT 關鍵字,您可以選取不匹配模式的記錄。

下面的 SQL 語句選取 name 不包含模式 "oo" 的所有客戶:

實例
SELECT * FROM Websites
WHERE name NOT LIKE '%oo%';

SQL 通配符
在 SQL 中,通配符與 SQL LIKE 操作符一起使用。

SQL 通配符用於搜索表中的數據。

在 SQL 中,可使用以下通配符:

通配符 描述
% 替代 1 個或多個字符
_ 替代一個字符
[charlist] 字符列中的任何單一字符
[^charlist] 或 [!charlist] 不在字符列中的任何單一字符

中使用 REGEXP 或 NOT REGEXP 運算符 (或 RLIKE 和 NOT RLIKE) 來操作正則表達式。

下面的 SQL 語句選取 name 以 "G"、"F" 或 "s" 開始的所有網站:

實例
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';

SQL 語句選取 name 以 A 到 H 字母開頭的網站:

實例
SELECT * FROM Websites
WHERE name REGEXP '^[A-H]';

SQL 語句選取 name 不以 A 到 H 字母開頭的網站:

實例
SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';

IN 操作符
IN 操作符允許您在 WHERE 子句中規定多個值。

SQL IN 語法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
select * from web where name IN ('google','qq');
+----+--------+------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------+------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 5 | qq | www.qq.com/ | 3 | CN |
+----+--------+------------------------+-------+---------+

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章