栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

cgb2110-day02

cgb2110-day02

文章目录
    • 一,准备dept表和emp表
      • --1,dept表
      • --2,emp表
    • 二,MySQL客户端工具sqlyog
      • --1,连接数据库的服务器
      • --2,创建库
      • --3,创建表
      • --4,添加数据
    • 三,MySQL的基础函数
      • --1,概述
      • --2,测试
    • 四,条件查询
      • --1,distinct & where
      • --2,like & null
      • --3,between and & limit & order by

一,准备dept表和emp表 –1,dept表
mysql> show databases;
mysql> use cgb211001;
mysql> show tables;
mysql> drop table dept;
mysql> create table dept(
    -> deptno int primary key auto_increment,
    -> dname varchar(20),
    -> loc varchar(13)
    -> );
mysql> set names gbk;
mysql> insert into dept values(null,'accounting','一区');
mysql> insert into dept values(null,'research','二区');
mysql> insert into dept values(null,'operations','二区');
–2,emp表
mysql> create table emp(
    -> empno int primary key auto_increment,
    -> ename varchar(10),
    -> job varchar(10),
    -> mgr int,
    -> hiredate datetime,
    -> sal double,
    -> comm numeric(8,2),
    -> deptno int
    -> );

mysql> INSERT INTO emp VALUES(100,'jack','副总',NULL,'2002-05-1',90000,NULL,1);
mysql> INSERT INTO emp VALUES(200,'tony','总监',100,'2015-02-02',10000,2000,2);
mysql> INSERT INTO emp VALUES(300,'hana','经理',200,'2017-02-02',8000,1000,2);
mysql> INSERT INTO emp VALUES(400,'leo','员工',300,'2019-02-22',3000,200.12,2);
mysql> INSERT INTO emp VALUES(500,'liu','员工',300,'2019-03-19',3500,200.58,2);

二,MySQL客户端工具sqlyog –1,连接数据库的服务器

新建连接 – 输入了密码 – 确定

–2,创建库

右键 – 创建数据库 – 输入库名和选成utf8 – 确定

–3,创建表

选中Tables — 右键 — 新建表 — 输入字段名称/字段类型/字段长度 — 设置表名 — 成功

–4,添加数据

可以直接在工具里录入数据,保存就行了.
也可以执行SQL,刷新数据就行了.

三,MySQL的基础函数 –1,概述

为了方便的操作数据,MySQL提供了很多函数,
常见的: lower upper length concat substr replace…

–2,测试
#1.查询语句的多种写法
#查询 所有列
SELECT   *   FROM emp; 
#查询 ename列 的值
SELECt ename FROM emp;
#查询 字段名  别名 
SELECt ename  abc FROM emp;#给字段设置别名 
#     字段名 别名 字段名 别名
SELECt ename  a ,  job     b FROM emp;
#2.基本函数:
#upper(m)全转大写,m是字段名称或者字符串
SELECt ename,UPPER('abc'),UPPER(ename) FROM emp;
#lower(m)全转小写,m是字段名称或者字符串
SELECt ename,LOWER('XYZ'),LOWER(ename) FROM emp;
#length(字段名称)求长度,一个字母或数字长度为1,一个汉字为3
SELECt ename,LENGTH(ename),LENGTH(job) FROM emp;#求ename的长度
#substr(a,b,c)截取,a是字段名称b是从第几个开始c是要截取的长度
SELECt ename,SUBSTR(ename,2) FROM emp;
SELECt ename,SUBSTR(ename,2,1) FROM emp;
#concat(a,b,c)拼接,a是字段名称b和c是要拼接的数据
SELECt ename,CONCAT(ename,123,'hello') FROM emp;
#replace(a,b,c)替换,a是字段名称b是要把谁替换成c
SELECT ename,REPLACE(ename,'a','b') FROM emp;
#ifnull(a,b)如果是null就替换,a是字段名称b是要把null替换成b
SELECt comm,IFNULL(comm,100) FROM emp;
#小数处理的: 
#round(a)四舍五入,把a的值取整
SELECt comm,ROUND(comm) FROM emp;
#round(a,b)四舍五入,把a的值保留b位小数
SELECt comm,ROUND(comm,2) FROM emp;
#ceil直接向上取整 & floor直接向下取整
SELECt comm,CEIL(comm),FLOOR(comm) FROM emp;
#日期处理的:
#now & year & month & day & hour  & minute  & second 
SELECt NOW(),YEAR('2021-11-25'),YEAR( NOW() )
	,MONTH( NOW() ),DAY( NOW() )
	,HOUR( NOW() ),MINUTE( NOW() ),SECOND( NOW() )
