专栏首页达达前端第68节:Java中的MYSQL运用从小白到大牛

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

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

前言

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

字数

常见关系化数据库

效果

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

bootstrap教程,SQL

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数据定义语言,用于定义数据库,

create创建
drop删除
alter修改

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

insert 插入
update 修改
delete 删除

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

grant

DQL: 数据查询语言:

select 查询
from 
where
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;

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();

创建表

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:

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;

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: 模糊查询:

_: 代表一个字符
%: 代表多个字符

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;

聚合函数

// 一些函数
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;

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

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

复习

SQL分类:
DDL: 数据库的定义: create, drop, alter
DML: 数据操纵语言: insert, update, delete
DCL: 数据控制语言: 设置用户的访问权限 
DQL: 数据查询语言: select, from, where
表中数据操作:
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 排序
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

命令:

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
1. 用来定义数据库的对象
2. 在数据库表中更新,增加和删除记录
3. 用于设置用户权限
4. 数据查询

效果

约束:

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

实体关系:

多对多: n:m
一对多: 1:n
一对一: 1:1

重置Root密码:

效果

// 案例:
创建数据库
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;
添加
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;
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;
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 点赞

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第74节:Java中的Cookie和Session

    启动服务器后,会给每个应用程序创建一个ServletContext,并且这个ServletContext对象只有一个。可以用于获取全局参数,工程下的资源,和存取...

    达达前端
  • 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    标识符用于类名,方法名和变量名。标识符以 a-z,0-9 ,_ ,$,命名。(简称:英,数,下划线,美元符号)

    达达前端
  • 讲解SQL数据库语句

    (1)完全函数依赖:(学号、课程号) →f 成绩 (2)部分函数依赖 :(学号、课程号) →p 姓名 (3)传递函数依赖 :学号→所属系号,所属系号→宿舍楼...

    达达前端
  • mysql模拟题二

      3) MSSQLServer2005Enterprise Edition是哪一种版本?

    week
  • Anaconda使用

    Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有不少发行版的Pyt...

    LhWorld哥陪你聊算法
  • 跨平台方案的历史发展逻辑

    如果使用原生方式开发APP,就要求我们必须针对iOS和Android这两个平台分别开发,这样的话,我们就需要用不同的语言去实现同样的功能,并承担因此带来的维护任...

    拉维
  • Python爬虫:爬取美拍小姐姐视频

      最近在写一个应用,需要收集微博上一些热门的视频,像这些小视频一般都来自秒拍,微拍,美拍和新浪视频,而且没有下载的选项,所以只能动脑想想办法了。

    py3study
  • C++/Debug模式查看EFL(标志寄存器)详解

    在比如使用汇编指令如:ADC, SBB等指令时,我们为了心里那份好奇感就不得不去了解下FLAG寄存器(EFL)里面的东西。通过二进制详细的查看各标志位的值。然后...

    战神伽罗
  • 深度 | 探索实物与VR间重量转换的方法

    大数据文摘
  • 产品资讯|【智慧旅游】龙门石窟景区刷脸入园

      优图智慧旅游解决方案,用户通过小程序拍摄个人免冠头像照并填写相关资料即可创建通行证,随后通过微信支付完成购票环节,在入园时不用拿门票、不用掏手机,接近闸机...

    优图实验室

扫码关注云+社区

领取腾讯云代金券