前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第68节:Java中的MYSQL运用从小白到大牛

第68节:Java中的MYSQL运用从小白到大牛

作者头像
达达前端
发布2019-07-03 14:38:53
1K0
发布2019-07-03 14:38:53
举报
文章被收录于专栏:达达前端达达前端

第68节:Java中的MYSQL运用从小白到大牛

前言

学习java必备要求,学会运用!!!

字数

常见关系化数据库

效果

BootStrap是轻量级开发响应式页面的框架,全局css组件,js插件.栅格系统是将页面的宽度分为12等分.

bootstrap教程,SQL

代码语言:javascript
复制
col-xs-*: 手机屏幕
col-sm-*: 平板
col-md-*: PC电脑
col-lg-*: 超大屏幕

数据库crud操作

数据库,什么是数据库,数据的作用有哪些呢?

数据库就是一个文件系统,如文件夹目录一样,存储数据,很久很久以前是用sql命令来操作.

数据库介绍,sql数据库是structured query language 结构化查询语言的缩写,sql是为数据库而建立的操作命令集,是一种功能齐全的数据库语言.我们在使用它的时候,只要发出命令,就可以展示数据了,sql功能强大啊,但是也是很容易进行学习,使用起来也很方便呢,sql已经成为了数据库操作的基础,并且所有的数据库基本上都支持sql.

sql数据库 是结构化查询语言, 简称为sql数据库, 英文名: structured query language, 功能齐全的数据库语言.

sql数据库的优点:

它是非过程化语言,是统一的语言,是所有关系数据库的共同语言.

一个sql数据库是表的集合,它是由一个或多个sql模式定义的,sql数据表由行集构成,一行是列的序列集合,每行与行对应的一个数据项,一个表或者一个基本表或者是视图,.基本表是实际尺寸在数据库的表,而视图是由若干基本表或其他视图构成的表的定义.一个基本表可以拷一个或多个存储文件,一个存储文件也可以存放一个或多个基本表,每个存储文件与外部存储上的一个物理文件对应.

数据库是按照数据结构来组织,存储和管理数据的仓库,它产生于距今六十多年前.数据库的基本结构分三个层次,英文名database数据库,有三种数据种类.

数据库按照数据结构来组织,存储和管理数据的建立在计算机存储设备上的仓库.数据库是可以在计算机内进行长期存储的,有组织,可共享的数据集合.

作用:用来存储数据,具有访问权限可以限制不同人的不同操作.

java开发工程师

2年以上的经验,基础号

理解io,多线程,集合等基础框架

jvm原理的了解.

mvc,spring,mybatis,Webservice

主流开发框架和技术,各种算法,数据库查询语言

熟悉mysql,oracle等数据库,有一定的数据库设计经验,了解Linux,Unix等.

html,css,javascript,jquery,

eclipse,myeclipse

浏览器: html/css/js用于显示页面

服务器: javaee后台程序

数据库

常见的数据库:

mysql:

是开源免费的, 适用于中小型企业的数据库.

sun收购mysql, sun公司被oracle收购了.

然后就开始收费了.

mariadb: 是mysql开源版的一个分支.

oracle: 甲骨文公司.

收费软件,适用于大型电商网站.

sun公司拥有了java.google收购了安卓.

就导致了 sun->google

db2: IBM公司,解决方案:软件和硬件.银行系统大多采用db2.

sqlserver: 用于windows里面.大学教学采用sqlserver,图形化工具.

非关系型数据库: key : value

mongodb:

redis:

关系型数据库:

用来描述实体与实体之间的关系.

E-R关系图

效果

效果

E-R代表:

实体:方框,属性:椭圆,关系:菱形.

mysql数据库服务器

mysql server

进行删除mysql

效果

效果

MYSQL的安装

效果

有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续

效果

效果

效果

效果

效果

MySQL Server, Client Programs, Documentation同理,点击.

效果

Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”

