JavaWeb-数据库(单表)

一、数据库相关概念

1、数据库

存储数据的仓库,数据是有组织地进行存储


英文:DataBase,简称DB

2、数据库管理系统(例如MySQL)

管理数据库的大型软件


英文:DataBase Management System 简称DBMS

3、SQL

英文:Structured Query Language,简称SQL,结构化查询语言

操作关系型数据库的编程语言

定义操作所有关系型数据库的统一标准

4、常见的关系型数据库管理系统

二、MySQL数据库

MySQL安装 5.7.24

        \bin放可执行文件

        将来会用到\bin目录里的可执行文件,如果说我们想在任何盘符下都来使用\bin目录下的可执行文件.exe,就需要配置环境变量。

        安装好MySQL就可以称,安装了MySQL的计算机为MySQL服务器(由MySQL对外提供数据管理和存储的服务)

MySQL卸载

1、net stop mysql停掉MySQL服务

2、mysql -remove mysql 

3、最后删除MySQL目录以及相关的环境变量

MySQL配置

MySQL登录、退出

登录:

(自己的)mysql -u用户名 -p密码

(别人的)mysql -u用户名 -p密码 -h要连接的mysql服务器IP地址(默认127.0.0.1) -P端口号(默认3306)

退出

exit

quit

MySQL数据模型

关系型数据库(通过表来存的)

关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张表能互相连接的二维表组成的数据库

优点:

        1、都是使用表结构,格式一致,易于维护。

        2、使用通用的SQL语言操作,使用方便,可用于复杂查询

        3、数据存储在磁盘中,安全。

在MySQL中数据库就是文件夹

三、SQL

1、sql简介

英文:Structured Query Language,简称SQL,

结构化查询语言,操作关系型数据库的编程语言

定义操作所有关系型数据库的统一标准

对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”

2、sql通用语法

a、SQL语句可以单行或多行书写,以分号结尾。

b、MySQL数据库的sql语句不区分大小写,关键字建议使用大写。

c、注释

        单行注释:-- 注释内容(在--后面接注释必须有一个空格) 或 #注释内容(MySQL特有的)

        多行注释:/* 注释 */

3、sql分类

DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等

DML(Data Manipulation Language)数据操作语言,用来对数据中表的数据进行增删改

DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)

DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,以及创建用户


4、ddl(DDL)操作数据库、表等

ddl(DDL)对于数据库的操作

1.查询

show databases;

2.创建

  • 创建数据库
  • cerate database 数据库名称;
  • 创建数据库(判断,如果不存在则创建)
  • create database if not exists 数据库名称;

3.删除

  • 删除数据库
  • drop database 数据库名称;
  • 删除数据库(判断,如果存在则删除)
  • drop database if exits 数据库名称;

4.使用

  • 查看当前使用的数据库
  • select database();
  • 使用数据库
  • use 数据库名称;

ddl(DDL)操作表

  • 创建(Create)
  • 查询(Retrieve)
  • 修改(Update)
  • 删除(Delete)
查询表
查询当前数据库下所有表名称

show tables;

查询表结构

desc 表名称;

创建表

create table 表名 (

                字段名1 数据类型,

                字段名2 数据类型,

                ...

                字段名n 数据类型n

);

数据类型

MySQL支持多种数据类型,可以分为三类:

        数值

使用举例:

  • age int
  • score double(总长度(位数),小数点后保留的位数)---(0-100,保留两位)3+2=5

score double(5,2)

        日期

使用举例:

birthday date                这里日期是只有年月日

        字符串

使用举例:

  • name char(32)        小括号里是限制的数据字符长度最大值(以空间换时间)

这个是定长字符串:意味着,保留“张三”,

这两个字符为char类型,但在这里依然会占32个字符,后面三十个字符 用空格补齐

所以char的存储性能要高一点

但是浪费空间

确定存储字符的长度时,用char更好,比如“性别”,只需要一个字符,sex char(1)

  • name varchar(32)          类似的        (以时间换空间)

这是变长字符串,意味着保留“张三”,只会占两个字符空间

varchar的存储性能要低一点(因为他要计算保留数据的长度)

节约空间

不确定存储数据的长度时,用varchar,比如”用户名“ ,不一定几个字符,name varchar(10)

案例练习

create table student(
        id int,
        name varchar(10),
        gender char(1),
        birthday date,
        score double(5,2),
        email varchar(64),
        tel varchar(15),
        status tinyint
);

删除表(与删除数据库类似)
修改表:
  • 修改表名

alter table 表名 rename to 新的表名;

  • 添加一列

alter table 表名 add 列名 数据类型;

  • 修改数据类型

alter table 表名 modify 列名 新数据类型;

  • 修改列名和数据类型

alter table 表名 change 列名 新列名 新数据类型;

  • 删除列

alter table 表名 drop 列名;


5、dml(DML)对表中的数据进行增删改

  • 添加(insert
  • 修改(update
  • 删除(delete

dml(DML)添加数据

  1. 给指定列添加数据

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

  1. 2给全部列添加数据

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

  1. 3批量添加数据

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

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

dml(DML)修改数据

  • 修改表数据

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

注意:修改语句中如果不加条件,则将所有数据都修改!!!

dml(DML)删除数据

  • 删除数据

delete from 表名 [where 条件];

注意:删除语句中如果不加条件,则将所有数据都修改!!!


6、dql(DQL)对数据库进行查询(最重要)

查询语法

  • 基础查询
  • 条件查询(where)
  • 分组查询(group by)
  • 排序查询(order by)
  • 分页查询(limit)

select 字段列表

from 表名列表

where 条件列表

group by 分组字段

having 分组后条件

order by 排序字段

limit 分页限定

基础查询
  • 查询多个字段

select 字段列表 from 表名;

select * from 表名;-- 查询所有数据

  • 去除重复记录

select distinct 字段列表 from 表名;

  • 起别名

as:as也可以省略

条件查询(where)

分组查询(group by)

计算平均分其实就是一个分组操作,也是统计的操作!!!

聚合函数

概念:将一列数据作为一个整体,进行纵向计算。

聚合函数的分类:

  • count(列名)        统计数量(一般选用不含null的列),以下两种作为一般选取的类型
    • 主键
    • *
  • max(列名)  最大值
  • min(列名)  最小值
  • sum(列名) 求和
  • avg(列名)  平均值

聚合函数的语法:

select 聚合函数名(列名) from 表;

注意:null值不参与所有聚合函数运算

分组查询

排序查询(order by)

分页查询(limit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值