第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 点赞

第68节:Java中的MYSQL运用从小白到大牛的更多相关文章

  1. 第77节:Java中的事务和数据库连接池和DBUtiles

    第77节:Java中的事务和数据库连接池和DBUtiles 前言 看哭你,字数:8803,承蒙关照,谢谢朋友点赞! 事务 Transaction事务,什么是事务,事务是包含一组操作,这组操作里面包含许 ...

  2. 第70节:Java中xml和tomcat

    第70节:Java中xml和tomcat 前言: 哭着也要看完,字数: jdbc crud - statement dao java.sql.Driver The interface that eve ...

  3. 第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

  4. 第83节:Java中的学生管理系统分页功能

    第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...

  5. 第82节:Java中的学生管理系统

    第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...

  6. 第80节:Java中的MVC设计模式

    第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...

  7. 第79节:Java中一些要点

    第79节:Java中一些要点 前言 一些知识点忘了没,可以通过一个点引出什么内容呢?做出自己的思维导图,看看自己到了哪一步了呢 内容 如果有人问jre,jdk,jvm是什么,你怎么回答呢? jre的英 ...

  8. 第78节:Java中的网络编程(上)

    第78节:Java中的网络编程(上) 前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: ...

  9. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

随机推荐

  1. python基础之小数据池

    一,id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: name = '太白' print(id(name)) # 158583128 ...

  2. echart 图例

    说明:stack相同,两个bar合并但是不会重叠 如果需要重叠 用barGap: '-100%', 根据不同的需求来使用两者. <template> <div> echart ...

  3. 将bean转换成XML字符串

    package com.sinoservices.bms.bbl.rest.bean; import javax.xml.bind.annotation.XmlAccessType; import j ...

  4. SHELL脚本学习-练习写一个脚本4

    #编写一个脚本时,自动生成”#!/bin/bash”这一行和相关注释信息. 把以下的代码保存为一个sh文件,比如test.sh , 新建脚本是使用  bash test.sh newfile 即可. ...

  5. the default terminal(gnome-terminal) start up fail

    Platform:  Ubuntu 16.04 LTS Reason: variable $LANG on system is empty Solution: localectl set-locale ...

  6. Java在ServletContextListener、过滤器、拦截器解决对象无法注入问题

    1.通用方法: // 数据库日志操作对象 private LogInfoServiceIFC logInfoServiceProxy; @Override public void contextIni ...

  7. 不能ping通主机名

    https://www.linuxidc.com/Linux/2017-03/142253.htm sudo apt-get install winbind , sudo apt-get instal ...

  8. 【Selenium】【BugList5】chrom窗口未关闭,又新开窗口,报错:[8564:8632:0522/111825.341:ERROR:persistent_memory_allocator.cc(845)] Corruption detected in shared-memory segment.

    环境信息:Windows7 64位 + python 3.6.5 + selenium 3.11.0 +pyCharm 解决方法: 执行 driver = webdriver.Chrome()前必须把 ...

  9. mui框架下拉刷新和上拉刷新

    当初写的时候,是用的谷歌浏览器测试的,都可以正常刷新,下载到手机上面,在ios是可以刷新的,在安卓上面就刷新不了,就是拉不动,后来慢慢排除不是HTML的原因,是上下拉代码有问题,刚开始看的时候也没问题 ...

  10. tp5 数据库

    连接数据库: 在config下面的database.php里. 查找数据: halt(Db::name('studys')->column('name','age')); 也可以用find fi ...