MySQL笔记
一.#查询数值型数据:
SELECT * FROM tb_name WHERE sum > 100;
查询谓词:>,=,<,<>,!=,!>,!<,=>,=<
二.#查询字符串
SELECT * FROM tb_stu WHERE sname = '小刘'
SELECT * FROM tb_stu WHERE sname like '刘%'
SELECT * FROM tb_stu WHERE sname like '%程序员'
SELECT * FROM tb_stu WHERE sname like '%PHP%'
三.#查询日期型数据
SELECT * FROM tb_stu WHERE date = '2011-04-08'
注:不同数据库对日期型数据存在差异: :
(1)MySQL:SELECT * from tb_name WHERE birthday = '2011-04-08'
(2)SQL Server:SELECT * from tb_name WHERE birthday = '2011-04-08'
(3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#
四.#查询逻辑型数据
SELECT * FROM tb_name WHERE type = 'T'
SELECT * FROM tb_name WHERE type = 'F'
逻辑运算符:and or not
五.#查询非空数据
SELECT * FROM tb_name WHERE address <>'' order by addtime desc
注:<>相当于PHP中的!=
六.#利用变量查询数值型数据
SELECT * FROM tb_name WHERE id = '$_POST[text]'
注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接
七.#利用变量查询字符串数据
SELECT * FROM tb_name WHERE name LIKE '%$_POST[name]%'
完全匹配的方法"%%"表示可以出现在任何位置
八.#查询前n条记录
SELECT * FROM tb_name LIMIT 0,$N;
limit语句与其他语句,如order by等语句联合使用,会使用SQL语句千变万化,使程序非常灵活
九.#查询后n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n
十.#查询从指定位置开始的n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n
注意:数据的id是从0开始的
十一.#查询统计结果中的前n条记录
SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num
十二.#查询指定时间段的数据
SELECT 要查找的字段 FROM 表名 WHERE 字段名 BETWEEN 初始值 AND 终止值
SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18
十三.#按月查询统计数据
SELECT * FROM tb_stu WHERE month(date) = '$_POST[date]' ORDER BY date ;
注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值
十四.#查询大于指定条件的记录
SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;
十五.#查询结果不显示重复记录
SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件
注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替
十六.#NOT与谓词进行组合条件的查询
(1)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 <起始值 AND >终止值
(2)IS NOT NULL 对非空值进行查询
(3)IS NULL 对空值进行查询
(4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询
十七.#显示数据表中重复的记录和记录条数
SELECT name,age,count(*) ,age FROM tb_stu WHERE age = '19' group by date
十八.#对数据进行降序/升序查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 DESC 降序
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 ASC 升序
注:对字段进行排序时若不指定排序方式,则默认为ASC升序
十九.#对数据进行多条件查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。
二十.#对统计结果进行排序
函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和
如:SELECT name,SUM(price) AS sumprice FROM tb_price GROUP BY name
SELECT * FROM tb_name ORDER BY mount DESC,price ASC
二十一.#单列数据分组统计
SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC
注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
二十二.#多列数据分组统计
多列数据分组统计与单列数据分组统计类似
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC
SELECT id,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
二十三.#多表分组统计
SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;
clear
ls 查看文件或者目录
ls -l 以长格式显示
ll
ls -a 显示所有,包括隐藏文件目录
ls -d 目录本身的信息
cd /etc/sysconfig/network-scripts/ 进入/切换路径
cd ..切换到上级目录
cd.. 错误,必须加空格
cd / 切换到根目录
cd /root 切换到root/~
pwd 显示文件/文件夹的全路径、当前工作目录的名称
touch a.txt 创建文件
cat a.txt 查看文件内容
mkdir /data/file/a.txt 创建目录
mkdir -p /data/file/a.txt 如果有一层没有,自己创建/递增创建
mkdir -v /data/file/a.txt 查看文件创建过程
rm -rf a.txt/ 删除目录中的子目录和所有的文件
rm hadoop-2.7.2 报错 要加-rf
rm -rf hadoop-2.7.2
cp /root/a.txt【源文件目录】 /data/file/【目标文件目录】 复制文件/目录
cp -f /root/a.txt /data/file/ 强行复制
cp -p /root/a.txt /data/file/ 复制的同时把所有者、所属组、权限和时间都复制
cp -R /root/a.txt /data/file/ 递归复制
mv /data/file/a.txt【源文件目录】 /data/【目标文件目录】 移动文件或者目录
移动和复制的区别:
移动:源文件里面的文件目录删除,目标文件有该文件目录
复制:源文件里面的文件目录不删除,目标文件也还有该文件目录
rm -rf file/ 删除文件或者目录
more /etc/passwd 分页查看文件
head /etc/passwd 从头查看文件内容,默认是10行
head -2 /etc/passwd 查看后2行
tail -10 /etc/passwd 查看文件的尾部10行,默认是10行
tail /etc/passwd
grep root /etc/passwd 查看【/etc/passwd】文件中包含【root】这个单词所有行
grep baidu /etc/passwd 查看【/etc/passwd】文件中包含【baidu】这个单词所有行
grep wyj /etc/passwd 查看【/etc/passwd】文件中包含【wyj】这个单词所有行
grep wyj /etc 能查看文件夹/目录吗:不能
find /etc/ -name dhcp 查看【/etc】文件夹中名字为【dhcp】文件目录
find /etc/ -size -10M 查看【/etc】文件夹中文件目录小于10M文件目录
find /etc/ -size +10M 大于10M的
tar -zvxf hadoop-2.7.2.tar.gz 解包/打包
grep 查找的是行
find 查找的是文件
r:read 读/可读 4
w:write 写/可写 2
x:execute 执行/可执行 1
-rw-r--r--. 1 root root 563 11月 15 16:19 ip.txt
chmod u+x,g+w ip.txt
chown wyj ip.txt
userdel -rf group 删除用户
useradd www 添加用户
tail -5 /etc/passwd 查看用户/查看后五行用户信息
useradd 【-d /usr/wws】 wws 添加用户,并且设置用户的家目录
useradd 【-u 888】 wwg 添加用户,并且设置用户id
id wws 查看wws这个用户/可以查看一个指定的用户信息
groupadd group1 添加用户组/组
tail -5 /etc/group 查看组,查看后五行组的信息
groupadd 【-g 745】 group2 添加组,并设置组id
passwd www
tail -5 /etc/shadow
root-->普通用户 不需要密码
普通用户-->root 需要密码,需要root密码
普通用户-->普通用户 需要密码
usermod -u 666 www
usermod -d /usr/www www
用法:groupmod [选项] 组
选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
chmod u-w,g+x a.txt
chmod 777 a.txt
chown www a.txt
chown wyj:wyj a.txt
su root
vim /etc/sudoers
root ALL=(ALL) ALL
wyj ALL=(ALL) ALL
sudo vim ifcfg-ens33
用法: rpm [选项...]
查询选项(用 -q 或 --query):
-c, --configfiles 列出所有配置文件
-d, --docfiles 列出所有程序文档
-L, --licensefiles list all license files
--dump 转储基本文件信息
-l, --list 列出软件包中的文件
--queryformat=QUERYFORMAT 使用这种格式打印信息
-s, --state 显示列出文件的状态
rpm -q -s dhcp
rpm -e dhcp
rpm -ivh dhcp
yum install dhcp
yum clean all
yum -y install dhcp
yum info dhcp
rpm -q dhcp
rpm -ql dhcp
yum -y remove dhcp
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
gcc --version
hadoop
java -version
ifconfig
ifconfig ens33 mtu 888
ifconfig ens33 192.168.1.101
ifconfig ens33 down
ifconfig ens33 up
ifconfig
hostnamectl status
hostnamectl set-hostname dzqc
7.2
netstat -a
netstat -au
netstat -at
ping www.baidu.com
ping -c 5 www.baidu.com
systemctl stop firewalld 关闭防火墙
systemctl status firewalld 查询防火墙
systemctl start firewalld 启动防火墙
fdisk -l 查看所有分区
fdisk -l /dev/sda
fdisk /dev/sda
7.3
partprobe /dev/sda 同步磁盘
reboot 重启虚拟机
umount /dev/sda1 取消挂载
mkfs.xfs /dev/sda1 更改格式--xfs
blkid 查看已挂在分区的信息
mkfs.ext3 /dev/sda1
mkfs.xfs /dev/sda1
mkfs.xfs -f /dev/sda1
df 显示磁盘相关信息
lsblk 查看挂载分区
mount | tail -1
mount -a
df -h | grep -v tmpfs
ifconcig ens33 【网络接口代号】192.168.1.101 :设置临时IP
八. shell(脚本)
tepy 命令名称【ls】:查看是否是shell的内置命令
type cd
type pwd
cat /etc/shells
cd /usr/bin
finnd /usr/bin -name ls :查找/usr/bin名字是ls的文件夹/目录
cd /data
touch first.sh
vim first.sh
#!/bin/sh sh是bash的缩写
echo 123
echo 1 2 3 4
echo "hello wold " 输出语句
1 sh first .sh
2 chmod +x first.sh : 添加一个可执行的权限
. _ /data/three/first.sh source /data/three/first.sh 执行脚本命令,如果使用这种就要修改权限
source first .sh
【fist】 脚本
#!/bin/sh
var="hello world"
echo $var
echo "$var"
echo '$var'
echo var
echo "---------特殊字符----------"
echo '$#='$#
echo '$0='$0
echo '$1='$1
echo '$2='$2
echo '----------$@ $*-------------'
echo '$@'$@
echo '$*'$*
8.3.3
Java 整数
int x = 3
shell
x【变量】 = 3
var= hello world 切记不要加空格
echo $var----------hello world-----------输出变量
echo "$var"----------hello world---------输出变量
echo '$var'----------$var----------输出本身
echo var----------var
声明变量/创建变量
程序设计语言/脚本
var= hello world
命令语言
X=2
查看变量
echo $var
echo $X
取消变量
unset x
特殊变量
$#是传给脚本的参数个数
$О是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@是传给脚本的所有参数的列表
$*是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$是脚本运行的当前进程ID号
$?是显示最后命令的退出状态,0表示没有错误,其他表示有错误 $ ! Shell最后运行的后台Process的PID
可以给参数
sh first.sh hello hi yes no bye goodbye【参数】
变量:变化的量 x=2 x="this is first.sh"
常量 x=2
声明变量:变量名=值【x=2】 没有空格
source first.sh
. first.sh 都是bsh里面的执行命令 在bsh里面$0是显示脚本类型
在bash里面$0是表示文件名称
在命令语言中声明变量
x =188
echo $x 输出变量
unset x 取消变量
声明环境变量 export 变量名【大写】=值
查看环境变量 vim /etc/profile
shift 删除后面一个单词
let的用法
let 表达式 比如let y=$x+1
((表达式))
expr的用法
expr $x + $y 切记有空格
字符串
大于> 小于< 等于= 不等于!= 小于等于<= 大于等于>=
-n不为空 -z为空
数字
equal -eq 相等
notequal -ne 不相等
greater -gt 大于
greater equal -ge 大于等于
less -lt 小于
less equal -le 小于等于
! 相反的逻辑,不是.....
if语句的语法
if [条件语句];then
逻辑
fi
--------------------
if [条件语句];then
逻辑
else
逻辑
fi
------------------------
if [条件语句];then
逻辑
elif [条件语句];then
逻辑10:16 2020/12/7
else
逻辑
fi
exit 0
exit 0:正常执行,执行完退出
exit 1:非正常运行并退出
[egrep]
a=1 | a=2
格式1:egrep[选项]'正则表达式’文件路径
格式2:前置命令legrep[选项]'正则表达式'
运行结果 | 条件
-i : 忽略字母大小写
-v : 条件反举
-c : 统计匹配的行数
-p: 静默、无任何输出,一般用于检测
-n: 元出儿A配结果所在的行号
--color: 标红显示匹配字串
[ ]内加^可取反示例
[alc45_?] 匹配 a、l、c、4、5、_、?
[a-z]匹配任意小写字母
[A-Z]匹配任意大写字母
[0-9]匹配任意数字
[a-Z0-9]匹配任意字母或数字
[^A-Z]匹配包括非大写字母的行
[^a-z]匹配不以小写字母开头的行
sed
格式
sed基本处理动作
p 打印行 2,4p出第2、3、4行
2p;4p 输出第2行、4行
d 删除行 2,4d删除第2、3、4行
s/old/new/将每行的第1个old替换为new
s/old/new/3将每行的第3个old替换为new
s字符串替换 s/old/new/g将所有的old都替换为new
a追加 2a yes在第二行后面追加单词yes
i 插入 3i no在第三行前面插入no