day01(基础查询,条件查询,模糊查询)

数据库概述

什么是数据库

数据库是持久化数据的一种介质,可以理解成用来存储和管理数据的仓库!

持久化(persistence)把数据保存到可掉电式存储设备中以供之后使用。持久化的大多数时候是将内存中的数据存储在数据库中,当然也可以存储在磁盘文件、XML数据文件中。

数据库的优点

  1. 可将数据持久化到硬盘
  2. 可存储大量数据
  3. 方便检索
  4. 保证数据的一致性、完整性
  5. 安全,可共享
  6. 通过组合分析,可以产生新数据

常见的数据库产品

Oracle:甲骨文

DB2:IBM;

SQL Server:微软;

MySQL:甲骨文;

数据库相关概念

DB:数据库( database ):存储数据的“仓库”。它保存了一系列有组织的数据。

DBMS:数据库管理系统( Database Management System )。数据库是通过 DBMS 创建和操作的容器

SQL:结构化查询语言( Structure Query Language ):专门用来与数据库通信的语言。

数据库存储数据的特点

  1. 将数据放到表中,表再放到库中
  2. 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
  3. 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
  4. 表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
  5. 表中的数据是按行存储的,每一行类似于java中的“对象”

表——类

列,字段——属性

行——对象

MySQL数据库

MySQL产品的介绍

MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择MySQL作为网站数据库(Facebook, Twitter, YouTube)。阿里提出“去IOE”,更多网站也开始选择MySQL。

MySQL产品的优点

成本低:开放源代码,一般可以免费试用

性能高:执行很快

简单:很容易安装和使用

MySQL服务端的安装和卸载

DBMS分为两类

基于共享文件系统的DBMS (Access )

基于客户机——服务器的DBMS C/S

安装
卸载

MySQL的使用

启动和停止服务

命令行:

以管理员身份运行(非管理员身份是无法启动的)

net start MySQL服务名

net stop MySQL服务名

管理员身份启动

在这里插入图片描述

非管理员身份启动

在这里插入图片描述

登录MySQL

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

例如:mysql -h localhost -P 3306 -u root -proot

-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格

​ mysql -hlocalhost -P3306 -uroot -proot

密码建议在一行输入

​ mysql -h localhost -P 3306 -u root -p

​ Enter password:****

如果是连本机:-hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略

​ 简写成:mysql -u root -p

​ Enter password:****
在这里插入图片描述

查看版本:

select version(); 不区分大小写

在这里插入图片描述

可视化工具

SQL语法要

SQL语句可以单行或多行书写,以分号结尾;

可以用空格和缩进来来增强语句的可读性;

关键字不区别大小写,建议使用大写;

分类

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

DQL

DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。

基础查询
#根据单个字段查询
select last_name from employees;
#查询表中多个字段
select last_name,salary from employees;
#查询表中所有字段
select * from employees;
#查询常量值
select 100;
#查询表达式
select 100%98;
#查询函数
select VERSION();
#起别名
-- 方式一 as
select 100%98 as 结果;
select last_name AS,first_name asfrom employees;
-- 方式二 使用空格
select last_name 姓,first_name 名 from employees;
#案例:查询salary,显示结果为 out put
select salary 'out put' from employees;
#去重
select distinct department_id from employees;
/*
java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串

mysql中的+号:
仅仅只有一个功能:运算符

select 100+90; 两个操作数都为数值型,则做加法运算
select '123'+90;只要其中一方为字符型,试图将字符型数值转换成数值型
			如果转换成功,则继续做加法运算
select 'john'+90;	如果转换失败,则将字符型数值转换成0

select null+10; 只要其中一方为null,则结果肯定为null
*/
#案例:查询员工名和姓连接成一个字段,并显示为 姓名
select concat(last_name,first_name) 姓名 from employees;

在这里插入图片描述

结果就不全部演示了

条件查询

条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:

  1. =、!=、<>、<、<=、>、>=;
  2. AND、OR、NOT
  3. BETWEEN…AND、IN(set)、IS NULL
模糊查询

like

between and

两个区间值包含

in

is null

-- 条件查询
/*

语法:
   select
      查询列表
   from
      表名
   where
      筛选条件;

分类:
   一、按条件表达式筛选

   简单条件运算符:> < = != <> >= <=

   二、按逻辑表达式筛选
   逻辑运算符:
   作用:用于连接条件表达式
      && || !
      and or not

   &&和and:两个条件都为true,结果为true,反之为false
   ||或or: 只要有一个条件为true,结果为true,反之为false
   !或not: 如果连接的条件本身为false,结果为true,反之为false

   三、模糊查询
      like
      between and
      in
      is null
*/
#一、按条件表达式筛选
#案例1:查询工资>12000的员工信息
select * from employees where salary > 12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
select last_name,department_id
from employees where department_id <> 90;
select last_name,department_id
from employees where department_id != 90;
#二、按逻辑表达式筛选
#案例1:查询工资z在10000到20000之间的员工名、工资以及奖金
select last_name,salary,commission_pct
from employees where salary >= 10000 and salary <= 20000;
#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
select *
from employees where department_id >= 100 or department_id <= 90 or salary >= 15000;
select *
from employees where not(department_id < 100 and department_id >90) or salary >= 15000;
#三、模糊查询
/*
like
between and
in
is null|is not null
*/
#1.like
/*
特点:
①一般和通配符搭配使用
   通配符:
   % 任意多个字符,包含0个字符
   _ 任意单个字符
*/
#案例1:查询员工名中包含字符a的员工信息
select *
from employees where last_name like '%a%';
#案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
select *
from employees where last_name like '__e_a%';
#案例3:查询员工名中第二个字符为_的员工名
select *
from employees where last_name like '_\_%';
#2.between and
/*
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
*/
#案例1:查询员工编号在100到120之间的员工信息
select * from employees where employee_id between 100 and 120;
#3.in
/*
含义:判断某字段的值是否属于in列表中的某一项
特点:
   ①使用in提高语句简洁度
   ②in列表的值类型必须一致或兼容
   ③in列表中不支持通配符
*/
#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
select employee_id,job_id from employees where job_id = 'IT_PROG' or job_id = 'AD_VP'or job_id = 'AD_PRES';
select employee_id,job_id from employees where job_id in ('IT_PROG','AD_VP','AD_PRES');
#4、is null
/*
=或<>不能用于判断null值
is null或is not null 可以判断null值
*/
#案例1:查询没有奖金的员工名和奖金率
select last_name,commission_pct
from employees where commission_pct is null;
#案例2:查询有奖金的员工名和奖金率
select last_name,commission_pct
from employees where commission_pct is not null;
#安全等于  <=>
#案例1:查询没有奖金的员工名和奖金率
select last_name,commission_pct
from employees where commission_pct <=> null;
#案例2:查询工资为12000的员工信息
select *
from employees where salary <=> 12000;
/*
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=>    :既可以判断NULL值,又可以判断普通的数值,可读性较低
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值