一.基本的增删改查

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 语句

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

实例

INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');
 
1.3SQL DELETE 语句

SQL DELETE 语法

DELETE FROM table_name
WHERE some_column=some_value;

实例

DELETE FROM Websites WHERE name='百度' AND country='CN';
 
1.4SQL UPDATE 语句

SQL UPDATE 语法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

实例

UPDATE Websites SET alexa='5000', country='USA' WHERE name='京东';
 
1.5SQL SELECT 语句

SQL SELECT 语法

SELECT column_name,column_name
FROM table_name;

SELECT * FROM table_name;

实例

SELECT name,country FROM Websites;
SELECT * FROM Websites;
 

1.6SQL SELECT DISTINCT 语句

SQL SELECT DISTINCT 语法

SELECT DISTINCT column_name,column_name
FROM table_name;

实例

SELECT DISTINCT country FROM Websites;
 
1.7SQL WHERE 子句

SQL WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

实例

SELECT * FROM Websites WHERE country='CN';
 
1.8SQL AND & OR 运算符

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

实例

SELECT * FROM Websites WHERE country='CN' AND alexa > 50;
 
1.9SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

SQL ORDER BY 语法

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

实例

SELECT * FROM Websites ORDER BY alexa;
SELECT * FROM Websites ORDER BY alexa DESC;
SELECT * FROM Websites ORDER BY country,alexa;

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 语法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

实例

SELECT * FROM Websites WHERE name LIKE 'G%';
SELECT * FROM Websites WHERE name LIKE '%oo%';
SELECT * FROM Websites WHERE name NOT LIKE '%oo%';

2.3SQL 通配符
2.3.1 % 通配符

实例

SELECT * FROM Websites WHERE url LIKE 'https%'

SELECT * FROM Websites WHERE url LIKE '%oo%';

2.3.2 _ 通配符

实例

SELECT * FROM Websites WHERE name LIKE '_oogle';

SELECT * FROM Websites WHERE name LIKE 'G_o_le';

2.3.3 REGEXP 或 NOT REGEXP通配符

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

实例

SELECT * FROM Websites WHERE name REGEXP '^[GFs]';
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 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

实例

SELECT * FROM Websites WHERE name IN ('Google','菜鸟教程');

  1. 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;
     
  2. 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';

     
     
     
     
     
 
 
 

mysql之SQL入门与提升(一)的更多相关文章

  1. mysql之SQL入门与提升(二)

    在mysql之SQL入门与提升(一)我们已经有了些许基础,今天继续深化 先造表 SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- -------------- ...

  2. mysql之SQL入门与提升(四)——终结篇,函数

    一.SQL Aggregate (聚合)函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值. AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回 ...

  3. mysql之SQL入门与提升(三)

    今天继续讲mysql数据库 先创建一张Persons表 CREATE TABLE Persons(P_Id int NOT NULL,LastName varchar(255) NOT NULL,Fi ...

  4. mysql基本sql语句大全(提升用语篇)

    1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:s ...

  5. 基于MySQL 的 SQL 优化总结

    文章首发于我的个人博客,欢迎访问.https://blog.itzhouq.cn/mysql1 基于MySQL 的 SQL 优化总结 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 ...

  6. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

  7. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  8. 数据库中聚合索引(MySQL和SQL Server区别)

    一.聚集索引和非聚集索引 聚集索引:类似字典的拼音目录.表中的数据按照聚集索引的规则来存储的.就像新华字典.整本字典是按照A-Z的顺序来排列.这也是一个表只能有一个聚集索引的原因.因为这个特点,具体索 ...

  9. MySql概述及入门(五)

    MySql概述及入门(五) MySQL集群搭建之读写分离 读写分离的理解 为解决单数据库节点在高并发.高压力情况下出现的性能瓶颈问题,读写分离的特性包括会话不开启事务,读语句直接发送到 salve 执 ...

随机推荐

  1. 【LeetCode】Construct Binary Tree from Preorder and Inorder Traversal

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  2. office web apps 整合到自己项目中(wopi实现在线预览编辑)

    借助office web apps实现在线预览和在线编辑 我所有的代码都是用go语言编写,你可以直接编译后使用,不用再有其他的操作. 最近项目实在太忙,这几天才有时间,这次是重头戏,要好好琢磨一下怎么 ...

  3. HBase开发

    MapReduce接口 HBase提供了TableInputFormat.TableOutputFormat.TableMapper和TableReducer类来支持使用MapReduce框架处理HB ...

  4. vue-面试

    1.单页面应用与多页面应用的去别 2.简述一下Sass.Less,且说明区别? 他们是动态的样式语言,是CSS预处理器,CSS上的一种抽象层.他们是一种特殊的语法/语言而编译成CSS.变量符不一样,l ...

  5. [coci2011]友好数对 容斥

    无趣的小x在玩一个很无趣的数字游戏.他要在n个数字中找他喜欢友好数对.他对友好数对的定义是:如果有两个数中包含某一个以上相同的数位(单个数字),这两个数就是友好数对.比如:123和345 就是友好数对 ...

  6. HDU1102 Constructing Roads —— 最小生成树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题解: 纯最小生成树,只是有些边已经确定了要加入生成树中,特殊处理一下这些边就可以了. krus ...

  7. 常见的LINUX发行版安装libiconv库方法

    今天编译程序,发现程序报错,如下 cannot find -liconv collect2: ld returned 1 exit status 或者 undefined reference to ` ...

  8. Java Web 项目打包脚本

    可用于 (但不限于) Eclipse 项目. 一次性生成:1. Java doc .zip 包:2. Java 源代码 .zip 包:3. Java 二进制文件 .jar 包:4. Java 源代码加 ...

  9. 10个常见的 Android 新手误区

    在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台.它不仅是一个廉价的工具,而且有着良好的开发社区,以及从所周知的编程语言(Java),使得开发A ...

  10. struts2 小例子(教训篇)

    学了一阵子的struts2了,到了最后,想自己写个小程序,发现最简单的配置文件都 竟然能弄错,是我这几天睡眠不足么.怎么可能,爱好这门的,怎么会这样.这样真的很伤心啊.小小心灵受不了这种打击啊.... ...