MySQL 简单常用的查询

  结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的高级的非过程化的编程语言,是一种数据库查询和 程序设计语言允许用户在高层 数据结构上工作,用于存取数据以及查询、更新和管理 关系数据库系统;同时也是 数据库脚本文件的扩展名

目前主流的数据库系统:Oracle、DB2、SQL Server、MySQL, 这里主要介绍和使用MySQL,完成简单的查询。MySQL

一个关系型数据库管理系统,由瑞典AB 公司开发,目前属于 Oracle 旗下产品。在 WEB 应用方面MySQL是最好的RDBMS

(Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL也是一种关联数据库管理系统,关联

数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

我使用的是MySQL5.6,可视化工具为Navicat Premium,MySQL及工具的配置安装详见我前一天的博客。

MySQL的几个命令:

1.显示数据库列表。

show databases;

2.显示库中的数据表:

show tables;

3.建库:

create database 库名;

4.建表:

use 库名;

create table 表名 (column1 类型,column2 类型);

5.删库和删表:

drop database 库名;

drop table 表名;

6、将表中记录清空:

delete from 表名;

7.显示表中的记录:

select * from 表名;

用户对MySQL数据库的主要操作是:增(insert)、删(delete)、查(select)、改(update),其中insert、update、delete都

可称为修改。我使用工具来建表,当然也可以通过creat代码创建,不过使用工具更快捷,方便设置,遇到的问题也更少,下面图片分别

展示工具建表和代码建表:

MySQL 简单常用的查询

代码建表

MySQL 简单常用的查询

建好表后使用insert into 表名 (column1,column2,column3,[,..columnn]) values (值1,值2,值3,[...值n]);重复此语句变更数据就可创建

好一个表格,接下来就可以进行相关的查询了。一般我们很少进行删除操作,对于一般练习,更新操作也不常用(update 表名 set 字段名

= 新内容 ,… where 条件)。

1.查询表中的所有数据:

select * from 表名;

2.查询所需的数据:

select 字段1,字段2,... from 表名 where 条件;

条件:< ,>,!<,!>,<=,>=,<>,=,!=,any,some,all

这里经常用到distinct(独特的,清楚的)加在select和要查的字段中间:查询的结果相同的只显示前面一个,用于多字段查询时,会清除

所查的相同的字段,而不是行。

eg.SELECT DISTINCT userName AS "用户名",password AS "密码" FROM `user`;

关于NULL:

IS NULL ,IN NOT NULL ,表示的是是否有值,而不是空字段,如下图:

userId=14的sex列为空字段,而userId=19的userName为NULL。

eg.SELECT * FROM `user` WHERE userName IS NULL;

MySQL 简单常用的查询


此表为下面查询 所要用到的信息表:

MySQL 简单常用的查询

3.用 AS 子句为字段取别名:

如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放

到一个新的列里显示,则用AS保留。

eg.SELECT userId AS "用户id",userName AS "用户名",sex AS "性别",password AS "密码",flag AS "标签" FROM `user`;

SELECT userName FROM `user` WHERE sex<1;
SELECT userName FROM `user` WHERE sex<>1;

4.模糊查询(like):

LIKE运算符检验一个包含字符串数据的字段值是否匹配一指定模式。通配符:%:0-任意  _:一个字符。

eg.SELECT * FROM `user` WHERE sex=1 AND `password` LIKE '1%';查询sex=1和密码以1开头的用户信息。

5.用ORDER BY子句排序结果:

ORDER BY子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),默认

是升序。只作用于前面的一个字段,ORDER子句通常放在SQL语句的最后。ORDER子句中定义了多个字段,则按照字段的先后顺序排序。

eg.SELECT sal FROM emp ORDER BY sal DESC;
SELECT sal,deptno FROM emp WHERE 1=1 ORDER BY sal DESC,deptno DESC; deptno的降序排列是在sal的参照基础上排列的。

6.格式函数:

大小写转换,lower   upper。

eg.SELECT ename,LOWER(ename) xin FROM emp ;xin 为查询出来的结果在一个新的列里显示。

连接:concat 每次只能连接2个字段,||可以连接很多

eg.SELECT CONCAT(empno,ename) xin FROM emp;
SELECT empno||ename xin FROM emp;

字段截取SUBSTR

eg.SELECT ename,SUBSTR(ename,3,1),LENGTH(empno) FROM emp;括号参数(要截取的字段,起始位置,截取长度)。

小数点前后位数ROUND

eg.SELECT ROUND(3.1415,1) FROM emp;
SELECT ROUND(3.1415,-1) FROM emp;

7.聚集函数:

计算的结果是一个查询的,不是某一行,子查询

SUM ( ) 求和,

AVG ( ) 平均值,

MAX 最大值,

MIN 最小值,

COUNT ( ) 表达式中记录的数目,

COUNT (* ) 计算记录的数目。

eg.SELECT AVG(sal) FROM emp;
SELECT ename,sal FROM emp WHERE sal>(SELECT AVG(sal) FROM emp);
SELECT ename,MAX(sal) FROM emp;
SELECT ename,MIN(sal) FROM emp;
SELECT SUM(sal) FROM emp;
SELECT COUNT(sal) FROM emp;


本文为我的学习笔记制作,只记录了简单的单表查询,可供入门练习参考,GROUP BY ,HAVING以及连接多表查询均未涉及,日后再行补

充,如有错误,请各位博友不吝指正。