效果

Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”

效果

效果

效果

Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”

效果

一般选UTF-8

效果

效果

mysql语句

DDL数据定义语言,用于定义数据库,

代码语言:javascript
复制
create创建
drop删除
alter修改

DML: 数据操作语言,用于操作数据

代码语言:javascript
复制
insert 插入
update 修改
delete 删除

DCL: 数据控制语言,定义访问权限,取消访问权限,安全设置.

代码语言:javascript
复制
grant

DQL: 数据查询语言:

代码语言:javascript
复制
select 查询
from 
where
代码语言:javascript
复制
create database 创建数据库
create database dashucoding;

create database dashucoding character set字符集 collate校对规则
create database 

create database dashucoding character set utf8;

数据库的创建

登录数据库

mysql -uroot -padmin

创建数据库

create database stu;

创建数据库同时指定字符集

create database 数据库的名字 character set 字符集

create database stu character set utf8

字符集是一套符号和编码,校对规则 是在字符集内用于比较字符的一套规则.

create database stu character set utf collate utf8_bin;

展示数据库

show databases;

代码语言:javascript
复制
informartion_schema
performance_schema
mysql

查看数据库定义时的语句

show create database 数据库的名字

show create database stu;

修改数据库

修改数据的字符集

alter database 数据库的名字 character set 字符集

alter database stu character set gbk;

删除数据库

drop database 数据库的名字

drop database stu;

切换数据库

use 数据库名字

use student;

查看当前使用的数据库

select database();

创建表

代码语言:javascript
复制
create table 表名(列名 列的类型 约束,列名2 列的类型 约束);

create table student ( sid int primary key, sname varchar(31), sex int, age int);

列的约束:

主键的约束: primary key,

唯一的约束: unique,

非空约素: not null,

列的类型:

char: 固定长度

varchar: 可变长度

date:

代码语言:javascript
复制
date : YYYY-MM-DD
time : hh:mm:ss
datetime : YYYY-MM-DD hh:mm:ss 默认值为null
timestamp : YYYY-MMM-DD hh:mm:ss 默认使用当前时间

text:用了存放文本

blob存放二进制

查看表

show tables

查看表的定义

show create table student;

查看表的结构

desc student;

修改表

add添加列

modify修改列

change修改列名

drop删除列

renamme修改表名

添加列

alter table 表名 add 列名 列的类型 列的约束

alter table student add chengji int not null;

修改列

alter table student modify sex varchar(2);

desc student;

修改列名

alter table student change sex gender varchar(2);

删除列

alter table student drop chengji;

修改表名

rename table student to dashucoding;

修改表的字符集

show create table student;

alter table student character set gbk;

删除表

drop table student;

数据库:

sql的分类:

DDL数据库的定义,与表的结构:

create, drop, alter

DML数据操纵语言

insert update delete

DCL数据控制语言

设置用户的访问权限

DQL数据查询语言

select form where

数据库

创建数据库

create database 数据库的名字

查看数据库

show databases;查看所有的数据库

查看数据库定义

show create database 数据库名字

select database();查看当前使用的数据库

修改数据库

alter database character set 字符集

删除数据库

drop database 数据库名字

选中数据库

use数据库的名字

表数据的操作

创建表create table 表名(列名 列的类型 约素);

列的约素:

主键的约素:primary key

唯一约素: unique

非空约素: not null

删除表:drop table 表名

查看表:show tables

查看当前数据库中所有的表名

show create table 表名

查看表的定义结构

desc 表名;查看表的结构

添加列

alter table 表名 add 列名 列的类型 列的约束

修改列

alter table 表名 modify 列名 列的类型 列的约束

修改列名

alter table 表名 change 旧列名 新列名 列的类型 列的约束

删除列

alter table 表名 drop 列名

表的字符集

alter table 表名 character set 字符集

修改表名

rename table 旧表名 to 新的表名

表中数据的插入

