mysql篇Day1

  • 1、了解学习知识点(内容)
  • 2、为什么学习数据库?
  • 3、学习数据库名词
  • 4、MySQL介绍
  • 5、数据库的安装
  • 6、MySQL常见命令
  • 7、数据中如何添加初始信息(导入初始化信息)
  • 8、初始化表的介绍
  • 9、SQL语言的分类:
  • 10、基本查询语言:Query:
  • 11、别名的设置
  • 12、去重:distinct
  • 13、 + 号作用
  • 14、条件查询
  • 上午总结:
  • 下午总结:
  • 1.ifnull(value1,value2)的使用:
  • 2.两个不相关的表求并集
  • 3.date型转换成字符串型
  • 4.SUBSTR(str,pos,len)在oracle和mysql中的区别
  • 5.date型可以与字符串比较



20201221


自我介绍: 马老师


主要课程:mysql、javase、ssm框架


上课流程:知识点回顾、作业的讲解、知识点讲解

知识点回顾:
作业讲解:
知识点讲解:

1、了解学习知识点(内容)

(1) Javaweb
① Jsp+servlet
(2) Java(基础)
(3) Mysql数据库
(4) Sqlserver
(5) Oracle
(6) Html、css、js
(7) 数据结构
(8) Ssm
(9) 分布式:springcloud
(10) 扩展框架
(11) 等

2、为什么学习数据库?

(1) 主要进行数据的存储

(2) 存储形式?=》javase
① 变量
② 数组
③ 集合
④ 文件存储:持久化存储
④.1.没有规律存储,不适于查找
⑤数据库
⑤.1.有规律、有格式的存储
⑤.2.适用于 数据的查找

(3) 数据库种类
① 关系型数据库
①.1.Mysql、oracle 等
② 非关系型数据库
②.1.Redis 、hbase 等

(4) 如何选择数据库学习?
① Mysql 开源、免费的
② Oracle 收费 ,学习推荐:Oracle XE 版本(麻雀虽小五脏俱全)11g版本太大

3、学习数据库名词

(1) DB:数据库
① 存储数据的仓库。主要用来保存数据

(2) DBMS:数据库管理系统
① 数据库是通过DBMS创建和操作的容器

(3) SQL
① 结构话的查询语言,主要用于与数据库的通信

(4) 图解:

4、MySQL介绍

mysql数据库项目实训 mysql实训1_数据库

5、数据库的安装

mysql安装教程mysql的卸载 (1) 数据库:C/S(客户端/服务器端)
① Mysql、oracle、sqlServer

(2) 基于文件系统:Access(和sqlServer一样属于微软的)

(3) 数据库的安装与卸载
① 5.5.28版本:windows:64位
② 数据库客户端:navicat、sqlyong

(4) Mysql的安装:
① 参考安装的文档
② 需要注意:mysql的配置文件:
③ 查看my.ini配置文件
③.1. 字符集的修改=》utf8(不可改成utf-8,启动会出现参数错误)

mysql数据库项目实训 mysql实训1_mysql数据库项目实训_02


mysql数据库项目实训 mysql实训1_mysql数据库项目实训_03


(5) Mysql启动与关闭

① 第一种:我的电脑=》管理=》服务=》mysql

② 第二种:使用命令的形式(需要使用管理员命令窗口)

②.1. net stop mysql

②.2. net start mysql

③ 如果mysql服务长期不使用,则可以在右击mysql服务,选择禁用即可。

(6) mysql服务登录与退出
① 登录:第一种:命令形式
①.1. mysql 【-h主机名称 -P端口号】 -u用户名 -p密码
② 登录:第二种:客户端工具:(navicat、SQLyong)
③ 退出:exit 或者 ctrl+c 或者 quit

(7) 登录数据库之后的默认数据库信息

(8) Mysql 环境变量的配置
① Path 配置 mysql 安装目录下的bin目录

6、MySQL常见命令

(1) 数据库管理系统的连接

(2) 查看当前所有的数据库
① show databases;

(3) 打开数据库(切换数据库)
① use 数据库名称;

(4) 查看数据库所有的表
① 查看当前数据库中所有的表
①.1.show tables;
② 如何查看指定数据库中的表
②.1. show tables from 数据库名称;

(5) 查看表结构:
① desc 表名;

(6) 创建表(后期讲解)
create table student(
id int primary key auto_increment,
name varchar(10) not null
);

(7) 查看当前数据库的版本
① mysql --version
①.1. 不用登录数据库
② select version();
②.1. Sql语句,必须登录数据库

(8) Mysql 的语法规范
① 不区分大小写(建议:关键字大写,表名与列名小写)
② 每条sql语句,最后用分号结尾
③ Sql语句的格式
④ 注解:(一般使用在客户端工具中)
④.1. 单行注解: # 或者 –
④.2. 多行注解:/* */

(9)

