mysql基础

# 数据:
#  存在银行里面的钱
#  数据库里面的数据表 
#-记录每个在存钱的人的信息 
# 姓名 身份证号码 账号 密码  余额
#  数据库:存储数据的仓库,
#   里面是一张张的数据表
#  特殊的存储机制,做增删改查非常方便
#  mysql 使用命令行进行操作
#  连接  在DOS命令窗口
# win R  --运行窗口 输入 cmd
mysql -uroot -p
show databases;
USE web02;
show tables;
SELECT * FROM s_region;
#查看1号地区的名称
SELECT id , name  FROM s_region
WHERE id = 1;
SELECT * FROM s_dept;
SELECT * FROM s_emp;
SELECT id,first_name
FROM s_emp;

#查询s_emp表中员工的id,first_name,salary
SELECT id,first_name,salary
FROM s_emp;
# mysql 的函数
#最高工资 MAX(salary) 需要求最大值的列
SELECT MAX(salary)
FROM s_emp;
#求工资的总额 SUM(salary) 需要求和的列
SELECT SUM(salary)
FROM s_emp;
#工资的平均值 AVG(salary)
SELECT AVG(salary)
FROM s_emp;

#求31号部门的月工资总和
SELECT SUM(salary)
FROM s_emp
WHERE dept_id = 31;

#求31号部门的平均工资
SELECT AVG(salary)
FROM s_emp
WHERE dept_id = 31;
#求44号部门的最高工资
SELECT MAX(salary)
FROM s_emp
WHERE dept_id = 44;

#求员工的最低工资 MIN(salary)
SELECT MIN(salary)
FROM s_emp;

#求42号部门的最低工资
SELECT MIN(salary)
FROM s_emp
WHERE dept_id = 42;
#统计公司的员工个数 count(列名/数字) 统计个数
SELECT COUNT(salary)
FROM s_emp;
SELECT COUNT(id)
FROM s_emp;
SELECT COUNT(1) '员工人数'
FROM s_emp;
#统计44号部门的员工个数
SELECT COUNT(1) '44部门员工人数'
FROM s_emp
WHERE dept_id = 44;

SELECT id,first_name
FROM s_emp
WHERE dept_id = 44;
#字符串处理函数 
#字符串 : 'abc' abc "abc"
# 变大写 upper()
SELECT UPPER('abc');

#查询出员工的姓名并且变成大写
SELECT UPPER(first_name)
FROM s_emp;

#变小写 LOWER() 
SELECT LOWER("ABCD");

#获取字符串长度 length()
SELECT length("abcd");
SELECT length("中国");

# 输出每个员工的姓名的长度

SELECT first_name,length(first_name)
FROM s_emp;

#数值处理函数 1,2,3 8.8 -1,-3 
#绝对值 ABS()
SELECT ABS(-99);
#四舍五入 round()
SELECT ROUND(8.8);
SELECT ROUND(8.4);

SELECT ROUND(-8.4);
SELECT ROUND(-8.8);

#向下取整 FLOOR()
SELECT FLOOR(-18.2);
SELECT FLOOR(18.2);

#向上取整 ceil()
SELECT ceil(8.1);
SELECT ceil(-8.1);

#取模函数 模 取余 获取余数
#一个数整除以另外一个数所
#获取的余数 5 / 3 = 1 ...2
# mod(5,3) 表示5对3取余
SELECT mod(5,3);
SELECT mod(6,8);

#随机数 RAND() 
#可以获取[0,1)的随机小数
SELECT rand();
#获取 1到10之间的随机整数
SELECT rand()*10;#[0,10)
SELECT rand()*10+1;#[1,11)
SELECT FLOOR(RAND()*10+1);#[1,10]
#查询工资大于等于1200的员工信息
#并且按照工资降序排序
SELECT id,first_name,salary 
FROM s_emp
WHERE salary >= 1200 
ORDER BY salary desc;
#查询工资小于等于1800的员工信息
#并且按照工资降序排序
SELECT id,first_name,salary 
FROM s_emp
WHERE salary <= 1800 
ORDER BY salary desc;
# AND 逻辑与 必须同时满足多个条件
#   1800 >= salary >=1200
#  salary >=1200  AND salary <= 1800
# 查询出工资在[1200,1800]之间的员工信息
SELECT id,first_name,salary 
FROM s_emp
WHERE  salary >=1200 AND 
salary <= 1800 
ORDER BY salary desc;
# BETWEEN AND  在...之间
# BETWEEN 1200 AND 1800 [1200,1800]
SELECT id,first_name,salary 
FROM s_emp
WHERE salary  BETWEEN 1200 AND 1800; 

# 使用两种方法找出31号到35部门
#里的员工的姓名 职位 工资
SELECT first_name,title,salary 
FROM s_emp
WHERE dept_id BETWEEN 31 AND 35; 
# 逻辑或 OR  满足任意条件之一
SELECT first_name,title,salary 
FROM s_emp
WHERE dept_id = 31 OR dept_id= 32
OR dept_id = 33 OR dept_id = 34
OR dept_id = 35; 
# IN(值1,值2,值3,值4,值5...) 满足后面
# 括号中的任意一个值
SELECT first_name,title,salary 
FROM s_emp
WHERE dept_id IN(31,32,33,34,35); 
# 逻辑非 NOT 
# 找出不在 31号到35部门
#里的员工的姓名 职位 工资
SELECT first_name,title,salary 
FROM s_emp
WHERE dept_id NOT IN(31,32,33,34,35);

模糊查询

#模糊查询
# 使用的关键字 LIKE 像...
# 通配符  %  匹配到0到任意多个字符
            _   匹配任意一个字符
# 以M开头   'M%'
# 名字里面包含m   '%m%'
# 查询姓名以M开头的员工的姓名,职位,工资
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE 'M%';
# 查询姓名以A开头的员工的姓名,职位,工资
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE 'A%';
#查询出姓名的第三个字母是d的员工信息
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE '__d%';

#查询出姓名的倒数第二个字母是e的员工信息
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE '%e_';
#查询出姓名的包含字母 n 的员工信息
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE '%n%';

#查询出姓名以M开头包含a的员工的信息
SELECT first_name,title,salary
FROM s_emp
WHERE  first_name LIKE 'M%a%';

#查询以s开头的表名
show tables  LIKE 's%';
show tables;
#重命名emp为semp
rename TABLE emp TO semp;
#查询以s_开头的表名
show tables  LIKE 's_%';
#转义符来定义特殊字符本身  \
# \ 就是转义符,跟在它后面特殊
#字符表示它自己本身 \_ 就表示
# _ 本身
show tables  LIKE 's\_%';
# 's\_%' 匹配 以s_开头的表名
#'s_%' 匹配以s和任意一个字符开头的表名

排序

# 查询出42号部门的员工的年薪,
# 并且按照年薪从大到小排序
SELECT first_name,salary*12
FROM s_emp
WHERE dept_id = 42 
ORDER BY salary*12 desc;
# 按照别名进行排序
SELECT first_name,salary*12 'yearSal'
FROM s_emp
WHERE dept_id = 42 
ORDER BY 'yearSal' desc;

SELECT first_name,salary*12 yearSal
FROM s_emp
WHERE dept_id = 42 
ORDER BY yearSal desc;
# 通过编号进行排序
SELECT id, first_name,salary*12 yearSal
FROM s_emp
WHERE dept_id = 42 
ORDER BY 3 desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值