基本sql查询语句

基础查询方式:
select  字段   from  表名;
select * from 表名;
去重
select distinct 字段  from  表名;
基础条件查询
select 字段  from  表名  where   条件  运算符  值;
运算符 名称
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 包含
注:
在某些版本的sql中,操作符<>可以写为!=。
sql中使用单引号来环绕文本值(大部分数据库系统也可接受双引号),数值不用引号。
and和or运算符
and:如果第一个条件和第二个条件都成立,则and运算符显示一条记录。
or:如果第一个条件和第二个条件中只有一个成立,则or运算符显示一条记录。
select 字段 from 表名  where  字段 运算符 值   and/or   条件  运算符  值;

注:and与or结合(使用圆括号组成复杂表达式) 
select 字段  from  表名  where   (条件  运算符   值   and/or   条件   运算符  值)  and/or  条件   运算符  值;
order   by默认排序
desc   倒序
select   字段  from  表名   order  by或desc;
插入
insert  into   表名   values  (值1,值2,...);
insert into 表名(字段1,字段2) voalues (值1,值2,...);
修改
update  表名   set  字段 = 新值  where   字段 = 某值;
删除
drop 删除表:删除内容和定义,释放空间
drop table 表名;

delete  删除内容,不删除表结构,一行一行删
delete table 表名;
delete   from   表名  where  条件 = 值;

truncate 删除内容、释放空间,但不删除表结构;
truncate table 表名;
like模糊查询
select   字段  from  表名    where   字段 like   'N%';
注:“%”可用于第一通配符
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
in
select    字段   from   表名  where   字段  in  (value1,value2,...);
between...and 选取介于两个值之间的数据范围,这些值可以是数值、文本或日期。
select   字段  from  表名  where  字段   between   value1    and   value2;
Alias别名
表的别名:
select   字段  from   表名   as   名称;
字段的别名:
select   字段   as  名称  from   表名;
join

join字段内容值一致
inner join 内连接:产生的结果是两边的交集

select 字段   from 表名1  inner  jion  表名2  on  表名1.字段=表名2.字段

left join 左连接:以左边的表为基准,不管是否满足条件都会把左边的数据全部展示,而右边的数据只显示能匹配上的,匹配不上时用null填充;

select   字段  from  表名1 left   jion  表名2   on  表名1.字段=表名2.字段

right join 右连接:理解方式同左连接,只是换成了以右边的表为基准,左边的数据去匹配,只显示能匹配上的,匹配不上用null填充;

select  字段  from  表名1  right jion  表名2   on   表名1.字段=表名2.字段

FULL OUTER JOIN: 全连接,产生的结果是表A和表B的并集,也就是会全部显示出来

SELECT 字段
FROM 表1
FULL OUTER JOIN 表
ON 表1.字段=表2.字段;

Cross join:交叉连接

SELECT 字段 FROM 表1 CROSS JOIN 表2 WHERE 条件;
或
SELECT 字段 FROM 表1, 表2 WHERE 条件;

union内部的select 语句必须拥有相同数量的列。
列必须属于相同类型,同时列名顺序必须相同。
类型不同可强制转换cast (字段 as 类型:int float double varchar char等)

select   字段  from  表名1
union
select  字段 from   表名2
注:默认union操作符选取不同值,若允许重复的值,可使用union  all。
select into 加入临时表
select   into  语句从一个表中选取数据,然后把数据插入至另一个临时表中。
select   *   into  临时表  from   old表;
select  *  into   临时表  from   old表  where   条件   运算符   值;
select count()
count(*)函数返回表中的记录行数:
select  count(*)  from   表名;
select sum ()
sum 函数返回数之列的总数(总额)。
select   sum(字段)  from   表名;
注 :通常配合group  by使用;
group by
group  by   用于结合合计函数,根据一个或多个列对结果集进行分组;
select   字段1,sum(字段2)   from   表名    group by  字段1;

李泽信 发布于 2022-3-23 23:00

mq安装脚本

#!/bin/bash

#判断使用root用户
if [[ $UID -ne 0 ]];then
    echo "使用root 执行此脚本"
    exit 1
fi