#转义字符: '
SELECT 'xi'an'
SELECT "xi'an"

四,条件查询 –1,distinct & where
#条件查询:
#1.distinct去重,注意位置
#      字段名     表名
SELECT  loc  FROM dept
SELECt DISTINCT loc FROM dept 
#2.where:条件满足才查
#语法: select 字段名 from 表名 where 字段名=字段值
#练习1:查询地址在一区的部门
SELECt * FROM dept WHERe loc='一区'
#练习2:查询2号部门的所有数据
SELECt * FROM dept WHERe deptno=2
#练习3:查询办公地址在二区的部门名称
SELECt dname FROM dept WHERe loc="二区"
#练习4:查询编号<3的部门地址
SELECt loc FROM dept WHERe deptno<3
#练习5:查询地址在二区的,编号是3的部门名称
#如果查询条件有多个,使用  and并且   or或者 连接
SELECt dname FROM dept WHERe loc="二区" AND deptno=3
#练习6:查询编号是1或者2的部门名称
SELECt dname FROM dept WHERe deptno=1 OR deptno=2
SELECt dname FROM dept WHERe deptno IN (1,2)#效果同上
#练习7:查询地址在一区,或者,编号是3的部门名称
SELECt dname FROM dept WHERe loc='一区' OR deptno=3
#向user表中,录入数据,测试where也可以对增删改设置条件
#练习8:修改3号用户的密码
#语法: update 表名 set 字段名=字段值 where 字段名=字段值
UPDATE USER SET pwd="xyz" WHERe id=3
#练习9:修改密码是123,age=20的用户名
UPDATE USER SET NAME='anglelababa' 
	WHERe pwd=123 AND age=20	
#练习10:删除5号用户
DELETE FROM USER WHERe id=5
–2,like & null
#3.like模糊查询,%是通配符(0~n个字符),_是通配符(1个字符)
#练习11:查询名字是以t开头的员工姓名和岗位
SELECt ename,job FROM emp WHERe ename LIKE 't%'#以t开头,高效
#练习12:查询名字包含o的员工姓名和编号
SELECt ename,empno FROM emp WHERe ename LIKE '%o%'#包含o
SELECt ename,empno FROM emp WHERe ename LIKE '%o'#以o结束
#4.null,对null特殊处理
#练习13:查询没有奖金的员工姓名和岗位
SELECt ename,job FROM emp WHERe comm IS NULL#没有奖金的
SELECt ename,job FROM emp WHERe comm IS NOT NULL#有奖金的

–3,between and & limit & order by
#4.between and区间范围,两边都包含
#练习14:查询工资在[5000~1000]员工姓名和入职日期
SELECt ename,hiredate FROM emp WHERe sal>5000 AND sal<=10000
SELECt ename,hiredate FROM emp WHERe sal BETWEEN 5000 AND 10000
#练习15:查询在2019年入职的员工姓名
SELECt ename FROM emp WHERe hiredate 
	     BETWEEN '2019-1-1' AND '2019-12-31'
SELECt ename FROM emp WHERe YEAR(hiredate)=2019#效果同上
#5.limit分页
#练习16:展示前两个员工的信息
SELECt * FROM emp LIMIT 2 #取前两条
SELECt * FROM emp LIMIT 0,2 #从第0+1条开始取,取2条
SELECt * FROM emp LIMIT 1,3 #从第1+1条开始取,取3条 
#6.order by字典顺序排序,默认升序,非要降序就写明DESC
#练习17:按照工资排序
SELECt * FROM emp ORDER BY sal DESC
#练习18:按照名字排序,按照字典顺序排序
SELECt * FROM emp ORDER BY ename
#练习19:按照日期排序,当做数值在升序
SELECt * FROM emp ORDER BY hiredate
#练习20:按照岗位排序
SELECt * FROM emp ORDER BY job
#练习21:查询最高薪的员工的名字和岗位
SELECt * FROM emp ORDER BY sal DESC LIMIT 1
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/600108.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号