2021-05-05

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

上一篇:PrettyTable模块


下一篇:javascript从入门到高级,每天不停更新知识点(13天)