高级的非过程化的编程语言,是一种数据库查询和 程序设计语言,允许用户在高层 数据结构上工作,用于存取数据以及查询、更新和管理 关系数据库系统;同时也是 数据库脚本文件的扩展名。
目前主流的数据库系统: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代码创建,不过使用工具更快捷,方便设置,遇到的问题也更少,下面图片分别
展示工具建表和代码建表:
代码建表
建好表后使用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;
此表为下面查询 所要用到的信息表:
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以及连接多表查询均未涉及,日后再行补
充,如有错误,请各位博友不吝指正。