mysql的下载安装

一. 什么是数据库

数据库是一个存储数据的容器,用来存储大量的数据,正常来说我们存储数据是使用文本txt、word、excel等,但如果我们想要使用这个数据的时候,获取与写入时IO读取是非常消耗资源的,我们对于数据量比较小的操作比较少的可以使用文本,但是随着现代发展,数据量已经超过了文本所能容纳的最大数据,所以我们在存储以及操作的时候会使用数据库来存储,当数据量巨大的时候,一个数据库可能会有压力,这时我们可以搭建数据库的集群,多个数据库来共同承载数据量大所带来的压力。

二.数据库的种类

  • 关系型数据库:mysql、Oracle、SQLserver、SQLite等。

    • 优点:容易维护,格式统一;SQL语句通用,可用于复杂的查询;支持事务;
    • 缺点:在读取海量的数据时性能比较差;固定的表接口比较死板不灵活;
  • 非关系型数据库:MongoDBRedis、Hbase、Php等。

    • 优点:速度快;具有很高的扩展性;成本低;
    • 缺点:不支持事务;数据结构比较复杂;

三.数据库的下载与安装

  1. 下载数据库服务

    mysql数据库官网:https://www.mysql.com/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正常来说一般外面公司使用最多的版本是5.X系列的版本,相对来说比较稳定(推荐),8.X系列的是相对比较新的版本。

  1. 安装数据库服务

    1. 在下载完成后,我们解压下载好的安装包
      在这里插入图片描述
      里面有个my.ini文件(可以按照我这个配置)

    在这里插入图片描述
    配置环境变量
    在这里插入图片描述
    打开命令行输入
    mysqld -install
    mysqld --initialize
    等两个命令执行完后文件夹会出现一个data目录
    在这里插入图片描述
    这时data目录下就有初始的密码(可以记下来)
    不要忘了启动服务
    登录成功后我们可以修改之前的复杂密码
    在这里插入图片描述

    通过命令set password for username @localhost(root) = password(newpwd);

    修改完密码后重新登录,检查服务是否启动(如果没启动则无法连接数据库)
    在这里插入图片描述

  2. 下载连接数据库客户端

    客户端介绍:正常来说下载安装好的服务,启动的时候会在命令行输入命令来登录数据库,这一般是数据库管理员才会这样操作的,我们在开发的时候很少去使用命令行来操作,这时我们需要下载可视化工具,可以使用Sqlyog,Navicat,DBServer作为客户端的连接工具,推荐使用DBServer。

    DBServer下载地址:https://dbeaver.io/

    下载好后我们会得到一个安装包
    在这里插入图片描述
    这时我们解压到该文件下(同目录下会出现dbserver文件夹):
    在这里插入图片描述
    展开文件目录(安装目录任意)
    在这里插入图片描述
    安装后最终是这个界面
    在这里插入图片描述
    这时我们使用客户端来连接数据库服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这时就已经连接成功,接下来我们简单学习一下数据库的基本语句

四.MYSQL的基本操作

  • 4.1 MYSQL服务的启动和停止

    方式一:计算机–右击管理–服务(手动停止服务)

在这里插入图片描述

方式二:通过管理员身份运行(命令行停止服务)

	mysql --install
	net start 服务名(启动服务)
	net stop 服务名(停止服务)
  • 4.2 MYSQL服务的登录和退出

    方式一:通过mysql自带的客户端只限于root用户

    方式二:通过doc命令行登录

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

    退出:exit或者ctrl+C

  • 4.3 MYSQL的基本语句

     	1、查看所有的数据库
     		show databases;
    
     	2、使用指定的库
     		use 库名
    
     	3、查看当前库的所有表
     		show tables;
    
     	4、查看其它库的所有表
     		show tables from 库名;
    
     	5、创建表
    
     		create table 表名(
     			列名 列类型,
     			列名 列类型,
     			。。。
     		)
    
     	6、查看表的结构
     	
     		desc 表名;
    
     	7、查看服务器的版本
     	
     		 - 方式一:登录到mysql服务端
     			select version();
     		
     		 - 方式二:没有登录到mysql服务端
     			mysql --version
     			或
     			mysql --V
    
  • 4.4 MYSQL的语法规范

     	1. 不区分大小写,但是建议关键字大写,表明,列名小写
     	2. 每条命令最好用分号结尾
     	3. 每条命令根据需要,可以进行缩进 或者换行
     	4. 注释
     		- 单行注释:#注释文字
     		- 单行注释:-- 注释文字
     		- 多行注释:/*注释文字*/
    

