1.MySQL常见命令的使用(以;以结尾)
1.1 展示所有数据库 (show databases;);
1.2 使用数据库(use learntest;);
1.3 展示数据库中的表格(show tables;)
因为这个数据库里面还没有建立表,所有为空
我们可以看一下bishe数据库里面的表 可以通过:
show tables from bishedb
1.4 查看当前所在的库(select database();)
1.5 给数据库创建表 (create table;)
创建了一个名为stuInfo的表:
1.6 查看表的详细描述(desc stuInfo;)
1.7 查看表的详细数据(select * from stuInfo;)
1.8 插入表中的数据(insert into stuInfo(id,name) values(1,'liuxiaofeng');)
插入多条数据:
查看表的详细数据
select * from stuInfo;
1.9更新表中的数据(update stuInfo set name='xiaofengcool' where id =1;)
1.10 删除表中的数据(delete from stuInfo where id='3';)
1.11 查看当MySql数据库的版本(两种方法)
第一种:
select version();
第二种:
//在cmd命令窗口输入
mysql --version
2.MySQL语法规范
1.不区分大小写,建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进或者换行
4.注释: (1)单行注释:#注释文字 (2)单行注释:--注释文字 (3)多行注释:/* 文字 */
3.MySQL查询学习
3.1 基础查询(select 查询列表 form 表名;)
查询列表可以是表中的字段、常量值、表达式、函数
3.1.1 查询表中的字段
(1)查询表单中的单个字段
例子(查询员工的last_name):
(2) 查询表单中的多个字段
例子:
(3)查询表单中的所以字段(SELECT * FROM 表名)
3.1.2 查询表中常量值
SELECT 常量值;
3.1.3 查询表达式
SELECT 表达式;
3.1.4 查询函数
SELECT VERSION();
3.1.5 起别名
其别名的好处: 1.可以方便理解 2.如果要查询的字段有重名的情况,使用别名可以区分开来
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
3.1.6 去重
案例:查询用工表中涉及到的所有部门编号;
SELECT department_id FROM employees;
去除重复的部门编号
SELECT DISTINCT department_id FROM employees;
3.1.7 +号的作用
mysql中的+号仅仅一个功能:运算符 案例:查询员工名和姓并且连接为一个字段,并显示为姓名
SELECT last_name +first_name AS 姓名 FROM employees;
上面这个原则上可以实现,但是因为+号只能作为运算符,不能用做连接符,所以需要用concat来实现字符串的连接,显示0的原因是字符串自动转化为0,0+0=0
3.1.8 concat()
可以实现字符串的连接
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
3.1.9 排序 order
降序:
升序:
3.2 条件查询
一、条件运算符:
< = != <>(不等于推荐使用这个) >= <=
二、逻辑运算符
&& ,|| ,and ,or, not 作用:用于连接条件表达式
三、模糊查询
1.like
一般和通配符搭配使用
通配符:
1.% 任意多个字符,包含0个字符
案例1:查询员工名中包含字符a的员工信息
2._ 任意单个字符
案例2:查询员工名中第三个字符为e,第五个字符为n的员工名和工资;
案例三:查询员工名中第二个字符为_的员工名
$为转义符
2.between and
注意:1.使用between and可以简洁代码 2.between and是包含两个值的 案例1:查询员工编号在100到120之间的员工信息(用between and)
3.in
in 用于判断某字段的值是否属于in列表中的某一项 特点: 实现代码简洁、in列表的值类型必须一致或兼容、
案例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES的一个的员工名和工种编号
4.is null
is null 仅仅可以判断null值
案例1:查询没有奖金的员工名和奖金率
有奖金:
day1作业:
1.查询工资大于12000的员工姓名和工资
2.查询员工号为176的员工的姓名和部门年号和年薪
3.选择工资不在5000到12000的员工的姓名和工资
4.选择在20或50号部门工作的员工姓名和部门号
5.选择公司中没有管理者的员工姓名及job_id
6.选择公司中有奖金的员工姓名,工资
7.选择员工姓名的第三个字母是a的员工姓名(模糊查询LIKE)
8.选择姓名中有字母a和e的员工姓名
9.显示出表employees中first_name'e'结尾的员工信息
10.显示出表employees部门标号在80到100之间的姓名、职位
11.显示出表employees的manager_id是100,101,110的员工姓名和职位
四、排序查询介绍
降序:
升序:
案例1:按年薪的高低显示员工的信息和年薪【按别名排序】
案例2;查询员工信息,要求先按工资排序,再按员工编号排序【按多个字段排序】
4.常见函数
调用:select 函数名(实参列表) 【form表】
4.1单行函数
length()、concat()、ifnull()
一、字符函数
1.LENGTH()
2.concat()
3.upper()、lower()
转换为大写
转换为小写
4.substr()
mysql中索引是从1开始
截取字符
5.instr
返回指定字符串的起始索引,找不到则返回0
6.trim()
去除前后空格
案例1:去掉指定的a
7.replace()
二、数学函数
1.round()四舍五入
2.CEIL 向上取整
3.floor()向下取整
4.truncate 截断 小数点后面保留一位
5.mod()取余
三、日期函数
1.now() 返回当前日期+时间
2.curdate()返回当前日期,不包含时间
3.curtime()返回当前时间
还有其它可以转换为年月日的函数,可以百度一下,也就是时间戳 4.DATADIFF
日期差值
四、其它函数
1.version()查看当前数据库版本
2.databases()查看当前使用的数据库
3.user()查看数据库用户名
五、流程控制制函数
1.if函数
if类似于三目运算,条件为true返回第一个,条件为false返回第二个
2.case(),类似于switch
case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1 when..... else 要显示的值n或语句n(当前面都不执行时执行) end
case后面也可以不跟参数
4.2 分组函数
功能:用于统计使用,又称为聚合函数或统计函数或组函数 分类:sum求和,avg平均值,max最大值,min最小值,count计算个数 4.2.1简单使用
1.sum() 求和
2.avg() 求平均值
3.max() 求最大值
4.min() 求最小值
5.count() 统计数量
一般用count(*)统计总行数
也可以一起用
特点:
1.sum、avg一般处理数值型
2.max、min、count可以处理任何数值
3.以上分组函数均忽略null值
4.可以配合distinct使用
5.分组查询
语法:
案例1:查询每个工种的最高工资(单个字段查询)
案例2:查询每个部门每个工种的员工的平均工资(多个字段查询)
6.子查询
案例1:查询工资大于Abel的员工信息
目前项目暂时用到这些,后续需要则继续学习