mysql学习笔记
基本结果有 SELECT 子句,FROM 子句,WHERE 子句组成的查询块 SELECT <字段名> /ntl&FROM <表或视图名> WHERE <查询条件>
SELECT
命令语法:
SELECT [ALL| DISTINCT]
{*|table.*|[table.] field1 [as alias1] [,[table.] field2 [as alias2]][...]}
FROM 表名 [] ,表2
命令含义:
从数据库表里查询数据 结果被存在一个结果集中,称为结果集
(1)从“t_persons”表中选取所有的列
SELECT * FROM t_persons;
(2)查询字段名为“last_name”和“first_name”的列内容(从名为“t_persons”的数据库表)
SELECT last_name,first_name FROM t_persons;
distinct(去重)
命令语法:
select distinct 列名称 from 表名称;
命令含义:
去掉查询列名称中的重复数据
例如:
select DISTINCT city from t_persons;
从 t_persons 表里面查询所有不相同的城市名
关键字 DISTINCT 用于返回唯一不同的值
select city from t_persons;
alias(别名)
通过使用 SQL ,可以为列名称和表名称指定别名(Alias)
表语法:
SELECT 列名称 FROM 表名称 AS 别名;
表“t_persons”,我们指定别名“p”
SELECT p.last_name FROM t_persons AS p WHERE p.last_name='Adams' OR p.first_name='Carter';
列语法:
SELECT 列名称 AS 别名 FROM 表名称;
表“t_persons”中列“last_name”和“first_name”,分别指定别名“Family”和“Name”
SELECT last_name AS Family, first_name AS Name FROM t_persons;
LIMIT
命令语法:
SELECT 列名称 FROM 表名称 LIMIT 偏移量;
命令含义:
查询返回指定的数目 例如:
SELECT * FROM t_persons LIMIT 3; //返回前3条
SELECT * FROM t_persons LIMIT 3,1;//返回3条后的一条数据——即第四条数据
WHERE
命令语法:
SELECT [ALL| DISTINCT]
{*|table.*|[table.] field1 [as alias1] [,[table.] field2 [as alias2]][...]}
FROM 表名 [] ,表2
[WHERE ...]
命令含义:
根据条件从表中查询数据,如果有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句
IN
IN 操作符可以在 WHERE 子句中规定多个值
命令语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1, 值2,…);
命令实例:
1、从表“t_persons”中选取姓氏为“Adams”和“Carter”的人
select last_name from t_persons where last_name in('Adams','Carter');
select * from t_persons where last_name in('Adams','Carter');
in 后面不仅仅可以是字符串,还可以是记录集
select * from t_persons where last_name in(select last_name from t_persons);
运算符
注:在一些版本的SQL中,操作符 <> 可以写为 !=
SELECT * FROM t_persons WHERE year>1975;
LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
SQL 通配符必须与 LIKE 运算符一起使用
命令语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 表达式
命令实例:
1、从“t_persons”表中选取居住在以“g”结尾的城市里的人:
select * from t_persons where city like "%g"; //错
select * from t_persons where city like "%g"; //对
如果报ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
的错,可能是有什么符号的编码问题。比如我上面第一个就是%的问题。因此如果复制的时候出错了,可能自己手敲一遍就好了
2、从“t_persons”表中选取居住不包含“eij”的城市里的人:
select * from t_persons where city not like '%eij%';
select * from t_persons where first_name like '_eij%';
between
between 操作符在 where 子句中使用,作用是选取介于两个值之间的数据范围
操作符between … and 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
命令语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;
查询表中列值在值1与值2之间的数据
select * from t_persons where year between 1975 and '1985';
数字可加引号可不加
select * from t_persons where last_name between 'b' and 'g';
字符必须加引号 b < bush < g < gates 所以产生这种“包前不包后”的现象
不包含:select * from t_persons where last_name not between 'b' and 'g';
and & or
and 两个条件都要成立 or 只要有一个条件成立就行
order by(排序)
默认按照升序对记录进行排序 asc
如果想要降序排序,使用 DESC 关键字
select * from t_persons order by city desc;
按照城市首字母,逆序输出
join
JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
连接分为:
INNER JOIN(JOIN 内连接):
如果表中有至少一个匹配,则返回行
SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名=表2.列名
LEFT JOIN(左连接):
即使右表中没有匹配,也从左表返回所有的行
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名=表2.列名
RIGHT JOIN(右连接):
即使左表中没有匹配,也从右表返回所有的行
SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名=表2.列名
FULL JOIN(全连接):
只要其中一个表中存在匹配,就返回行
SELECT 列名 FROM 表1 FULL JOIN 表2 ON 表1.列名=表2.列名
union
用于合并两个或多个 SELECT 语句的结果集
union 语法:
SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2
select last_name from t_persons union select city from t_persons;
如果要允许重复的值,得使用 union all。
select last_name from t_persons union all select city from t_persons;
- 在CentOS 7上安装Nginx服务器
- 卷积神经网络 | 深度学习笔记1
- 【直播】我的基因组65:看看哪些基因的突变较多,哪些较少
- angular之interceptors拦截器
- js list数据 转 树状 层级 JSON,递归生成树状 层级 JSON
- jquery 图片文件转base64 显示
- AngularJS 用 $http.jsonp 跨域SyntaxError问题
- 简单的java socket 示例
- Hadoop二次开发环境构建
- Android EditText 获得输入焦点 以及requestfocus()失效的问题
- 【直播】我的基因组68:看看哪些基因的突变较多,哪些较少
- GDI+编程
- GDI编程
- ADO访问数据库
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Java Stream函数式编程第三篇:管道流结果处理
- MySQL慢查询日志
- Pandas处理时间序列数据的20个关键知识点
- CentOS7下的LNMP环境搭建Dedecms网站
- 持久层框架JPA与Mybatis该如何选型
- 技术分享 | Online DDL 工具 pt-osc
- 基于hexo框架搭建个人博客【技术创作训练营】
- 对比讲解lambda表达式与传统接口函数实现方式
- 如何使用Java8 Stream API对Map按键或值进行排序
- TencentOS tiny RTOS快速入门
- Nginx用户认证与域名重定向
- LNMP架构介绍与搭建
- Mac 最新版Python3.7.4安装配置,设置默认python版本
- 15个应该掌握的Jupyter Notebook 使用技巧
- python 环境重启方法,系统环境变量配置后python生效设置方法