与MySQL的第一次亲密接触
1 数据库的相关介绍
1.1 数据库的好处
1、可以持久化数据到本地
2、结构化查询
1.2 数据库的常见概念 ★
Web 页<<<服务器<<<数据库
1、DB(database):数据库,存储数据的容器
2、DBMS(DatabaseManagementSystem):数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB【MySQL、Oracle(贵)、DB2(适合海量数据)、SqlServer(微软的)】
3、SQL(StructureQueryLanguage):结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,简单易学,功能强大,而是几乎所有的主流数据库软件通用的语言
4、DBA:专门用来管理数据库的人
1.3 数据库存储数据的特点
1、数据存放到表中,然后表再放到库中
2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己
3、表中有一个或多个列,列又称为“字段”,相当于java中“属性”
4、表中的每一行数据,相当于java中“对象”
1.4 常见的数据库管理系统
mysql、oracle、db2、sqlserver
2 MySQL的介绍
2.1 MySQL的背景
前身属于瑞典的一家公司,MySQL AB
08年被sun公司收购,09年sun被oracle收购
2.2 MySQL的优点
1、开源、免费、成本低
2、性能高、移植性也好
3、体积小,便于安装
2.3 MySQL的安装
DBMS分为两类:
—基于共享文件系统的DBMS(Access)
—基于客户机——服务器的DBMS(mysql、oracle、sqlserver)
属于c/s架构的软件,一般来讲安装服务端
企业版(收费)
区版(免费)
2.4 MySQL服务的启动和停止
方式一:通过命令行
方式二:计算机**——右击——管理——**服务
2.5 MySQL服务的登录和退出
3 DQL语言(查询语言)
3.1 最基础
3.1.1 MySQL常见命令:
3.1.1.1 查看当前所有的数据库
3.1.1.2 打开指定的库
3.1.1.3 查看当前库的所有表
3.1.1.4 查看其它库的所有表
3.1.1.5 创建表
3.1.1.6 查看表结构
3.1.1.7 查看服务器版本
方式一:登录到MySQL服务端
方式二:没有登录到MySQL服务端
或
3.1.2 MySQL语法规范
1、 不区分大小写,但是建议关键字大写,表名、列名小写
2、 每条命令最好用分 结尾
3、 每条命令根据需要,可以伸缩
4、 注释:
单行注释:#文字、 –文字
多行注释:/注释文字/
3.2 基础查询
3.2.1 语法
3.2.2 特点
3.2.3 进阶1:基础查询
语法:
类似于Java中 :System.out.println(要打印的东西);
特点:
-
通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
-
要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数
1、查询列表可以是字段、常量、表达式、函数,也可以是多个
2、查询结果是一个虚拟表
3.2.3 示例
1、查询单个字段
2、查询多个字段
3、查询所有字段
4、查询常量值
注意:字符型和日期型的常量值必须用单引 引起来,数值型不需要
Select 100;
Select John;
5、查询函数
6、查询表达式
7、起别名
- as
- 空格
案例:查询salary, 显示结果为 out put(这里有个空格)
Select salary as “out put” from employees;
8、去重
案例:查询员工表中涉及的部门编
Select distinct department_id from employees;
9、+
作用:做加法运算
10、【补充】concat函数
功能:拼接字符
11、【补充】ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
12、【补充】isnull函数
**功能:**判断某字段或表达式是否为null,如果是,则返回1,否则返回0
**案例:**显示出表employees的全部列,各个列之间用逗 连接,列头显示成out_put
Select ifnull(commission_pct,0) as 奖金率, commission_pct from employees;
Select concat(frist_name, ’,’,’last_name’, ‘,’, ifnull(commission_pct,0) )as out_put;
3.3 条件查询
3.3.1 语法
3.3.1.1 进阶2:条件查询
条件查询:根据条件过滤原始表的数据,查询到想要的数据
语法:
3.3.2 筛选条件的分类
1 简单条件运算符
、 、 、、、 、 (安全等于)
案例:
Select * from employees where department_id > 90;
2 逻辑运算符
- 或: 两个结果都为true,结果为true,反之为false
- 或: 只要一个结果为true,结果为
案例:
- 或
3 模糊查询
-
:一般搭配通配符使用,可以判断字符型或数值型
案例1:查询员工名中名称有a的员工信息
-
通配符:%任意多个字符,_任意单个字符
案例2:查询员工名中第三个字符为e的员工信息
案例3:查询员工名称中含有第二个字符为_的员工名
-
(提高简洁度)
案例1:查询员工编 在100和120之间
简化为如下:
-
含义:判断某字段的值是否属于in列表中的某一项
特点:
1、使用可以提高简洁读
2、in列表值类型要一致或兼容案例:查询员工编 是it1、ad、ads中的一个员工和工种编
可以简化为:
5、 is null /is not null:用于判断null值
案例1:查询没有奖金的员工名和奖金率
Select lastname, commission_pct from employees where commission_pct is null;
Select lastname, commission_pct from employees where commission_pct <=> null;
is null PK **<=>****(**安全等于)(推荐is null)
普通类型的数值 null****值 可读性
is null × √ √
<=> √ √ ×
3.33 作业
3.4 排序查询
3.4.1 语法
引入:
select * from employees
语法:
select 查询列表
from 表
【where 筛选条件】
order by 排列列表【asc | desc】
特点:
1、asc代表的是升序,desc代表的是降序
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!