美文网首页PHP学习
SQL语句学习 之 路慢慢

SQL语句学习 之 路慢慢

作者: 笨笨编程 | 来源:发表于2017-02-25 12:04 被阅读86次

基础教程

  • 删除一张表:
DROP TABLE IF EXISTS `websites`;
  • 创建一张表
CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(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`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
websites表
  • DISTINCT 关键字:用于返回唯一不同的值。
  • 插入和删除某一列
ALTER TABLE Websites ADD COLUMN `address` varchar(255)NOT NULL COMMENT 'this is address' AFTER `alexa`;
ALTER TABLE Websites DROP `address`;

高级教程

SELECT TOP
  • 从 "Websites" 表中选取头两条记录:
SELECT * FROM Websites LIMIT 2;
通配符
通配符
  • 下面的 SQL 语句选取 name 以字母 "G" 开始的所有客户:
SELECT * FROM Websites WHERE name LIKE 'G%';
  • MySQL 中使用 REGEXPNOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

  • 下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:

SELECT * FROM Websites WHERE name REGEXP '^[GFs]';
IN
IN操作符
  • 下面的 SQL 语句选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:
SELECT * FROM Websites WHERE name IN ('Google','菜鸟教程');
BETWEEN
BETWEEN操作符
  • 下面的 SQL 语句选取 alexa 介于 1 和 20 之间的所有网站:
SELECT * FROM Websites WHERE alexa BETWEEN 1 AND 20;
别名
别名
  • 下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号:
SELECT name AS n, country AS c FROM Websites AS w;
连接(JOIN)
连接(JOIN)
  • 请注意,"Websites" 表中的 "id" 列指向 "access_log" 表中的字段 "site_id"。上面这两个表是通过 "site_id" 列联系起来的。
    然后,如果我们运行下面的 SQL 语句(包含 INNER JOIN):
    SELECT Websites.id, Websites.name, access_log.count, access_log.date FROM Websites INNER JOIN zaccess_log ON Websites.id=access_log.site_id;
    查询结果
    JOIN分类
INNER JOIN
INNER JOIN关键字
SELECT Websites.name, access_log.count, access_log.date FROM Websites INNER JOIN zaccess_log ON Websites.id=access_log.site_id ORDER BY access_log.count;
执行结果
LEFT JOIN
LEFT JOIN关键字
  • 下面的 SQL 语句将返回所有网站及他们的访问量(如果有的话)。
//以下实例中我们把 Websites 作为左表,zaccess_log 作为右表:
SELECT w.name, w.url, z.count, z.date FROM websites AS w LEFT JOIN zaccess_log AS z ON w.id=z.site_id ORDER BY z.count DESC;
执行结果
RIGHT JOIN
RIGHT JOIN关键字
  • 下面的 SQL 语句将返回网站的访问记录。
//以下实例中我们把 zaccess_log 作为左表,Websites 作为右表:
SELECT w.name, w.url, z.count, z.date FROM zaccess_log AS z RIGHT JOIN websites AS w ON w.id=z.site_id ORDER BY z.count DESC;
执行结果
FULL OUTER JOIN
FULL OUTER JOIN关键字
//注:MySQL中不支持 FULL OUTER JOIN,你可以在 SQL Server 测试以下实例。
SELECT w.name, w.url, z.count, z.date FROM zaccess_log AS z RIGHT JOIN websites AS w ON w.id=z.site_id ORDER BY z.count DESC;
UNION
UNION操作符
执行结果(ALL)
执行结果
SELECT INTO
未完待续

相关文章

  • SQL语句学习 之 路慢慢

    基础教程 删除一张表: 创建一张表 DISTINCT 关键字:用于返回唯一不同的值。 插入和删除某一列 高级教程 ...

  • 数据库SQL语句

    数据库之SQL语句(二) 数据库之SQL语句(一)[https://www.jianshu.com/p/460e3...

  • mysql必知必会(19):插入数据

    一、数据插入 select是最常用的sql语句 但是还有3个经常使用的SQL语句需要学习。 下面学习insert ...

  • MySQL数据库编写SQL语句利器---mycli

    MySQL数据库的操作是利用SQL语句完成SQL语句的操作。 对于初学者,学习SQL语句是操作数据库的必经之路,但...

  • MySql分组查询前N条记录

    Sql语句 SQL语句解析

  • Mybatis入门(三)之动态sql

    Mybatis入门之动态sql 动态拼接sql语句,在我的理解就是相当于Java中的逻辑控制语句(if,,swit...

  • SQL语句学习

    上次写的爬淘宝评论爬虫还没解决数据存储不全的问题,后来想想,这样的几十行代码,问题挺多 的,一是速度太慢,二是数据...

  • SQL 语句学习

    写在前面 上个星期一直都在准备之前的面试,也没有学习其他的新东西。所以博客很久没有更新了。从这次开始,我们要进行数...

  • SQL语句学习

    一、SQL语言按照实现的功能不同,主要分为3类: 1、数据操纵语言(DML):主要用来处理数据库中的数据内容。允许...

  • SQL语句学习

    1、select 语句 选择表内数据,结果被存储在一个结果表中(称为结果集)。 select 列名称 f...

网友评论

    本文标题:SQL语句学习 之 路慢慢

    本文链接:https://www.haomeiwen.com/subject/gqssbttx.html