最近开始了新的学习进度 进入MySQL数据库的学习
一、MySQL启动方法
1.使用MySQL启动
从windows开始启动
2.使用cmd启动
win+r输入cmd打开我们的cmd窗口
** 之后我们输入mysql -u root -p密码 即可登录成功ps(如果想要在cmd使用MySQL需要简单配置一下环境)**
二、数据库的简单操作命令
显示当前服务器上有哪些数据库
show databases;
创建新的数据库
create database 数据库名称;
** 我们可以看到 创建成功了 我们再次输入显示数据库查看一下是否真正创建成功**
删除数据库
**drop database 数据库名称; **
选中数据库
**use 数据库名称;//此处可以没有分号~但是仍然建议加上 **
三、数据表的操作
数据类型
一个数据库中,可以有很多个数据表,每个数据有很多行,每一行成为是一条记录,每一行又有很多列,没一列称为是一个字段 MySQL这样的数据库,就要求每一行这里的列都是一致的
类型字节tinyint1smallint2int4bigint8float(N,M)4double(N,M)8decimal 更加精确的浮点数varchar(N) 可变长字符串text自适应文本mediumtext中等长度的文本数据blob 用于表示二进制的数据datetime8timestamp4
四、表的简单操作
查看数据库中的所有表
show tables;
创建表
create table 表名(名称 类型……);
查看表结构
desc 表名;
删除表
drop table 表名;
五、增删查改
这一块是数据库的核心内容 增删查改
简称为CUPD
C:创建
U:修改
R:查询
D:删除
增
往表中增加数据
**insert into 表名 values (对应列的值)--类型一定要一致 不然会增加失败 **
insert也是支持多行插入的 格式是这样的 只需要往后跟逗号加内容即可
insert into 表名 values(对应列的值),(对应列的值);
那么我们如果要查看是否成功的添加了呢?我们就要进入到查
查
查找语句是SQL中最核心并且也是最复杂的操作
首先我们要明确一点 * 在SQL中叫做通配符 在这里我们表示一个表的所有列
1.全列查找
select * from 表名;
2.指定列查询
select 要查找的列名,列名 …… from 表名;
我们以这个表为例
假设我们只看名称以及数学成绩
3.指定查询字段为表达式
select 列名,列名+10 from 表名;
值得一提的是 如此操作生成出的表只是临时表 不会影响到在硬盘中存储的数据库中的数据,并且临时表的类型会自动适应 保证计算结果是正确的
我们以这个表的数据为例
经过操作后得到以下结果
4.查询字段指定别名
select name ,列名+列名 as 新名称 from 表名;
仍旧是这个表 我们来计算一下语文成绩+数学成绩+英语成绩的总分
我们经过查询得到以下结果
那么如果将表中的chinese+math+engilsh修改为num呢
5.针对查询结果去重
select distinct 列名 from 表名;
我们在表中添加一个重复的数据
在执行以下操作后 发现并没有成功去重
这是因为如果针对多个列去重 那么只有这行元素都相同才会去重,所以我们浅做修改
6.针对查询结果进行排序
**select 列名 from 表名 order by 列名 asc/desc --asc代表升序 desc代表降序 如果什么都不加的话默认为升序 **
并且有的数据库记录中有NULL这样的话 那么认为NULL为最小的
来一点挑战了 我们将之前的表按照总分按照降序排序一下
7.条件查询
select 列名 from 表名 where 条件;
我们来查看一下 总分高于210分的人的姓名以及成绩
那么我们会遇到一个新的问题 遇到NULL怎么计算?
NULL与任何值进行计算 结果还是NULL
条件查询中的符号
运算符
between a0 and a1 构成的一个闭区间
=代表相等
<=>也是比较相等 只是使用<=>比较NULL结果为真
in(……)如果是括号中的任意一个 返回真
is null 是NULL
is not null 不是NULL
like 模糊匹配
逻辑运算符
and 代表Java中的&&
or 代表Java中的 ||
not 代表Java中的!
根据以上的方法 我们来做一些简单的练习题
查询英语不及格的同学 (<70)
查询语文成绩大于数学成绩的同学
查询语文成绩大于80或英语成绩大于80分的童鞋
8.模糊查询
select 列名 from 表名 where 列名 like() ;
查找姓孙的姓名
好 那么疑问就来了 其中的%是什么意思呢?
%(代表0个或者多个任意字符)
_(代表任意一个字符)
9.分页查询
select 列名 from 表名 limit a offset b --其中a代表显示几行 b代表从第几个开始
对于以上的操作 就代表一页显示三个 从第0个开始显示 如果还不明白 我们再来一个
limit还可以搭配条件以及order by来实现组合操作
我们来看一下总成绩最高的三名同学
那如果我们要看一看第四名到第六名的呢 也是很简单的
改
修改
update 表名 set 列名=值…… where 条件;
如果where 省略了 那就是修改所有的数据 order by和limit也是可以使用的
我们尝试将孙悟空的属性成绩变更为80
将姓孙的同学语文整体扣10分
来一个上难度的 我们将总成绩倒数前三的三位同学语文+10分
删
**delete from 表名 ;--后面可以增加where条件 **
删除天鹏同学的所有信息
注意!!!!!
**之前的增、删、改都是会直接修改硬盘中数据库的数据的 所以在做这些操作之前 一定要谨慎并且多次检查核对代码 如果操作错误 会造成大量的损失 一定切记切记 **
版权归原作者 Java冰激凌 所有, 如有侵权,请联系我们删除。