——sql学习文档
一、基础创建查询语法
1、创建表websites如下
create table Websites(
id int primary key,
name varchar(20),
url varchar(100),
alexa int,
country varchar(20));
insert into websites(id,name,url,alexa,country) values(1,’Google’,’https://www.google.com/‘,1,USA);
id | name | url | alexa | country |
---|---|---|---|---|
1 | https://www.google.com/ | 1 | USA | |
2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
4 | 微博 | http://weibo.com/ | 20 | CN |
5 | https://www.facebook.com/ | 3 | USA |
2、基本语法
- (1)SELECT DISTINCT 语句用于返回唯一不同的值。
SELECT DISTINCT column_name,column_name
FROM table_name;
例子:select distinct country from websites;
country |
---|
USA |
CN |
2. (2)where子句中的运算符
运算符 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
.>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
1、between
- BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
例子:SQL 语句选取 alexa 介于 1 和 20 之间的所有网站:
select * from websites where alexa between 1 and 20;
id | name | url | alexa | country |
---|---|---|---|---|
1 | https://www.google.com/ | 1 | USA | |
2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
4 | 微博 | http://weibo.com/ | 20 | CN |
5 | https://www.facebook.com/ | 3 | USA |
- 带有in的between操作符实例
选取alexa介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:
SELECT * FROM Websites
WHERE (alexa BETWEEN 1 AND 20)
AND NOT country IN ('USA', 'IND');
id | name | url | alexa | country |
---|---|---|---|---|
2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
4 | 微博 | http://weibo.com/ | 20 | CN |
- 带有文本值的 BETWEEN(NOT BETWEEN) 操作符实例
选取 name 以介于 ‘A’ 和 ‘H’ 之间字母开始的所有网站:
select * from websites where name between(not between) 'A' and 'H';
id | name | url | alexa | country |
---|---|---|---|---|
1 | https://www.google.com/ | 1 | USA | |
5 | https://www.facebook.com/ | 3 | USA |
id | name | url | alexa | country |
---|---|---|---|---|
2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
4 | 微博 | http://weibo.com/ | 20 | CN |
- 带有日期值的 BETWEEN 操作符实例
下面是 “access_log” 网站访问记录表的数据,其中:
aid:为自增 id。
site_id:为对应 websites表的网站 id。
count:访问次数。
date:为访问日期。
CREATE TABLE access_log (
aid int(11) NOT NULL AUTO_INCREMENT,
site_id int(11) NOT NULL DEFAULT '0' COMMENT '网站id',
count int(11) NOT NULL DEFAULT '0' COMMENT '访问次数',
date date NOT NULL,
PRIMARY KEY (aid)
);
aid | site_id | count | date |
---|---|---|---|
1 | 1 | 45 | 2016-05-10 |
2 | 3 | 100 | 2016-05-13 |
3 | 1 | 230 | 2016-05-14 |
4 | 2 | 10 | 2016-05-14 |
5 | 5 | 205 | 2016-05-14 |
6 | 4 | 13 | 2016-05-15 |
7 | 3 | 220 | 2016-05-15 |
8 | 5 | 545 | 2016-05-16 |
9 | 3 | 201 | 2016-05-17 |
选取 date 介于 ‘2016-05-10’ 和 ‘2016-05-14’ 之间的所有访问记录:
SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';
aid | site_id | count | date |
---|---|---|---|
1 | 1 | 45 | 2016-05-10 |
2 | 3 | 100 | 2016-05-13 |
3 | 1 | 230 | 2016-05-14 |
4 | 2 | 10 | 2016-05-14 |
5 | 5 | 205 | 2016-05-14 |
2.Link