JAVA开发之MYSQL数据库知识点全掌握
今天简单总结一下mysql数据库的基础知识,目前在Android项目开发中,还是后台开发中,数据库都扮演着很重要的角色。这篇文章更多是以cmd命令行的形式总结,也方便我们用到的时候直接查看~
我们先从数据的CRUD操作开始:
创建数据库:
语法:
create database 数据库名;(默认的是自己安装mysql的字符集)
create database 数据库名 character set 字符集;
查看数据库:
查看所有的数据库:show databases;
查看单个数据库的结构:show create database 数据库名称
删除数据库:
语法:
drop database 数据库名;
修改数据库:
语法:
alter database 数据库名 character set 字符集;
数据库的其它操作:
查看当前正在使用的数据库:select database();
切换数据库:use 数据库名;
接下来我们讲解一下数据库表的CRUD操作:
约束:
单表约束
主键:primary key
唯一:unique
非空:not null
创建一个分类表:
create table 表名(
字段1 类型(长度) 约束,
字段2 类型(长度)约束
)
举例:create table category1
(
cid int primary key auto_increment,
cname varchar(10) not null
)
下面的讲解我们就以我们创建的数据库为例进行讲解:
查看数据库表:
查看所有的表:show tables;
查看单个表的结构:desc 表名;
删除数据库表:
语法:
drop table 表名;
saveOrUpdate()
更新数据库的表:
修改表-添加列
alter table 表名 add 列名 类型(长度) 约束
修改表-修改列的类型和约束
alter table 表名 modify 列名 类型(长度) 约束
修改表-修改列的名称
alter table 表名 change 旧列名 新列名 类型(长度) 约束
修改表-删除列
alter table 表名 drop 列名
修改表-修改表名称 (慎用)
rename table 旧表名 to 新表名;
穿插讲一下java数据类型在mysql中怎么使用和展示:
java的数据类型 mysql数据库的数据类型
int int
float float
double double
char/string char/varchar(char: 固定字符串 varchar:可变的字符串) char(100) abc varcahr(3) abc
date date,time,timestamp
文件类型 blob:二进制 text:文本文件
数据库表里的数据CRUD的操作:
插入数据:
语法:
insert into 表名(列名1,列名2….) values (值1,‘值2’)
insert into 表名 values(值1,值2)
insert into fenlei values(null,’手机商城’);
insert into fenlei values(null,’电脑商城’);
注意的地方:
1 列名有多少个,values后面的值就要有多少个
2 列名顺序,与values后面的值顺序要相同
3 列名数据类型,与values后面的值的数据类型得一致
4 插入时不得超过最大长度
5 值如果是字符串类型或则是日期类型
我们需要给我们的值加上单引号
cmd命令行插入中文问题:针对的是cmd命令行
1 my.ini文件,在[mysql]设置字符集:GBK
2 重启mysql服务 services.msc
修改表中的数据:
语法:
update 表名 set 列名=值 【where 条件】
注意:
1 我们修改的列名的类型,要与设定的类型一样
2 我们值的类型不能超过设定值的大小
3 我们的值如果是字符串类型或则是日期类型,需要给值加上”
删除表中的数据:
语法:
1 delete from 表名 【where 条件】
2 truncate 表名
区别:
delete是一条一条从表里面删除数据
truncate是直接删除整张表,重建一张数据结构一样的新表
扩展:如果是在一个事物中
delete删除的数据还可以找回来
而truncate删除的数据就无法找回来了
查看表中的数据:
举例:创建一个商品表:
create table product
(
pid int primary key auto_increment,
pname varchar(20),
price double
)
insert into product values(null,’小米手机’,2800);
insert into product values(null,’华为手机’,2800);
insert into product values(null,’联想手机’,4800);
insert into product values(null,’苹果手机’,5800);
insert into product values(null,’联想电脑’,6800);
insert into product values(null,’苹果电脑’,8800);
insert into product values(null,’戴尔电脑’,7800);
简单的查询:
1 查询所有的商品
select * from product;
2 查询商品名称和商品价格select pname,price from product;
3 使用别名查询商品:as as也可以省略
表别名:select * from product as shangping;
列别名:select pname as mingcheng,price as jiage from product;
4 去重查询 distinct
select distinct price from product;
JAVA开发之MYSQL数据库知识点全掌握,收藏吧
mysql
条件查询:
1 查询商品名称为小米手机商品;
select * from product where pname=’小米手机’;
2 查询商品价格大于3800的所有商品select * from product where price>3800;
******where后面的字符:
=,>,<,>=,<=,<> and or
like: 模糊查询
_占位符 %占位符
_占位符:代替一个字符
%占位符: 代替多个字符
in: 在取值范围内
3 查询所有带手机的商品 (使用_)
select * from product where pname like ‘__手机’;
4 查询所有带手机的商品 (使用%)
select * from product where pname like ‘%手机’;
5 查询商品价格在3800,4800,5800的所有商品
select * from product where price in(3800,4800,5800);
select * from product where pname in(‘小米手机’,’华为手机’,’联想手机’);
排序查询
order by —asc默认 升序 —-desc 降序
1 获得所有的商品,按照商品的价格来从小到大排序
select * from product order by price asc;
2 获得商品里面带手机的所有商品,并且让所有商品按照价格从大到小排序
select * from product where pname like ‘%手机’ order by price desc;
聚合函数: max() min() avg() sum() count()
1 想查询价格最小的商品;
select min(price) from product;
2 查询价格最大的商品;
select max(price) from product;
3 查询商品价格的总和
select sum(price) from product;
4 查询所有商品的平均值
select avg(price) from product;
5 统计所有的商品的个数
select count(*) from product;
分组查询: group by 字段
1 查询所有商品数量,按照商品的标识分组
select bs,count(*) from product group by bs;
2 查询所有商品价格的平均值,按照商品的标识分组来查询,并且平均值大于3000
select bs,avg(price) from product group by bs having avg(price)>3000;