PHP学习

SQL语句学习 之 路慢慢

2017-02-25  本文已影响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表
ALTER TABLE Websites ADD COLUMN `address` varchar(255)NOT NULL COMMENT 'this is address' AFTER `alexa`;
ALTER TABLE Websites DROP `address`;

高级教程

SELECT TOP
SELECT * FROM Websites LIMIT 2;
通配符
通配符
SELECT * FROM Websites WHERE name LIKE 'G%';
SELECT * FROM Websites WHERE name REGEXP '^[GFs]';
IN
IN操作符
SELECT * FROM Websites WHERE name IN ('Google','菜鸟教程');
BETWEEN
BETWEEN操作符
SELECT * FROM Websites WHERE alexa BETWEEN 1 AND 20;
别名
别名
SELECT name AS n, country AS c FROM Websites AS w;
连接(JOIN)
连接(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关键字
//以下实例中我们把 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关键字
//以下实例中我们把 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
未完待续
上一篇 下一篇

猜你喜欢

热点阅读