【学 MySQL,这一篇足够了,(百度云提取:含mysql软件 + 表结构)】 MySQL基础最全详解(持续更新...)

通过阅读本篇文章你将会获得如下数据库知识

一、 MySQL简介

二、MySQL安装、服务启动、链接数据库、数据库中的注释

三、数据库的建立、数据库普通查询、条件查询、测试题10道


 

一、 MySQL简介

       MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

       MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

      数据库(Database,DB),是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

      数据库管理系统(Database Management Syster,DBMS),用来管理数据库的计算机系统。

      DBA:负责数据库的规划、设计、协调、维护和管理等工作

      数据库就是一个存放数据的仓库,这个仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据。我们的程序都是在内存中运行的,一旦程序运行结束或者计算机断电,程序运行中的数据都会丢失,所以我们就需要将一些程序运行的数据持久化到硬盘之中,以确保数据的安全性。说白了,数据库就是存储数据的仓库

二、MySQL安装、服务启动、链接数据库、数据库中的注释

     ①mysql安装

      这儿我们提供的是MySQL 8.0的版本。百度云提取即可。安装直接在百度上搜索:mysql安装教程。

      注意:用户名,密码最好设置成root,防止遗忘。

        链接:https://pan.baidu.com/s/1gu967eDmMhugDk5MhQVCfQ 
        提取码:k1wm 
        复制这段内容后打开百度网盘手机App,操作更方便哦

      ②mysql配置文件介绍

      这儿我们重点介绍的是my.ini配置文件。

      [mysqld]:服务端的配置,可以在这儿修改端口号,默认端口号是3306。

      

     ③mysql服务的启动

方式一:右击此电脑,点击管理。手动启动服务或者关闭服务

方式二:命令提示符以管理员的身份启动服务

启动和停止服务:
net stop/start 服务名(不区分大小写)

退出:

     ③MySQL服务的登录和退出

     上面我们已经启动过服务了,现在是数据库用户登录到服务。

   

     ④常见的数据库命令

-- 显示所有的数据库,分号结尾
show databases;

-- 使用当前数据库
use database;

--显示表
show tables;
show table from 库名

--查看表的结构
desc table;

--查看数据库版本
select version();

  ④数据库常见的注释

注意:在使用 -- 作为注释的时候,需要在前面空一格。

 

三、数据库的建立、数据库普通查询、条件查询

       1、我们使用的是myemployees数据库:百度与提取

      链接:https://pan.baidu.com/s/15w-MtQDfui6BYNHfq2pwXw 
      提取码:dmr2 
      复制这段内容后打开百度网盘手机App,操作更方便哦

      对各个表字段的说明:

      ①员工表employees

        ②部门表department

       ③ 位置表locations

      ④工种表job

      2、普通的查询语句

  ①查询表中单个字段

   语法:  select 表字段 from 表结构

select last_name from employees;

   ② 查询表中的多个字段,字段之间用逗号隔开,此逗号为英文的逗号。

select last_name,department_id from employees;

   ③为字段起别名:

    好处:便于理解,如果查询的字段有重名的情况,使用别名区分开来。 别名最好加双引号,防止和关键字冲突。

// 方式一:使用as
select 100 as "结果";
// 方式二:使用空格
select 100 "结果";

  ④去重,使用distinct关键字,distinct放在需要去重字段的前面

select distinct  id from emp;

  ⑤字符串连接,concat(str1,str2,......)

 比如:

-- mysql 里面做字符的拼接使用的是concat(str1,str2)
select concat(name,xing) as 姓名 from table;
-- 查询字段使用逗号隔开
SELECT
      CONCAT("employee_id",",","email") "result"
FROM
   	  employees;
// IFNULL(判断的字段,如果为空被赋值的字段) 
SELECT IFNULL(commission_pct,0)  "奖金率" FROM employees;

  3、条件查询语句

       

       

         

     

ifnull关键字:
     ifnull(1,2):如果1的位置为空,那么1位置上的值用2代替

4、测试题

-- 1. 查询工资大于 12000 的员工姓名和工资

SELECT
				last_name,salary
FROM
				employees
WHERE
				salary > 12000;

-- 2. 查询员工号为 176 的员工的姓名和部门号和年薪

SELECT
				last_name,
				department_id,
				salary*12*(1 + IFNULL(commission_pct,0)) AS '年薪'
FROM
				employees
WHERE
				employee_id = '176';

-- 3. 选择工资不在 5000 到 12000 的员工的姓名和工资
SELECT
				last_name,
				salary
FROM
				employees
WHERE
				salary NOT BETWEEN 5000 AND 12000;

-- 4. 选择在 20 或 50 号部门工作的员工姓名和部门号
SELECT
				last_name,
				department_id
FROM
				employees
WHERE
				department_id IN ('20','50');

-- 5. 选择公司中没有管理者的员工姓名及 job_id
SELECT 
				last_name,
				job_id
FROM
				employees
WHERE
				manager_id IS NULL;

-- 6. 选择公司中有奖金的员工姓名,工资和奖金级别
SELECT
			last_name,
			salary,
			commission_pct
FROM
			employees
WHERE
			commission_pct IS NOT NULL;

-- 7. 选择员工姓名的第三个字母是 a 的员工姓名
SELECT
				last_name
FROM
				employees
WHERE
				last_name LIKE '__a%';

-- 8. 选择姓名中有字母 a 和 e 的员工姓名
SELECT
				last_name
FROM
				employees
WHERE
				last_name LIKE '%a%e%' OR '%e%a%';				
				
-- 9. 显示出表 employees 表中 first_name 以 'e'结尾的员工信息
SELECT
				*
FROM
				employees
WHERE
				first_name LIKE '%e'

-- 10. 显示出表 employees 部门编号在 80-100 之间 的姓名、职位
SELECT
				last_name,
				job_id
FROM
				employees
WHERE
				department_id BETWEEN 80 AND 100;
				
-- 11. 显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、职位
SELECT 
				last_name '员工姓名',
				job_id '职位id'
FROM
				employees
WHERE
				manager_id IN ('101','100','110');

5、排序

-- 按照表达式排序,支持别名
SELECT *,salary*12*(1 + IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC

   #按照姓名的字节数显示员工的姓名和工资
SELECT LENGTH(last_name) '名字长度',last_name,salary
FROM employees 
ORDER BY LENGTH(last_name) DESC;

 6、测试

#1. 查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序
SELECT 
				last_name,
				department_id,
				salary*12*(1 + IFNULL(commission_pct,0))
FROM  
				employees  
ORDER BY
				salary*12*(1 + IFNULL(commission_pct,0)) DESC,
			  last_name ASC;	



#2. 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序
SELECT  
				last_name,
				salary
FROM 
				employees   
WHERE 
				salary NOT BETWEEN 8000 AND 17000
ORDER BY 
				salary DESC ;


#3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序
SELECT   
				*
FROM 
				employees   
WHERE  
				email LIKE '%e%'
ORDER BY   
				LENGTH(email) DESC,
				department_id  ASC;

猜你喜欢

转载自blog.csdn.net/Sunshineoe/article/details/111662084