SELECT <列名>,······
FROM <表名>;
CREATE TABLE books
(name CHAR(100) NOT NULL,
sale_price INTEGER ,
publisher CHAR(100) ,
pages INTEGER ,
PRIMARY KEY (name));
# 由于我使用的是MySQL,如果有使用PostgreSQL的同学,需要将START TRANSACTION; 改写为 BEGIN TRANSACTION;
START TRANSACTION;
INSERT INTO books VALUES ('Python编程从入门到实践','89','人民邮电出版社','460');
INSERT INTO books VALUES ('Python学习手册','219','机械工业出版社','1467');
INSERT INTO books VALUES ('流畅的Python册','139','人民邮电出版社','600');
INSERT INTO books VALUES ('利用Python进行数据分析','119','机械工业出版社','476');
INSERT INTO books VALUES ('Python编程快速上手','69','人民邮电出版社','391');
COMMIT;
# 我们现在来看一看创建的这个表
SELECT * FROM books;
========output========
+------------------------+------------+----------------+-------+
| name | sale_price | publisher | pages |
+------------------------+------------+----------------+-------+
| Python学习手册 | 219 | 机械工业出版社 | 1467 |
| Python编程从入门到实践 | 89 | 人民邮电出版社 | 460 |
| Python编程快速上手 | 69 | 人民邮电出版社 | 391 |
| 利用Python进行数据分析 | 119 | 机械工业出版社 | 476 |
| 流畅的Python册 | 139 | 人民邮电出版社 | 600 |
+------------------------+------------+----------------+-------+
SELECT name, sale_price FROM books
WHERE sale_price > 100;
======output======
+------------------------+------------+
| name | sale_price |
+------------------------+------------+
| Python学习手册 | 219 |
| 利用Python进行数据分析 | 119 |
| 流畅的Python册 | 139 |
+------------------------+------------+
从显示出的结果可以看出来,我们利用WHERE语句将价钱大于100的书籍和对应的价钱显示出来。
SELECT name, sale_price/pages AS 'per pages price'
FROM books
WHERE sale_price > 100;
========output========
+------------------------+-----------------+
| name | per pages price |
+------------------------+-----------------+
| Python学习手册 | 0.1493 |
| 利用Python进行数据分析 | 0.2500 |
| 流畅的Python册 | 0.2317 |
+------------------------+-----------------+
这个实例中,我们学到了如何利用AS 生成一个新显示的列。
SELECT name
FROM books
WHERE name LIKE 'Python%';
==========output==========
+------------------------+
| name |
+------------------------+
| Python学习手册 |
| Python编程从入门到实践 |
| Python编程快速上手 |
+------------------------+
在本案例中,我们学到了更加模糊的谓词LIKE 的用法,同时还学到了模糊查找关键字符%,如果我们想查找所有书名形为’XXXXPython’,我们可以使用 ‘%Python’,同样的,我们想找出所有书名包含’Python’的书,则为’%Python%’。
SELECT name,sale_price,pages
FROM books
WHERE sale_price > 100 OR pages > 400;
========output========
+------------------------+------------+-------+
| name | sale_price | pages |
+------------------------+------------+-------+
| Python学习手册 | 219 | 1467 |
| Python编程从入门到实践 | 89 | 460 |
| 利用Python进行数据分析 | 119 | 476 |
| 流畅的Python册 | 139 | 600 |
+------------------------+------------+-------+
在这个案例中,我们学到了在WHERE子句中,我们可以通过使用形如’OR’的逻辑运算符来显示出我们需要的数据。同样,也可以使用’AND’(表示“和”)和’NOT’(表示“不是 ~ ”)
SELECT name,sale_price,pages
FROM books
WHERE sale_price > 100 XOR pages > 400;
==========output==========
+------------------------+------------+-------+
| name | sale_price | pages |
+------------------------+------------+-------+
| Python编程从入门到实践 | 89 | 460 |
+------------------------+------------+-------+
我们可以清楚看到,使用XOR时,只会筛选出符合一个条件的结果。在本案例中,就是页码大于400,同时我价钱并不大于100
)
SELECT name, ROUND(sale_price/6.9,2) AS 'sale_price in dollar'
FROM books
WHERE pages > 400;
======output======
+------------------------+----------------------+
| name | sale_price in dollar |
+------------------------+----------------------+
| Python学习手册 | 31.74 |
| Python编程从入门到实践 | 12.90 |
| 利用Python进行数据分析 | 17.25 |
| 流畅的Python册 | 20.14 |
+------------------------+----------------------+
ROUND函数为四舍五入函数,他接受需要四舍五入的列和精度,即ROUND(‘列名’,x)列名可以形如本案例中sale_price/6.9这样的运算式,x为精度。可以定义为负值,如果定义为负值。就会表示小数点前的四舍五入。