• 第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 点赞
  • 相关阅读:
    二分查找改遍
    条件运算符?:
    k倍区间
    分巧克力
    mm
    素数
    递归return
    确定一个域名使用的邮箱服务商
    mysql 存储过程一实例
    使用vmware 共享 windows下的文件夹 到 centos
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11140353.html
Copyright © 2020-2023  润新知