当前位置: 首页 > news >正文

MySQL 从入门到入狱 rm - rf /* 咳咳~ 到精通

做好笔记,勤加练习。 刷多少不重要,重要的是你学了多少。每学完一个视频要问自己是否学会了,囫囵吞枣的刷视频虽然也有一点点效果, 但还是要认认真真学。 我就拿我自己来说,我学前端js时候是看视频都是全程跟老师写代码(相当于没自己练),笔记也不做,跟快餐式的刷视频,也不复习,这样做结果造成了什么,一个月学的东西全部忘了。

咳咳~上面一句正能量  下面我们就开始学习MySQL 请大家三连哦~

为什么要学MySQL ??? 看下面调查

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

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

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

 概念:MySQL数据库属于MySQL AB公司,总部位于瑞典,后被oracle收购

* 优点:~成本低:开放源代码,一般可以免费使用

show databases;        查看所有数据库

 use db01         #db01是数据库名称  use 锁定数据库名称

 show tables;        #查看锁定库里面的表名

show tables from db01;        #db01是数据库名  此命令一键查看

 

mysql> create table stuinfo(         #创建表        自己起的表名stuinfo
    -> id int,
    -> name varchar(20));
Query OK, 0 rows affected (0.02 sec)

 

 desc stuinfo;        #查看 stuinfo 表结构

 

 查看mysql版本的三种方式

1:select version();        #登录到mysql服务端

2:  mysql --version         #未登录到mysql服务端

3: mysql -V                       #未登录到mysql服务端   

一,基础查询

        1:进阶1

#语法 select 查询列表 from 表名;

#1. 查询表中的单个字段
select last_name from employees;
#2. 查询表中的多个字段
select last_name,salary,email from employees;
#3. 查询表中的所有字段
select * from employees;
#4. 查询常量值
select 100;
select 'john';
#5. 查询表达式
select 100*98;
select 100%98;
#6. 查询函数 mysql 版本号
select VERSION();
#7. 起别名  也可以把as省略
select 100%98 as 结果;
#8. 去重 关键字 DISTINCT
#案例:查询员工表中涉及到的所有的部门编号
select DISTINCT department_id from employees;
#9. +号的作用
#案例:查询员工名和姓链接成一个字段,并显示为 姓名
select last_name+first_name AS 姓名 from employees;
select CONCAT('a','b','c') AS '结果';
select CONCAT(last_name,first_name) AS '姓名' from employees;
/*
   java中的+号
	 1. 运算符, 两个操作数都为数值型
	 2. 连接符, 两个有一个操作数为字符串
	 
	 mysql 中的+号:
	 仅仅只有一个功能:运算符
	 select 100+90; 两个操作数都为数值型,则做加法运算
	 select '123'+90; 其中一方为字符型,试图将宇字符型数值转换成数值型
										如果转换成功,则继续做加法运算
										如果转换失败,则将字符型数值转换成0
										select 'john'+90;
		select null+10; 只要其中一方为null, 则结果肯定为null
	 
*/
select '100'+50;
select 'join'+50;
select null+50;
#10. 显示表 departments 的结构,并查询其中的全部数据
desc departments;
# 题目 1. 显示出表 employees 中的全部 job_id (不能重复)
select distinct job_id from employees;
# 题目 2. 显示出表 employees 中的全部列,各个列之间用逗号链接,列头显示成OUT_PUT
# 如果字段中为null 会显示 null 我们用 ifnull 把null替换成0
select concat(first_name,',',last_name,',',IFNULL(commission_pct,0)) as 'OUT_PUT' from employees;

        进阶2

#进阶2:条件查询
/*
 语法:
	select
		查询列表
	from
		表名
	where
		筛选条件
	分类:
		一,按条件表达式筛选
				条件运算符:> < = != <> >= <=
		二,按逻辑表达式筛选
				逻辑运算符:&& || !
		三,模糊查询: 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;
# && 和 and 两个条件都为true,结果为true,反之为false
# || 或 or  只要有一个条件为true,结果为true,反之为false
# ! 或 not 如果链接的条件本身为false,结果为 true,反之为 false

#案例1:查询工资在10000到20000之间的员工名,工资以及奖金
select last_name,salary,commission_pct from employees where salary >=10000 and salary <= 20000
#案例2:查询部门编号不是在90到110之间,
select * from employees where department_id<90 or department_id > 110 or salary>15000;
select * from employees where not(department_id>=90 and department_id <=110) or salary>15000;
select department_id from employees
#模糊查询
/*
  like
	特点:
	1. 一般和通配符搭配使用
		通配符
		% 任意多个字符,包含0个字符
		—— 任意单个字符
*/
#案例1:查询员工名中包含字符a的员工信息
select * from employees where last_name like '%a%';
#案例2:查询第三个是s第五个是i的员工名和工资
select last_name,salary from employees where last_name like '__s_i%';
#案例3:查询员工名中第二个字符为_的员工名  ESCAPE表示$是个转义字符
select last_name from employees where last_name like '_\_%';
select last_name from employees where last_name like '_$_%' ESCAPE '$';
#2. between and
#案例1:查询员工编号在100到200之间的员工信息
select * from employees where employee_id >=100 and employee_id<=200
select * from employees where employee_id between 100 and 200
#3. in
#案例:查询员工的工种编号是 
select last_name,job_id from employees where job_id in('AD_PRES','AD_VP','IT_PROG'); 
#4. is null
#案例1:查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees where commission_pct is null 
select last_name,commission_pct from employees where commission_pct is not null 
#安全等于 <=>
select last_name,commission_pct from employees where commission_pct <=> null;
#查询员工号为176的员工的姓名和部门号和年薪
select last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) as '年薪' from employees;

相关文章:

  • 回溯算法 - 二叉树中和为某一值的路径 字符串的排列
  • 纯C实现的贪吃蛇(无EasyX,详解)
  • JAVA计算机毕业设计SUNHome家政服务管理平台Mybatis+系统+数据库+调试部署
  • 【项目管理】Java离线版语音识别-语音转文字
  • HTML5标签+基础特性
  • git的相关操作
  • ES6--》读懂JS中—Class类
  • 机器学习笔记(三)
  • 【Java 面试题】经典 Java 面试题 200 问(下)
  • 瑞吉外卖之 redis优化缓存
  • [JavaWeb]—前端篇
  • 机器学习感知机原理及python代码实现
  • js 对象
  • 图解Redis 记录
  • 网络安全的行业黑话 ——防守篇之软硬件
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017-09-12 前端日报
  • Android框架之Volley
  • HTML中设置input等文本框为不可操作
  • HTTP--网络协议分层,http历史(二)
  • HTTP中的ETag在移动客户端的应用
  • java小心机(3)| 浅析finalize()
  • orm2 中文文档 3.1 模型属性
  • SpingCloudBus整合RabbitMQ
  • 免费小说阅读小程序
  • 使用agvtool更改app version/build
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 写代码的正确姿势
  • 一些css基础学习笔记
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​iOS实时查看App运行日志
  • ​学习一下,什么是预包装食品?​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)winform之ListView
  • (转载)OpenStack Hacker养成指南
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .bashrc在哪里,alias妙用
  • .Net 6.0 处理跨域的方式
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net6+aspose.words导出word并转pdf
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .Net的C#语言取月份数值对应的MonthName值
  • .net开发时的诡异问题,button的onclick事件无效
  • /etc/motd and /etc/issue
  • ::前边啥也没有
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