五.数据库查询的基本使用

  • 5.1:条件查询

     	语法:
     			select
     					查询列表
     			from
     					表名
     			where
     					筛选条件
    
     	分类:
     			一、按条件表达式筛选
     				作用:用于连接条件表达式
     			条件运算符:> < = <> != >= <=
    
     			二、按逻辑表达式筛选
     			逻辑运算符:&& || !
     					   and or not
    
     			&&和and:两个条件都为true,结果为true,反之false
     			||和or:只要有一个条件为true,结果为true,反之为flase
     			!或not:如果连接的条件本身为flase,结果为true
     			反之为false
    
     			三、模糊查询
     					   like between and in isnull
    
  • 5.2:按条件表达式筛选

     	案例一: 查询工资>12000的员工信息
     	
     		select
     				 * 
     		from 
     				employees 
     		where 
     				salary>12000;
     	
     	案例二: 查询部门编号不等于90号的员工名和部门编号
     
     		select 
     				last_name,department_id 
     		from 
     				employees 
     		where 
     				department_id<>90;
    
  • 5.3:按逻辑表达式筛选

     	案例一、查询工资在10000到20000之间的员工名、工资以及奖金
     
     		select 
     				last_name,salary,commission_pct 
     		from
     				employees
     		where 
     				salary>=10000 && salary<=20000; 
     	
     	案例二、查询部门编号不是在90到110之间的,或者工资高于15000的员工信息
     	
     		1.
     			select 
     					* 
     			from 
     					employees 
     			where 
     					department_id not between 90 and 110 or salary>15000;
     		2.
     			select 
     					* 
     			from 
     					employees 
     			where 
     					department_id<90 OR department_id>110 OR salary>15000;
     		3.
     			select 
     					* 
     			from 
     					employees 
     			where 
     					NOT(department_id>=90 AND department_id<=110) OR salary>15000;
    
  • 5.4:逻辑查询

     	like
     	between and
     	in
     	is null|is not null
    
    • 5.4.1:like

        	特点:
        		1、一般和通配符搭配使用
      
        	通配符:
        	% 任意多个字符,包含0个字符
        	— 任意单个字符
      
      
      
        	案例一:查询员工中包含字符a的员工信息
        	
        		select 
        				* 
        		from 
        				employees 
        		where 
        				last_name like '%a%';
        
        	案例二:查询员工名中第三个字符为n,第5个字符为l的员工名和工资
        
        		select 
        				last_name,salary
        		from	
        				employees
        		where
        				last_name like '__n_l%';
        
        	案例三、查询员工名中第二个字符为_的员工名
        	
        		1、
        			select
        					last_name
        			from
        					employees
        			where
        					last_name like '_\_%';
        	
        		2、
        			select
        					last_name
        			from
        					employees
        			where
        					last_name like '_$_%' escape '$';
      
    • 5.4.2、between and

       	特点:
       		一、使用between and可以提高语句的简洁度
       		二、包含临界值
       		三、两个临界值不要调换顺序
       
       	案例一:查询员工编号
       	
       		select
       				*
       		from
       				employees
       		where
       				employee_id between 100 and 120;
      
    • 5.4.3、in

        /*
        	含义:判断某字段的值是否是属于in列表中的某一项
        
        	特点:
        			一、使用in提高语句的简洁度
        			二、in列表的值类型必须统一
        */
      
      
        案例一:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
      
        1、
        	select 
        			last_name,job_id 
        	from 
        			employees 
        	where 
        			job_id='IT_PROT' or job_id='AD_VP' or job_id='AD_PRES';
      
        2、
        	select 
        			last_name,job_id 
        	from 
        			employees 
        	where 
        			job_id in ('IT_PROT','AD_VP','AD_PRES');
      
    • 5.4.4、is null

        =或<>不能用于判断null的值
        is null或者is not null 可以判断
      
        案例1:查询没有奖金的员工名和奖金率
        
        	select
        			last_name,
        			commission_pct
        	from
        			employees
        	where
        			commission_pct is null;
        
        		-----------以下为错误
        
        	select 
        			last_name,
        			commission_pct
        	from
        			employees
        	where
        			salary IS 12000;
      
    • 5.4.5、安全等于 <=>

        案例1:查询没有奖金的员工名和奖金率
        
        	select
        			last_name,
        			commission_pct
        	from
        			employees
        	where
        			commission_pct <=> null;
      
        案例2:查询工资为12000的员工信息
        
        select 
        		last_name,
        		commission_pct
        from
        		employees
        where
        		salary <=> 12000;
      
    • 5.4.6、isnull pk <=>

        is null:仅仅可以判断null值(可读性较高)
        
        <=>	   :既可以判断null的值,又可以判断数值(可读性较低)
      

六.测试题

	一、查询没有奖金,且工资小于18000的salary,last_name

		select 
			salary,last_name 
		from 
			employees
		where
			commission_pct is null and salary<18000; 


	二、查询employees表中,job_id不为‘IT’ 或者 工资为12000的员工信息
	
		select 
				* 
		from 
				employees 
		where 
				job_id <> ‘IT’ or salary=12000;

	三、查看部门departments表的结构,查询效果如下

		desc departments

	四、查询部门departments表中涉及到哪些编号

		select 
				distinct location_id 
		from 
				departments;

七. 经典面试题:

	试问:select * from employees;
	和 select * from employees where commission_pct like '%%' and last_name like '%%';

	 	select * from employees where commission_pct like '%%' or last_name like '%%' or employees_id like '%%';

	不一样!(如果判断字段有null值)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值