sql完成对表中数据的操作

插入数据:

insert into 表名 (列名1, 列名2, 列名3) values (值1, 值2, 值3);

insert into studnet(sid,sname,sex,age) values (1, 'dashu', 1, 23);

简单写法

insert into student values(2,'dashu', 1, 23);

查看表中的数据

select * from student;

批量插入

insert into student values (3,'da',1,32),(4,'coding',1,32);

解决乱码的问题:

修改my.ini配置,先暂停服务,57行修改gbk,保存重启即可.

删除的操作:

delete from 表名 [where条件];

delete from student where sid=6;

delete from student;会删除所有的数据;

delete删除数据和truncate删除数据有什么区别?

delete: 属于DML 一条一条的删除表中的数据.

truncate: 属于DDL 先删除表再重建表.

如何删除的数据比较少,delete比较高效,删除的数据多,就truncate比较高效.

查询

select [distinct] [*] [列名,列名2] from 表名 [where 条件];

更新表:

update 表名 set 列名=列的值, 列名2=列的值2 [where 条件];

update student set sname='dahsu' where sid=5

表数据的操作

insert into 表名 values(值1,值2,值3)

删除记录

delete from 表名 [where 条件]

更新

update 表名 set 列名=列到的值 [where 条件];

查看数据

select * from student;

select查询

数据查询的操作

select [distinct 可选参数,去除重复的数据] [*] [列名,列名2] from 表名 [where 条件];

distinct: 去除重复的数据.

create table category(cid int primary key auto_increment, cname varchar(10), cdesc varchar(31) );

插入数据

insert into category values (null, 'dashu', 'dashucoding');

查询数据

select * from category;

代码语言:javascript
复制
create table product(
 pid int primary key auto_increment,
 pname varchar(10),
 price double,
 pdate timestamp,
 cno int
);

select * from product;

查询商品名称和商品价格:

select pname,price form product;

别名查询,关键字为as,可以省略

别名:

select p.pname, p.price form product p;

select p.pname, p.price from product as p;

列别名:

select pname as 商品名称, price as 商品价格 from product;

select pname 商品名称, price 商品价格 from product;

去除重复内容:

select price from product;

select distinct price from product;

select *,price*1.5 as 折后价 from product;

select * from product where price > 100;

like: 模糊查询:

代码语言:javascript
复制
_: 代表一个字符
%: 代表多个字符

in查询 在某个范围内的值

select * from product where con in(1,2,3);

排序查询:order by关键字

asc: ascend升序

desc: descend降序

按照价格排序:

select * from product order by price;

select * from product order by price desc降序

select * from product where pname like '%dashu%';

select * from product where pname like '%dashu%' order by price asc;

聚合函数

代码语言:javascript
复制
// 一些函数
sum(): 求和
avg(): 求平均值
count(): 统计数量
max(): 最大值
min(): 最小值

select sum(price) from product;

select avg(price) from product;

select count(*) from product;

select avg(price) from product;

select * from product where price > (select avg(prive) from product);

分组:

group by

select con, count(*) from product group by cno;

select cno, avg(price) from product group by con;

having关键字

select cno, avg(price) from product group by con having avg(price) > 60;

代码语言:javascript
复制
select ... from ... where .. group by .. having .. order by ..

from.. where.. group by ... having.. select .. order by ...

复习

代码语言:javascript
复制
SQL分类:
DDL: 数据库的定义: create, drop, alter
DML: 数据操纵语言: insert, update, delete
DCL: 数据控制语言: 设置用户的访问权限 
DQL: 数据查询语言: select, from, where
代码语言:javascript
复制
表中数据操作:
CRUD
插入数据: insert into 表名 (列名1,列名2) values(值1,值2);
insert into 表名 values(值1,值2);
批量插入: insert into 表名 values (值1,值2),(值1,值2);
删除数据: delete from 表名 where 条件
truncate table 表名: 先删表,再重建
update 表名 set 列名=值, 列名=值 where 条件
select [distinct] [*] [ 列名1,列名2 ]
from 表名 where 条件 group by ...
having 条件过滤 order by 排序
代码语言:javascript
复制
asc: ascend
desc: descend
order by: order by price asc
group by

