mysql之SQL入门与提升(一)
一.基本的增删改查
1.1首先建一张表
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;
-- ----------------------------
-- Records of `websites`
-- ----------------------------
BEGIN;
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '京东', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
1.2SQL INSERT INTO 语句
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
VALUES (value1,value2,value3,...);
实例
SQL DELETE 语法
WHERE some_column=some_value;
实例
SQL UPDATE 语法
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
实例
SQL SELECT 语法
FROM table_name;
与
实例
1.6SQL SELECT DISTINCT 语句
SQL SELECT DISTINCT 语法
FROM table_name;
实例
SQL WHERE 语法
FROM table_name
WHERE column_name operator value;
实例
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
实例
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
SQL ORDER BY 语法
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
实例
ORDER BY 多列的时候,eg:
order by A,B 这个时候都是默认按升序排列
order by A desc,B 这个时候 A 降序,B 升序排列
order by A ,B desc 这个时候 A 升序,B 降序排列 二.SQL进阶篇
2.1LIMIT 限制数量,对于拥有数千条记录的大型表来说,是非常有用的。
SELECT *
FROM Websites
LIMIT 5;
2.2SQL LIKE
SQL LIKE 语法
FROM table_name
WHERE column_name LIKE pattern;
实例
SELECT * FROM Websites WHERE name LIKE '%oo%';
实例
实例
SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
实例
SELECT * FROM Websites WHERE name REGEXP '^[A-H]';
下面的 SQL 语句选取 name 不以 A 到 H 字母开头的网站:
SELECT * FROM Websites WHERE name REGEXP '^[^A-H]';
2.4SQL IN
SQL IN 语法
FROM table_name
WHERE column_name IN (value1,value2,...);
实例
IN 与 = 的异同
- 相同点:均在WHERE中使用作为筛选条件之一、均是等于的含义
- 不同点:IN可以规定多个值,等于规定一个值
IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);=
SELECT column_name(s)
FROM table_name
WHERE column_name=value1;in 与 = 的转换
select * from Websites where name in ('Google','百度');
可以转换成 = 的表达:
select * from Websites where name='Google' or name='百度';
2.5SQL BETWEEN
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;实例
SELECT * FROM Websites WHERE alexa BETWEEN 1 AND 20;
SELECT * FROM Websites WHERE alexa NOT BETWEEN 1 AND 20;下面的 SQL 语句选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:SELECT * FROM Websites WHERE (alexa BETWEEN 1 AND 20)AND country NOT IN ('USA', 'IND');
下面的 SQL 语句选取 name 以介于 'A' 和 'H' 之间字母开始的所有网站:
SELECT * FROM Websites WHERE name BETWEEN 'A' AND 'H';下面的 SQL 语句选取 name 不介于 'A' 和 'H' 之间字母开始的所有网站SELECT * FROM Websites WHERE name NOT BETWEEN 'A' AND 'H';SELECT * FROM access_log WHERE date BETWEEN '2016-05-10' AND '2016-05-14';
最新文章
- WCF与WebService的区别
- PHP store session with couchbase
- iOS 为视图添加抖动效果
- 改变图片尺寸(python)
- Linux基础: 挂载镜像文件(Mount &; ISO)
- Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 (主要是NSLayoutConstraint 的使用)
- 使用Firebug和FirePHP调试PHP
- PHP草根论之设计模式-訪问者模式
- Java他们其中一个IO(一)
- datagridcolumn单元格怎么显示查询到的某个表的字段值(字段值可能为多个)
- PHP图形处理函数试题
- java的多线程初体验
- SpringCloud的应用发布(四)vmvare+linux,网关代理
- Spring AOP (一)
- 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题
- 个人作业-Week1(新增详细说明)
- vue中less的使用
- fedora如何删除某个包且不删除依赖它的相关包
- iOS NSURLSession VS NSURLConnection
- Oracle存储过程中游标的简单使用
热门文章
- mysql的事务隔离级别及其使用场景
- machine learning for hacker记录(1) R与机器学习
- performSelector: 与 dispatch_time 异同
- Protocol_OSPF
- Jpa生成mysql注释,添加ODBC数据源导入数据到EA
- jquery特效(8)—倒计时
- Codeforces Round #254 (Div. 2) A. DZY Loves Chessboard —— dfs
- Transaction事务注解和DynamicDataSource动态数据源切换问题解决
- FusionCharts Free 甘特图
- 【应用】图片翻转js