MySQL-05-子查询
子查询子查询也叫 嵌套查询,就是在 SQL 语句中,部分值是从查询语句中返回的。子查询的语句需要在 () 中写出来,然后会替换查询返回的结果:
比如:查询工资大于 Abel 的人:
123SELECT last_name, salary FROM employeesWHERE salary > (SELECT salary FROM employees WHERE last_name = "Abel" );
子查询位置子查询 除了 在 GROUP BY(接收参数是当前表的列名,用来提取数据分组)和 LIMIT(只接收数字)无法使用子查询以外,其他地方都可以用子查询返回的内容作为参数。
1234567SELECT 每一行的子查询返回的单行内容可以作为新的一列的数据FROM/JOIN 子查询返回内容可以作为一个表(需要起别名)WHERE 可以GROUP BY 不可以HAVING 可以ORDER BY 接收的是每一行的排序依据,可以从子查询中获取LIMIT 不可以
SELECT 子查询SELECT 中,每一行的子查询返回的单行内容可以作为新列的数据。
12345 ...
MySQL-04-函数-分组查询
流程控制MySQL 支持简单的流程控制,通过指定的条件判断来执行不同的指令:
if(A,B,C)语法:等价于 A?B:C,如果 A 为真,则返回 B,为假则返回 C。
1SELECT last_name, salary, IF(salary>6000,"有钱","没钱") FROM employees;
case when语法:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 …. [ELSE resultn] END。
1234567-- case 后面的 when 是逐个对比,符合就返回 then 的后面。SELECT last_name,salary, CASEWHEN salary>=15000 THEN '富豪'WHEN salary>=10000 THEN '有钱人'WHEN salary>=8000 THEN '打工人'ELSE '穷人' END -- END 为结束。FROM employee ...
MySQL-00-基本概念
关系型数据库 RDBMSRDBMS Related DataBase Management System,关系型数据库。
MySQL 的关系型,体现的就是不同的表之间,是有数据关系的,一个表将学号和姓名绑定,其他表将班级和姓名绑定,通过这样的方式,表和表之间就建立了关系,可以进行复杂的查询。
对应的非关系型数据库,就是数据之间彼此独立的,比如 Redis。
表与表的关系
有四种:一对一关联、一对多关联、多对多关联、自我引用
一对一关联
在实际的开发中应用不多,因为一对一可以创建成一张表。
举例:设计学生表:学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、…
拆为两个表:两个表的记录是一一对应关系。
基础信息表(常用信息):学号、姓名、手机号码、班级、系别
档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人、…
两种建表原则:
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
外键是主键:主表的主键和从表的主键,形成主外键关系。
一对多关系
常见实例场景:客户表和订单表,分类表和商品表,部门表和员工表 ...
MySQL-03-多表查询
排序 ORDER BY排序语句,将要显示的数据按照自己要求的规则进行排序。
将 SELECT 出来的数据,按照指定的列值进行排序,ASC 为从小到大,DESC 为从大到小,如果不写排序方式,则默认为 ASC,从小到大。
ASC全称ascend ,为升序的意思,即从小到大。
DESC全程descend,为降序的意思,即从大到小。
12select * from "table"order by column1 ASC/DESC, column2 ASC/DESC;
如果 ORDER BY 后面有多个列,则满足 column1 的排序规则后,对于 column1 相等的列则进行 column2 的排序。
排序依据对于 ORDER BY 后面跟着 FROM 表里面的 column 的,就可以直接找到对应的数据,作为排序依据。
如果利用关系子查询返回的内容作为排序依据,那么则会执行子查询,返回结果作为本行的排序依据。
分页 LIMIT用来只显示一段指定的查询出来的结果,只能放在语句末尾。
基本用法LIMIT [位置偏移量,] 行数
第一个 “位置偏移量” 参数指示 My ...
MySQL-02-运算符
DUAL 表Dual 是一个为了满足 SELECT xxx FROM xxx 这样格式的一个虚拟的表,可以当做一个表名字来用,如:
SELECT 1+1 FROM DUAL;
但其实 MySQL 中,不加 FROM xxx 也可以返回对应的运行结果。
算术运算符这些都是最基本的算术运算符,可以在 MySQL 中直接使用。其计算结果会作为一个新的列。
1SELECT PASSWORD+1 FROM `User`;
结果是:
1234567password+112412341234123412341234
比较运算符比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回 1 ,比较的结果为假则返回 0 ,其他情况则返回 NULL。
比较运算符经常被用来作为 SELECT 查询语句的条件 来使用,返回符合条件的结果记录。
= 比较判断规则1 表示 true,0 表示 false。
在使用等号运算符时,遵循如下规则:
如果等号两边的值、字符串或表达式都为字符串,则 MySQL 会按照字符串进行比较,其比较的是每个字符串中字符的 ANSI 编码是否相等。
如 ...
MySQL-01-SELECT
注意事项
在进行查询的时候,一定要想到 查询结果为空 有重复数据 数据中含有NULL !
SQL 命令基本结构12345678select <select_list>from <table_name><join_type> join <join_table> on <join_condition>where <where_condition> -- 对笛卡尔积后的表进行过滤group by <group_by_list> -- 对制定的列的现有组合方式为依据进行分组,非分组依据的列,需要使用聚合函数来显示having <having_condition> -- 对分组后的数据进行过滤,此时可以使用列别名order by <order_by_condition> -- 对结果进行排序limit <limt_number> -- 对结果进行分页,只看部分结果
注释123单行注释:# 注释文字(MySQL特有的方式)单行注释:-- 注释文字(--后面必须包含一个空格。 ...
Linux-04-磁盘进程软件定时任务
磁盘管理目录结构 treetree /xxx 查看 xxx 目录下递归子目录的所有内容,需要 yum 下载。
文件大小 dudu disk usage,可以查看磁盘使用情况。
du -ah /xxx 查看目录下所有文件大小情况。
du -sh /xxx 查看目录下文件总大小
du -ah --max-depth=n 查看目录下 n 层的文件大小情况
磁盘空间 dfdf disk free 查看当前机器的磁盘空间,剩余量,挂载位置等等。
df -h -h 是 human 的意思,可以让数据方便易懂。
12345678Filesystem Size Used Avail Use% Mounted ondevtmpfs 909M 0 909M 0% /devtmpfs 919M 32K 919M 1% /dev/shmtmpfs 919M 17M 903M 2% /runtmpfs 919M 0 919M 0% ...
Linux-03-控制符权限用户搜索压缩
控制符输出重定向 > >>order1 > file1 将 order1 返回的内容覆盖写入 file1 中。
order1 >> file1 将 order1 返回的内容追加写入 file1 中。
管道符 |order1 | order2 将 命令1 执行的结果返回给 命令2 作为输入。
常用和 grep 一起用。
权限概念权限表示文件或者目录的权限表示: r-xr-xr-x 每三位一组,分别表示 user group others 所属的权限。
u (user) 表示该文件的拥有者,g (group) 表示与该文件的拥有者属于同一个群体者,o (others) 表示其他以外的人,a (all) 表示这三者皆是。
一组的三位表示权限的意思分别是:r (read) 读取,w (write) 写入,x (executable) 执行,- 表示没有此项权限。文件和目录对于权限的解释是不同的。
文件:注意拥有文件的 w 权限不代表可以删除文件。要删除文件需要有当前目录的 w 权限才可以。
目录:r 表示可以 ls 查看目录内容。w 表示可以删除新增重命 ...
Linux-02-网络系统目录文件
网络方面如果我们要修改网络配置的话,需要改相应的配置文件,配置文件在 /etc 目录下面,网络的话就是 /etc/sysconfig/network-scripts/
ifconfig我们可以用 ifconfig (interfaces config)命令显示网络设备。下面是显示内容详解:
名称
含义
eth0
网卡设备号
Link encap
基本描述,链接概况
HWaddr
硬件MAC地址
inet addr
网络ip地址
Bcast
广播ip地址
Mask
子网掩码
inet6 addr
对应的ipv6地址
Scope
作用域,范围
UP
网卡已经启用
BROADCAST
支持多播
RUNNING
网卡正在运行
MULTICAST
支持多播
MTU
最大传输单元
Metric
度量值,用于估算路由成本
RX packets:
接收正确的数据包数
errors:
错误的数据包数
dropped
接收丢弃的数据包数
overruns:
接收时由于过速丢弃的数据包数
frame:
接收时,由于fram ...
Linux-01-基础概念
Linux 简介
最早的操作系统相关是 Unix 操作系统,诞生与 1970 年,是一个比较完善的分时操作系统。(分时操作系统是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统,用来降低使用计算机的成本)
之后 C 语言诞生了,程序员们用这种高效的,可以移植性强的语言代替汇编语言重写了 Unix 系统,美国官方将 Unix,C 语言,ICP/IP 协议,当作标准开始推广。成功对后来的计算机发展产生了深远的影响。
有一天 Unix 突然宣布不开源了,因此有些程序员将 Unix 系统进行改编,于是就有了各种 Unix 的衍生版本,如:Sun Solaris、FreeBSD、IBM AIX、HP-UX 等等。
除此之外,还有一个编写 Unix 衍生版本的计划 GNU 被发起了,而 GNU 则是 GNU Not Unix 的递归缩写。自发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的组件,像是——函数库(libraries)、编译器(compilers)、调式工具(debugs)、文本编辑器(text editors)、网站服务器(web ...