and or not
关系运算 <> 不等于
int 范围 
like 查询
sum();
avg();
min();
max();
count();

MySQL数据库的安装和配置

配置Mysql按照bin目录到Path

命令:

代码语言:javascript
复制
mysql –u用户名 –p密码

一般会在数据库创建多个表,以保存程序中实体的数据.Structured Query Language, 结构化查询语言,SQL是用来存取关系数据库的语言.

功能:

查询、操纵、定义和控制关系型数据库

  1. DDL (数据定义语句)-Data Definition Language
  2. DML (数据操纵语句)-Data Manipulation Language
  3. DCL (数据控制语句)-Data Control Language
  4. DQL (数据查询语句)-Data Query Language
代码语言:javascript
复制
1. 用来定义数据库的对象
2. 在数据库表中更新,增加和删除记录
3. 用于设置用户权限
4. 数据查询

效果

约束:

  1. 主键约束 - primary key:不允许为空,不允许重复
  2. 唯一约束 - unique
  3. 非空约束 - not null
代码语言:javascript
复制
Insert 增加数据
Update 更新数据
Delete 删除数据
Select 查找数据

实体关系:

代码语言:javascript
复制
多对多: n:m
一对多: 1:n
一对一: 1:1

重置Root密码:

效果

代码语言:javascript
复制
// 案例:
创建数据库
create database stu;
使用utf8字符集
create database stu character set utf8;
带规则
create database stu character set utf8 collate utf8_general_ci;

修改字符集
alter database stu character set gbk;
删除数据库
drop database stu;
查看所有数据库
show databases;
查看数据库的字符集
show create database stu;

操作员工表:
 create table employee (id int primary key auto_increment,
 name varchar(20) not null,
 gender varchar(10),
 birthday date,
 entry_date date,
 job varchar(30),
 salary double,
 resume text
 );

删除表
drop table student;
代码语言:javascript
复制
添加
alter table student add name varchar(20);
修改
alter table student modify name varchar(30);
删除列
alter table student drop gender;
修改表名
rename table student to student_s;
修改表的 字符集
alter table student character set utf8;
修改列名name -> username
alter table student change name username varchar(20) not null;

查看表结构:
show tables;
show create table student;
desc student;
代码语言:javascript
复制
update student set salary = 2000;
update student set salary = 3000 where name = 'dashu';
update student set salary = 2000, job = 'java' where name= 'dashu';
update student set salary = salary + 1000 where name='dashu';

delete from student where name='da';
删除表中所有记录
delete from student;

查询表中所有信息
select * from student;
select name, sex from student;

select *,chinese+math+english from exam;
使用别名
select *,chinese+math+english as 总分 from exam;

select * from student where name='dashu';
select * from exam where chinese+math+english>200;
代码语言:javascript
复制
in:
select * from exam where math in(89,75,91);

使用order by
select *,chinese+math+english as 总分 from exam order by 总分 desc;

select  count(id) from exam;

统计总分大于250的人数有多少?
select count(id) from exam where chinese+math+english>250;

统计数学成绩大于或等于90的学生有多少个?
select  count(math) from exam where math>=90;

使用avg函数
select avg(math) from exam;

查询购买了几类商品,并且每类总价大于100的商品
select product,sum(price) from orders where price>100 group by product;

自己下载软件:

mysql-5.5.27-winx64,查百度.

如果看了觉得不错

点赞!转发!

达叔小生:往后余生,唯独有你 You and me, we are family ! 90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通 简书博客: 达叔小生 https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 表中数据的插入
  • 复习
  • 自己下载软件:
  • 结语
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档