7、数据中如何添加初始信息(导入初始化信息)

(1) 前提:准备 sql文件

(2) 将sql文件导入到test数据库中
① 登录数据库管理系统
② 打开指定的数据库(test)
③ 将sql文件导入到test数据库中
③.1. source 文件的绝对路径
③.2. 例如:source D:\mysql.sql

(3) 查看数据库中是否有对应的表?

8、初始化表的介绍

(1) Dept :部门表

(2) Emp:员工表

(3) Salgrade:薪水等级表

9、SQL语言的分类:

(1) DQL: Data Query Language
① 数据查询: select 语句

(2) DML:Data Manipulation Language
① 数据的操作语言:insert、delete、update,对表中的数据进行操作

(3) DDL:Data Definition Language
① 数据定义语言:create、drop、alter ,对表结构的操作

(4) DCL:Data Control Language
① 数据的控制语言:grant、revoke

(5) TCL: Transaction Control Language
① 事务控制语言:commit、rollback

10、基本查询语言:Query:

(1) 查询语法的结构:
select 查询列表 from 表名
特点:
1、查询列表可以是表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格

(2) 具体的操作

mysql数据库项目实训 mysql实训1_mysql数据库项目实训_04

11、别名的设置

(1) 解读
别名的设置
1、便于理解
2、如果查询的字段有重名的情况下,使用别名可以进行区分
使用 别名的格式: as 或者 空格
注意:别名,使用 双引号 进行括起来

(2) 案例:

mysql数据库项目实训 mysql实训1_mysql_05

12、去重:distinct

(1) 去除重复的内容

(2) 案例:

mysql数据库项目实训 mysql实训1_sql_06

13、 + 号作用

(1) 回忆:java中 + 号的作用

(2) Mysql中 + 号作用:运算符

(3) 案例:

SELECT '100a' + '200w' as "结果"; 结果为300.

SELECT 'null' + '300' as "结果";结果为300.

mysql数据库项目实训 mysql实训1_数据库_07


上图中结果分别为:

199、223、100、0

14、条件查询

(1) 语法公式
Select
查询列表
From
表名
Where
筛选条件

(2) 分类:
① 按条件表达式进行筛选
①.1. 简单的条件运算符:
a. > 、<、 =、 != 、<>、>=、<=
② 按逻辑表达式进行筛选
②.1. 逻辑运算符:
a. 主要使用到连接表达式的
a.a. && || !
a.b. and or not (推荐使用)
③ 模糊查询
③.1. like
③.2. between and [ )
③.3. in
③.4. is null

(3) 案例:

mysql数据库项目实训 mysql实训1_sql_08


mysql数据库项目实训 mysql实训1_sql_09

15、

上午总结:

用命令行打开或关闭mysql服务时,要注意 net start mysql中mysql(服务名)可以在安装的时候自定义,开启或关闭的时候要写对服务名,默认是mysql,如果命令中服务名与服务中的服务名名称不一致,命令行会出现该命令不可用,或不是系统处理命令等情况。

下午总结:

1.ifnull(value1,value2)的使用:

如果value1为空,则用value2代替该值。

select ename "员工姓名",sal*6+sal*(1+0.2)*6 "工资收入",comm*12 "奖金收入",sal*6+sal*(1+0.2)*6+ifnull(comm*12,0) "总收入"  from emp;

2.两个不相关的表求并集

select ename 姓名, sal*6+sal*1.2*6 工资收入,comm*12 奖金收入,(sal*6+sal*1.2*6) 总收入 from emp where comm is   null
union all
select ename 姓名, sal*6+sal*1.2*6 工资收入,comm*12 奖金收入,(sal*6+sal*1.2*6) +comm*12 总收入 from emp where comm is   not  null;

3.date型转换成字符串型

SELECT ename,hiredate
FROM emp
WHERE date_format(hiredate, '%Y%m%d')<'1985-12-31';

SELECT ename,hiredate
FROM emp
WHERE date_format(hiredate, '%Y') BETWEEN 1982 AND 1985;

4.SUBSTR(str,pos,len)在oracle和mysql中的区别

首先SUBSTR(str,pos,len)是截取字符串str第pos位到第len位(包括pos和len),
在oracle中SUBSTR(str,0,2) = SUBSTR(str,1,2),也就是说0当1处理,而mysql中不可以。

-- 查询入职日期在81年,的员工姓名、入职日期、职位。
SELECT *
FROM emp
WHERE SUBSTR(DATE_FORMAT(hiredate,"%Y"),3,4)='81';

SELECT *
FROM emp
WHERE SUBSTR(DATE_FORMAT(hiredate,"%Y"),1,2)='19';

5.date型可以与字符串比较

-- 查询1985年12月31日之前入职的员工姓名及入职日期。
SELECT ename,hiredate
FROM emp
WHERE hiredate<'1985-12-31';