1.什么是数据库
在21世纪的今天,数据对我们来说是十分重要的,有句话说的好,得数据者的天下,那么数据库是用来存储数据的,特别是像咱们作为后端人员的开发,数据对于咱们来讲相当重要。
大家都知道前端是用来显示页面的,比如京东网站,淘宝网站,百度。能看到的就是前端。
那么前端页面的内容是一成不变的吗?不是的。这些数据从哪来?就是后端给的。
后端的数据在哪?就是在数据库里面。数据库里面是存放数据,然后通过java代码将数据取出来,显示到前端页面上面。java只需要负责将数据取出来即可。
数据库软件:
关系型数据库:MySQL Oracle SQLServer Sqllite DB2
关系型数据库存数据的时候都是以表格的形式进行存储的
非关系型数据库:redis MemoryCache MongoDB 等做数据热处理的
非关系型数据库都是键值对的形式进行数据存储的
一般是都是关系型数据库和非关系型数据库结合使用
2.MySQL简单介绍
2008年的11月MySQLAB公司被Sun公司收购10亿美金,MySQL进入到了sun时代。
2009年的4月 Oracle以74亿美元收购了sun公司。
2018年的4Mysql8.0.11版本发布,据说这个版本执行效率是MySQL5.7.29这个版本2倍
但是现在的公司不敢用,是因为不稳定。一般公司做网站使用数据库的时候,求稳为主。
目前主流市场用的数据库的版本还是5.6、5.7
程序员一般都是使用最稳定的版本而不是最新的
3.关于数据库的概念
数据库的服务器:
就是安装好的mysql软件。要想用数据库,必须要一个软件。
数据库:
一个项目对应着一个数据库。
数据表:
一个数据库下面可以有很多表
数据:
一张数据表下面有很多个数据,就像下面的一个person表,可以看到和微软的excel表格十分相似的
ID
NAME
SEX
AGE
字段
1
张三
男
22
数据1
2
李四
女
21
数据2
3
亦凡
男
30
数据3
数据库服务器下面可以有多个数据库
一个数据库下面可以有多张表
一张表下面可以有多个字段和数据
这个就是咱们数据库的简单构成。
4.通过命令操作数据库
连接数据库服务器的命令
第一种连接方式
mysql -hlocalhost -uroot -p123456
mysql:告诉计算机,启动的是哪个软件,启动的是mysql这个软件。
-hlocalhost: -h 主机(host) localhost 本电脑
-uroot: -u user 用户 root 是咱们在安装mysql软件默认的用户的名字。
-p123456: -p password 密码 123456 是咱们的密码
第二种连接方式【都使用这种方式进行数据库的连接】
mysql -uroot -p
Enter password: ******
一种简写形式并且密码是一个密文的形式。把-hlocalhost省略了,是因为在本台电脑上面进行操作的。
展示数据库的服务器下面的所有的数据库,为什么要有这一步?万一创建的数据库的名字已经被用过了?那就会报错的。
所以先展示所有的数据库
结尾一定要带分号,表示的是命令的结束。
show databases;

创建一个数据库,数据库叫 javacoffee
create database javacoffee;

会删除指定的数据库 javacoffee
drop database javacoffee;
再次查询所有的数据库,发现java2109这个库已经被删除掉了

直接建表?是不对的。咱们要先选中数据库。有可能有个数据库,我得知道在哪个数据库下下面建表。选中数据库【不要忘了这一步】

在数据库javacoffee这个库下面建表。创建一个表叫person

创建一个表的写法
mysql> create table person1 (
#字段名字(id) 数据类型(int类型) 默认11位
-> id int,
#字段名字(name) 数据类型(varchar类型) 可变长度的字符串 32位
-> name varchar(32),
#字段的名字(age) 数据类型(tinyint类型)默认是4位
-> age int,
#字段名字(sex) 数据类型(bollean(tinyint(1)) 不限制长度
->sex boolean
-> );
查看这个数据库下面的所有的表
show tables;
查看表的详细信息
有字段的名字 字段的数据类型