#预设参数
mqfile=/data/soft/mq
temp=mqtemp
mqport=61616
mqadminport=8161
#mqpath=/data/mq
#jdkpath=/data/jdk1.8
#password="1qaz0p;/"

#开始菜单,界面输入参数
read -p "请输入MQ安装目录名(如:/data/mq):" mqpath
echo -e "MQ部署路径:$mqpath\n"
read -p "请输入JDK安装目录名:(如:/data/jdk1.8):" jdkpath
echo -e "JDK部署路径:$jdkpath\n"
read -p "请输入MQ控制台密码:" password
echo -e "MQ密码设置完成\n"
read -p "请按[Enter]键开始安装MQ程序" een

rm -f /var/run/yum.pid
rm -rf $mqpath
rm -rf data/soft/redis/$temp
echo "清理环境"
#yum安装依赖包
echo -e "\n\n\n Yum 安装依赖包"
yum install -y mpfr cpp ppl cloog-ppl libstdc++-devel gcc gcc-c++ zlib-devel
echo -e "\n\n\n Yum 安装依赖包完成"
#安装MQ
chown -R root.root $mqfile
cd $mqfile
mkdir $temp
tar zxvf apache-activemq-*.tar.gz -C $temp/
mv $temp/apache-activemq-*/ $mqpath

#MQ配置文件修改
echo "MQ配置文件修改"
sed -i -r -e "/^wrapper.java.command\=/c \wrapper.java.command=$jdkpath/bin/java" $mqpath/bin/linux-x86-64/wrapper.conf
sed -i -r -e "/^\<transportConnector name\=\"openwire\"/c \<transportConnector name\=123\> " $mqpath/conf/activemq.xml
sed -i 's/<kahaDB directory="${activemq.data}\/kahadb"\/>/<kahaDB directory="${activemq.data}\/kahadb" journalMaxFileLength="100mb"\/>/g' $mqpath/conf/activemq.xml
sed -i 's/<constantPendingMessageLimitStrategy limit="1000"\/>/<constantPendingMessageLimitStrategy limit="10000"\/>/g' $mqpath/conf/activemq.xml
sed -i 's/<storeUsage limit="100 gb"\/>/<storeUsage limit="100 gb"\/>/g' $mqpath/conf/activemq.xml
sed -i -r -e "/^user\: user/c \#user\: user\, user" $mqpath/conf/jetty-realm.properties
sed -i -r -e "/^admin\: admin/c \admin\: $password, admin" $mqpath/conf/jetty-realm.properties
#添加防火墙端口8161
echo "防火墙Iptable,添加端口策略:$mqport $mqadminport"
sed -i -r -e "12i \#mq端口\n-A INPUT -p tcp -m state --state NEW -m tcp --dport $mqport -j ACCEPT\n" /etc/sysconfig/iptables
sed -i -r -e "12i \#mq后台端口\n-A INPUT -p tcp -m state --state NEW -m tcp --dport $mqadminport -j ACCEPT\n" /etc/sysconfig/iptables
systemctl restart iptables.service
echo -e "MQ部署完成\n部署路径:$mqpath\n启动命令:\ncd $mqpath/bin/linux-x86-64\n./activemq start\nmq后台密码:$password"

李泽信 发布于 2022-3-11 15:22

nginx日志切割

#!/bin/bash

# Date:2022-3-9
# Author:lizexin
# version:1.0
# Explain:Nginx log slicing script.

# 路径
Log_Path=/data/nginx/logs

# 获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y%m%d)

# PID文件路径
Log_PID=/data/nginx/logs/nginx.pid

# 分割日志
mv ${Log_Path}/access.log ${Log_Path}/access_${YESTERDAY}.log
mv ${Log_Path}/error.log  ${Log_Path}/error_${YESTERDAY}.log

# 向Nginx主进程发送USR1信号,重新打开日志文件

kill -USR1 `cat ${Log_PID}`

李泽信 发布于 2022-3-9 15:40

个人资料

搜索

日历

时间进度

    今日剩余 59.6%
    本周剩余 37.1%
    本月剩余 22.0%
    本年剩余 52.2%

访问统计