zoukankan      html  css  js  c++  java
  • day0220211228

    湖南

    day02数据库

    一.sqlyog工具的使用

    1.新建连接

    找到了压缩包,进行解压,进去找一个exe应用程序,双击.
    填入正确密码 - 连接测试 - 连接

    2.数据库

    直接右键 - 新建数据库 - 设置数据库名/选成utf8的编码表 - 创建

    3.表

    选中Tables - 右键 - 新建表 - 设计字段名称/字段类型/字段长度 - 创建

    4.记录

    选中表 - 右键 - 打开表 - 可以直接录入数据(修改/删除) - 执行SQL看结果

    二.字段约束

    1.主键约束

    #1.主键约束:每张表都应该有主键,特点是:非空且唯一
    CREATE TABLE test6(id INT PRIMARY KEY)
    INSERT INTO test6 VALUES(1)
    INSERT INTO test6 VALUES(1)#id是主键,值唯一
    INSERT INTO test6 VALUES(NULL)#id是主键,值不能为空
    SELECT * FROM test6
    #主键约束要求,值不能为空而且不能相同!!
    #2.问题是:要去关心主键值到底应该写几了呢??
    INSERT INTO test6 VALUES(3)
    #3.从此以后,交给MySQL数据库来维护主键的值,自增++
    CREATE TABLE test7(
     id INT PRIMARY KEY AUTO_INCREMENT,
     NAME VARCHAR(10)
    )
    INSERT INTO test7 VALUES(NULL,'rose');
    INSERT INTO test7 VALUES(NULL,'jack');
    

    三.基础函数

    MySQL数据库为了提高程序员操作数据的效率,提供了很多函数
    常见的有: upper/lower/length/concat/replace/year/month…/round…

    1.lower & upper

    #基础函数:MySQL提供的一些函数
    #练习1:查询部门表的所有数据
    #查询 所有 from 表名
    SELECT * FROM dept
    #练习2:查询部门表的所有部门名称
    SELECT dname FROM dept
    #练习3:查询部门表的所有部门名称和地址
    SELECT dname a FROM dept#设置别名
    SELECT dname,loc FROM dept
    #练习4:查询所有部门名称和大写的名称upper
    SELECT dname,UPPER('abc'),UPPER(dname) FROM dept
    #练习5:把员工名字转大写
    SELECT ename,UPPER(ename) FROM emp
    #练习6:把ABC转小写lower
    SELECT LOWER('ABC') FROM dept
    

    2.length & substr & concat

    #练习7:查询dname的长度
    #length:底层会去查询utf8表,规定了一个字母或数字长度为1,一个汉字长度为3
    SELECT dname,LENGTH(dname),loc,LENGTH(loc) FROM dept
    #练习8:截取部分dname的值
    #SUBSTR(a,b,c)-a是字段名称b是开始截取的位置c是截取的长度
    SELECT dname,SUBSTR(dname,3) FROM dept
    SELECT dname,SUBSTR(dname,3),SUBSTR(dname,3,3) FROM dept
    #练习9:把dname的值拼接hello
    #concat(1,2,3)-拼接字符串,1是字段名称2是第一次拼接的内容3是继续要拼接的内容
    SELECT dname,CONCAT(dname,'hello',100) FROM dept
    

    3.replace & ifnull & round

    #练习10:把dname的a替换成666
    #replace(1,2,3)-替换字符串,1是字段名称2是要被替换掉的3是新值
    SELECT dname,REPLACE(dname,'a','666') res FROM dept
    #练习11:查询员工的奖金
    #ifnull(1,2)-对null元素的替换操作1是字段名称2是null要被换成谁
    SELECT comm,IFNULL(comm,0) FROM emp
    #练习12:统计员工的月薪
    SELECT sal,comm,sal+IFNULL(comm,0) FROM emp
    #练习13:对小数的精确处理
    #round四舍五入取整 & ceil向上取整 & floor向下取整
    SELECT comm,ROUND(comm),CEIL(comm),FLOOR(comm) FROM emp
    SELECT comm,ROUND(comm,2) FROM emp#四舍五入,并保留一个小数
    

    4.日期函数 & 转移符号

    #练习14:对日期数据的精确处理
    #now & year & month & day & hour & minute & second
    SELECT NOW()#获取当前的系统时间
    SELECT YEAR('2000-1-1') #获取日期中的年
    SELECT YEAR( NOW() ) #获取当前年
    SELECT YEAR( NOW() ), MONTH( NOW() ), DAY( NOW() )
    SELECT HOUR( NOW() ), MINUTE( NOW() ), SECOND( NOW() )
    
    #转义字符,是指在SQL语句中有特殊函数的一些符号,需要\转义
    SELECT 'xi\'an'
    SELECT "xi'an" 
    

    四.条件查询

    1.distinct & where

    #1.distinct去重
    #练习1:查询部门地址
    SELECT DISTINCT loc  FROM dept 
    #2.where
    #练习2:查询编号=1的部门信息
    #     查所有    表名  查询条件(字段名称=字段值)
    SELECT * FROM dept WHERE deptno=1
    #练习3:查询办公地址在二区的部门名称
    SELECT dname FROM dept WHERE loc='二区' #办公地址在二区的
    #练习4:查询工资>8000的员工信息
    SELECT * FROM emp WHERE sal>8000 #工资>8000
    #练习5:查询岗位是员工并且工资>3000的员工姓名
    SELECT ename FROM emp 
    WHERE job='员工' AND sal>3000 #条件间的并且关系
    #练习6:查询工资=3000 工资=8000的员工信息
    SELECT * FROM emp 
    #where sal=3000 or sal=8000#条件间的或者关系
    WHERE sal IN(3000,8000)#in子句,效果语义同上
    

    2.模糊查询

    #3.like模糊查询,通常使用%通配0~n个字符
    #练习7:查询名字里包含a的员工信息
    SELECT * FROM emp WHERE ename LIKE '%a%'#包含a的
    #练习8:查询工作岗位中有总字的员工姓名
    SELECT ename,job FROM emp WHERE job LIKE '%总%'#包含总
    #练习9:查询工作岗位以总开头的员工姓名
    SELECT ename,job FROM emp WHERE job LIKE '总%'#以总开头,高效
    SELECT ename,job FROM emp WHERE job LIKE '%总'#以总结尾
    

    3.null & between and

    #4.null
    #练习10:查询没有奖金的员工的信息
    SELECT * FROM emp WHERE comm IS NULL
    #练习11:查询有奖金的员工的信息
    SELECT * FROM emp WHERE comm IS NOT NULL
    #5.between and 在区间范围内
    #练习12:查询工资在[5000,10000]的员工信息
    SELECT * FROM emp 
    #where sal>5000 and sal<10000#更灵活的表达条件
    WHERE sal BETWEEN 5000 AND 10000 #效果语义同上,两边都包含
    #练习13:查询2015年至2019年入职的员工信息
    SELECT * FROM emp 
    #WHERE hiredate>='2015-1-1' AND hiredate<='2019-12-31'
    WHERE YEAR(hiredate) BETWEEN 2015 AND 2019
  • 相关阅读:
    CMD 下运行python的unittest测试脚本无输出
    Python2 HTMLTestRunner自动化测试报告美化
    Python3 HTMLTestRunner自动化测试报告美化
    Python+Selenium练习篇之5-利用partial link text定位元素
    Python+Selenium练习篇之6-利用class name定位元素
    Python+Selenium练习篇之3-利用tag name定位元素
    Python+Selenium练习篇之4-利用link text定位元素
    Python+Selenium练习篇之2-利用ID定位元素
    Python+Selenium练习篇之1-摘取网页上全部邮箱
    Python+Selenium基础篇之5-第一个完整的自动化测试脚本
  • 原文地址:https://www.cnblogs.com/elliottmoo/p/15742343.html
Copyright © 2011-2022 走看看