MySQL基础

目录

1.存储数据的方式 

2.数据库

3.MySQL

3.1MySQL Insttaller

 3.2  mysql常用命令

3.3  mysql的可视化客户端

3.3.1  Navicat

3.3.2  SQLYog

4.SQL

SQL语言的分类

5.DQL

5.1  别名查询

5.2  去重查询

5.3  条件过滤查询

5.4  排序查询

5.5  分页查询

5.5.1 limit

5.5.2  RAND()、FLOOR、CEIL

5.5.3  CURDATE(),CURTIME()

5.5.4  DATEDIFF、DATE_ADD、DATE_FORMAT

5.5.5  CONCAT

5.5.6  IF、IFNULL、CASE WHEN THEN ELSE END

5.5.7  count()、sum()、avg()、max()、min()

5.5.8 GROUP BY

5.6  连表查询(多表,单表自连)

5.7  非相关子查询

5.8  相关子查询

5.9  小结


1.存储数据的方式 

文件存储、集合、变量

以上存储数据的弊端存在弊端:

1.集合和变量是基于内存的存储方式,不能做到持久化(关闭之后无法查看);

2.文件存储能够持久化,但是文件的数据不是结构化的数据,对数据存储效率非常低。

2.数据库

数据库:用来组织、存储和管理数据的仓库。

 数据库管理系统DMSD(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。

数据库管理系统分类:

-Oracle:被认定是业界目前比较成功的关系型数据库管理系统。Oracle数据库可以运行在UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性认证。

-DB2:IBM公司的产品,DB2数据库系统采用多进程多线索体系结构,其功能足以满足大中公司的需要,并可灵活地服务于中小型电子商务解决方案。

-SQL Server:Micresoft公司推出的关系型数据库管理系统。具有使用方柏霓可伸缩性好与相关软件集成程度高等优点。

-PostgreSql:The World‘s Most Advanced Open Source Relational Database

-Tidb 真正意义的分布式数据库

3.MySQL

MySQL是一个关系型数据库管理系统 DBMS(DataBase Management System),由瑞典MySQL AB 公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System)应用软件之一。

3.1MySQL Insttaller

1.MySQL绿色安装 语雀(yuque.com)              

2.下载MySQL安装包

官网下载5.7版本

 3.2  mysql常用命令

mysql  -h  -uroot  -p

-h指定mysql服务的ip地址,默认是localhost

-u指定用户名   root为超级用户

-p指定密码

数据库操作(database)

show databases  --列出当前数据库的可用数据库

create database   数据库名称  --创建数据库

drop database 数据库名称 --删除数据库

drop database if exists  --删除数据库(如果存在)

use database  --选择数据库

数据表操作(table)

show tables --列出当前表

create table stu(id int ,name varchar(20));  --创建表

drop table stu;  --删除stu表

drop table if exists stu --删除stu表(如果存在)

desc table  --描述表的结构

3.3  mysql的可视化客户端

3.3.1  Navicat

Navicat是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

3.3.2  SQLYog

MySQL可能是世界上最流行的开源数据库引擎,但是使用基于文本的工具和配置文件可能很难进行管理。SQLyog提供了完整的图形界面,即使初学者也可以轻松使用MySQL的强大功能。其拥有广泛的预定义工具和查询、友好的视觉界面、类似 Excel 的查询结果编辑界面等优点。

4.SQL

数据库概念:SQL(Structured Query Language)结构化查询语言,用于存取数据、更新、查询和管理关系数据库系统的程序设计标准化语言(SQL92\SQL93)

SQL语言的分类

1、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。

2、数据定义语言(DDL:Data Definition Language):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。

3、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

4、数据控制语言(DCL:Data Control Language):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

5.DQL

5.1  别名查询

--用as关键字给列取别名,as可以省略不写

SELECT *,'US' AS '国籍' FROM employees
SELECT salary AS '工资' FROM employees

5.2  去重查询

SELECT DISTINCT salary AS '工资' FROM employees