删除表 person
drop table person;
顺便再扩展几个命令,不需要记,家人们可以自己敲敲看看!!!
查看数据库的创建过程
show create database javacoffee;
查看数据表创建的过程
总结:连接数据库(mysql -uroot -p),显示所有数据库(show databases),创建数据库(create database javacoffee),选中数据库(use javacoffee),创建表(create table person(字段1 数据类型,字段2 数据儿类型 ,字段3 数据类型))比较重要
删除库 (drop database javacoffee),删除表(drop table person)
5.修改表(关键字alter)
修改是表的字段名字,字段的数据类型,添加一个字段,删除一个字段等
删除sex字段
alter table person drop sex;
见名知意 alter(修改) table(表) person(哪个表) dorp(删除) info(字段);
添加一个性别字段,使用的数据类型是tinyint吗,在末尾追加一个字段
alter(修改) table(表) person(哪个表) add(添加) gender(性别) tinyint(数据类型);
alter table person add gander tinyint;
默认的是插入到尾部.
那么如何插入到指定的位置呢
插入首行
插入其他的需要用到after关键字,假如将一个float类型的字段weight加入到name之后
alter table person add weight float(3,2) after name;
修改指定的字段(name) 数据类型本来是float(3,2),修改成double(5,2)。
alter table person name modify double(5,2);
修改指定的字段名字和数据类型
alter table person change gander sex boolean;
(boolean类型的数据在数据库中自动会转化为tinyint(1)的数据,意思就是只有0和1来表示真假)
float(8,2) 是一种数据类型 小数的数据类型。
(8,2):最大长度为8位,小数点是其中的2位,整数部分最大为6位数
字段所带的数据类型有哪些: 在创建表的时候,字段需要数据类型
int ====>int(11)默认值
boolean==>tinyint(1)默认值
varchar(32)可变长的字符串
char(32) 定长字符串
tinyint 小的int的类型数据
float 浮点
double
decimal 精度更高的浮点数,一般用做银行业务
6.增加数据
首先查看表结构
接着通过 insert into 关键字进行数据的插入
通过 select * from person(表名)查看数据
指定字段进行数据插入
可以看到修改后的表 weight和sex都为空,需要赋值
insert into person (id,name,age) values(5,"小白",56);
6.修改数据【慎用!!!】
删除数据一定要带条件,将会删除指定的数据,假如没有带条件,则会将表中的所有内容都删除!!!所以一定要慎用!
语法格式: delete from 表名 条件
删除名字为小白的数据:
delete from person where name="小白";
删除多个数据(删除id为2和4的)
delete from person where id in (2,4);
7.简单的事务的操作
事务是保证数据的安全性的。
当咱们在进行数据库的增,删,改操作的时候,发现出现了问题,可以回滚。就是说可以回到原来的状态,也就是撤回
银行转账, 宝强要转账给乃亮250,宝强这边要减钱,乃亮这边要加钱。修改
万一宝强这边出现了网络或者其他问题,没有转过去,乃亮这边不加钱。就需要事务回滚 rollback;
首先要把自动提交给关闭掉,默认值是1,默认的时候,是自动提交开启的状态。
只要设置一次,整个窗口就都关闭了自动提交。
这时候删除一个数据 张三,再打印一下表的信息,可以看到id为2的张三已经“删除”掉了
可是真的删除掉了吗?
咱们可以再打开一个控制台查询一下person表
可以看到没有实际上没有删除,接着我们可以通过事务回滚,进行一下撤回操作
可以看到张三又回来了,那么怎么给他删除呢
我们可以用commit
可以看到新控制台中张三也被删除了,
所以我们可以简单的理解一下,事务回滚可以相当于一个分支,当你把自动提交关闭之后
假如删除了一个数据,发现不合适,可以通过回滚来撤回,反之可以通过commit来执行确定删除的操作
8.数据的查询【重点!!!】
1.展示所有的数据,开发中一般不用效率低
select * from person;

2.按照字段进行查询 select 字段1,字段2,字段3 from 表名
select id,name,age from person;

3.按照字段进行查询,还可以对字段进行起别名的操作。以后用的很多
#语法格式: select 字段1 as 字段1的别名, 字段2 as 字段2的别名... from 表名
select id as "编号",name as "姓名",age as "年龄" from person;
可以对数据进行约束查询
> < >= <= != = 运算符
语法格式:select * from 表名 where 字段 运算符 值
#找出年龄大于20岁的人的名字

使用逻辑运算符
and or
语法格式:select * from where 条件1 and 条件2 两个条件都必须符合才能查询出来
和java里面的逻辑与 &&
语法格式:select * from where 条件1 or 条件2 两个条件都只要符合一个就能查询出来
和java里面的逻辑或 ||
找出来数据,年龄大于20岁的,并且体重小于140的人
找出来年龄大于20的或者 体重大于120.00的
排序 order by
语法格式:select * from 表名 order by 字段 asc;升序 默认的
在最后可以加上 asc(升序) 或者是 desc(降序)
语法格式:select * from 表名 order by 字段 asc;升序

语法格式:select * from 表名 order by 字段 desc;降序

先按照年龄进行降序排序,如果年龄相等的话,再按照体重进行升序排序

找出年龄大于30岁的,并且按照体重进行降序进行排列(注意先查找再排序)

max和min分别是找出最大和最小的数

找出体重最大的人的信息,先按照体重降序排,再用limit取第一行数据就是体重最大的(反之升序的话就取得是最小的咯)


本文介绍了数据库的基本概念,包括数据库服务器、数据库、数据表和数据,以及常见的关系型和非关系型数据库。详细讲解了MySQL的版本历史和操作,如创建、删除数据库和数据表,以及通过命令行进行数据的增删改查。还涉及到了数据库事务的使用,确保数据安全性。最后,文章阐述了数据查询的关键操作,如选择字段、排序和筛选条件。



















7万+

被折叠的 条评论
为什么被折叠?