5.3  条件过滤查询

使用where子句实现条件过滤查询#查询所有工资在10000以上的员工的信息

select salary from employees where salary > 10000

#查询所有工资在以上的员工的信息
#比较运算符 < <=   >=  =  !=  <>

#查询所有电话以650开头的员工信息
-- %表示个数和内容都不确定
-- 右模糊
SELECT *
FROM employees
WHERE phone_number LIKE '650%'

5.4  排序查询

order by 字段名 asc  (按字段名升序排序)

order by 字段名 desc(按字段名降序排序)

order by 字段名  (不写就是按照升序排列)

5.5  分页查询

5.5.1 limit

limit可实现分页查询

limit m 第一页前m行信息

limit m,n  跳过m行取n行

分页公式 :limit (page - 1)*size,size

5.5.2  RAND()、FLOOR、CEIL

与数字有关的函数

SELECT RAND() FROM DUAL  -- 产生[0,1]随机小数

SELECT FLOOR(4.5)  --向下取整

SELECT CEIL(4.5)  --向上取整

5.5.3  CURDATE(),CURTIME()

与日期有关的函数

SELECT         NOW(),CURDATE(),CURTIME(),YEAR(NOW()),MONTH(),DAY(),HOUR(),DAYOFMONTH(),DAYOFYEAR(),DAYOFWEEK()

5.5.4  DATEDIFF、DATE_ADD、DATE_FORMAT

select DATEDIFF('','') as days  --计算两个时间相隔多少天

select  DATE_ADD(NOW(),INTERVAL m DAY)  --计算某个时间的推算(向前、向后)m天

select DATE_FORMAT(DATE_ADD(NOW(),INTERVAL m DAY) ,'%Y-%m-%d')  --格式化输出

5.5.5  CONCAT

与字符串有关的函数

SELECT RIGHT(last_name,m)  --从右边取名字的后m个字母

SELECT LEFT(last_name,m)  --从左边取名字的后m个字母

SELECT SUBSTR('helloworld',m,n)  --字符串截取索引开始为1,从索引位置为m取n位

SELECT CONCAT('m','n')  --字符串拼接

5.5.6  IF、IFNULL、CASE WHEN THEN ELSE END

与流程控制有关的函数

SLELECT IF(1=1,'正确','错误')  --1=1为true,就输出正确,否则输出错误,类似于三元表达式

SELECT IFNULL('123','空')  --如果123为null,就输出空,否则输出123

SELECT  *   

CASE

WHEN salary >= 15000 THEN 'A'

WHEN salary >= 10000 THEN 'B'

WHEN salary >= 5000 THEN 'C'

ELSE 'D'

END   FROM  employees

5.5.7  count()、sum()、avg()、max()、min()

聚合函数

COUNT(*) 求总数   、SUM() 求和 、AVG() 求平均值 、

MAN(salary) 求最高工资 、MIN(salary)求最低工资

5.5.8 GROUP BY

分组聚合

-- 统计平均工资在10000以上的每个部门分别的平均工资
求每个部门的平均工资
SELECT
department_id,
-- 聚合 
AVG(salary) AS '平均工资'
FROM employees
-- 过滤
WHERE department_id IS NOT NULL
-- 分组
GROUP BY department_id

5.6  连表查询(多表,单表自连)

join on

inner join 内连接

left join 左连接

right join 右连接

5.7  非相关子查询

查询比Abel工资高的员工编号、姓名和工资

SELECT * FROM employees
WHERE salary > (SELECT salary FROM employees
WHERE last_name = 'Abel')

5.8  相关子查询

查询每个部门的信息以及对应的员工人数

SELECT 
departments.*,

 (SELECT COUNT(*) FROM employees 
 WHERE employees.department_id = departments.department_id )  AS '员工数'

 FROM departments

5.9  小结

-- 如果以下子句全部出现,那么执行的顺序如下
1:from
2:where
3:group by
4:having
5:select
6:order by
7:limit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值