当前位置: 首页 > news >正文

多样化的网站建设公司/seo网站排名优化公司哪家好

多样化的网站建设公司,seo网站排名优化公司哪家好,企业网络管理与配置的作者,网站建设主机目录 前言 一、MySQL 1. 关系型数据库 2.数据模型 二、SQL语句 1.DDL语句 1.1 数据库操作 1.1.1 查询数据库 1.1.2 创建数据库 1.1.3 使用数据库 1.1.4 删除数据库 1.2 表操作 1.2.1 创建表 1.2.2 约束 1.2.3 数据类型 2.DML语句 2.1 增加(insert&…

目录

前言

一、MySQL

1. 关系型数据库

2.数据模型

二、SQL语句

1.DDL语句

1.1 数据库操作

1.1.1 查询数据库

1.1.2 创建数据库

1.1.3 使用数据库

1.1.4 删除数据库

1.2 表操作

1.2.1 创建表

1.2.2 约束

1.2.3 数据类型

2.DML语句

2.1 增加(insert)

2.2 修改(update)

2.3 删除(delete)

3.DQL语句

3.1 基本查询

3.2 条件查询

3.3 聚合函数

3.4 分组查询

3.5 排序查询

3.6 分页查询


前言

在开发SpringBoot项目时,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。

web开发调用流程图如下所示:

下面讲解一下数据库的基础知识。

数据库有两个概念,第一个是DBMS(数据库管理系统),是操作和管理数据库的大型软件。第二个是SQL(结构化查询语言),它是操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准。

一、MySQL

下图是一些目前主流的数据库:

MySQL数据库是开源免费的中小型数据库,目前Oracle推出两个版本的Mysql:社区版(开源免费)、商业版(收费)。对于初学者来说,使用社区版就足够了。

MySQL安装配置教程:Mysql的安装和配置教程

DataGrip安装配置教程(操作数据库图形化工具):DataGrip下载安装及使用教程

1. 关系型数据库

关系型数据库就是建立在关系模型基础上,由多张相互连接的二维表组成的数据库。而所谓二维表,指的是由行和列组成的表,如下图:

二维表的优点:

  • 使用表存储数据,格式统一,便于维护

  • 使用SQL语言操作,标准统一,使用方便,可用于复杂查询

结论:基于二维表存储数据的数据库就成为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库

2.数据模型

MySQL数据库的数据模型是关系型数据库,是基于二维表进行数据存储的,具体的结构图下:

  • 通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库。

  • 使用MySQL客户端,向数据库管理系统发送一条SQL语句,由数据库管理系统根据SQL语句指令去操作数据库中的表结构及数据。

  • 一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包含多行记录。

二、SQL语句

SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。SQL语句根据其功能被分为四大类:DDL、DML、DQL、DCL 。

1.DDL语句

1.1 数据库操作

1.1.1 查询数据库

查询所有数据库:

show databases;

命令行中给出了当前所有的数据库

查询当前数据库:

select database();

1.1.2 创建数据库

语法:

create database [ if not exists ] 数据库名  [default charset utf8mb4];

案例:

-- 数据库不存在,则创建该数据库;如果存在则不创建
create database if not exists itcast; 

1.1.3 使用数据库

语法:

use 数据库名 ;

案例:切换到itcast数据库

use itcast;

1.1.4 删除数据库

语法:

drop database [ if exists ] 数据库名 ;
  • 如果删除一个不存在的数据库,将会报错。

  • 可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

1.2 表操作

1.2.1 创建表

语法:

create table  表名(字段1  字段1类型 [约束]  [comment  字段1注释 ],字段2  字段2类型 [约束]  [comment  字段2注释 ],......字段n  字段n类型 [约束]  [comment  字段n注释 ] 
) [ comment  表注释 ] ;

[约束]是对当前字段进行约束

示例:

create table tb_user (id int comment 'ID,唯一标识',   # id是一行数据的唯一标识(不能重复)username varchar(20) comment '用户名',name varchar(10) comment '姓名',age int comment '年龄',gender char(1) comment '性别'
) comment '用户表';

但是对于上面的表,我们能添加两条id为1的数据:

因为我们没有对字段添加约束,所以任何数据都可以填入。

1.2.2 约束

在MySQL数据库当中,提供了以下5种约束:

在上述的表结构中:

  • id 是一行数据的 唯一标识

  • username 用户名字段是非空唯一

  • name 姓名字段是不允许存储空值

  • gender 性别字段是有默认值,默认为男

create table tb_user (id int primary key auto_increment comment 'ID,唯一标识', #auto_increment表示主键自动增长username varchar(20) not null unique comment '用户名',name varchar(10) not null comment '姓名',age int comment '年龄',gender char(1) default '男' comment '性别' # default表示默认值 
) comment '用户表';

1.2.3 数据类型

数值类型主要有以下几种:

画红线的是常用的。

字符串类型主要有char类型和varchar类型:

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。 

示例: 用户名 username ---长度不定, 最长不会超过50username varchar(50)手机号 phone ---固定长度为11phone char(11)

日期时间类型如下:

示例: 生日字段  birthday ---生日只需要年月日  birthday date创建时间 createtime --- 需要精确到时分秒createtime  datetime

2.DML语句

2.1 增加(insert)

向指定字段添加数据

insert into 表名 (字段名1, 字段名2) values (值1, 值2);
-- 因为设计表时create_time, update_time两个字段不能为NULL,所以也做为要插入的字段
insert into emp(username, name, gender, phone, create_time, update_time)
values ('wuji', '张无忌', 1, '13309091231', now(), now());

全部字段添加数据

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

批量添加数据(指定字段)

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

批量添加数据(全部字段)

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

2.2 修改(update)

语法:

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

 示例:

将id为1的数据,name改为“张三”,update_time改为当前时间。

update emp set name='张三', update_time=now() where id=1;

2.3 删除(delete)

语法:

delete from 表名  [where  条件] ;

示例:

删除emp表中id为1的那一行数据。

delete from emp where id = 1;

3.DQL语句

DQL语句用来查询数据库表中的记录,是最常用的SQL语句。

3.1 基本查询

查询多个字段:

select 字段1, 字段2, 字段3 from  表名;

查询所有字段:

select *  from  表名;

3.2 条件查询

语法:

select  字段列表  from   表名   where   条件列表 ; -- 条件列表:意味着可以有多个条件

示例:

查询名字为杨逍的那一行数据。

select id, username, password, name, gender, phone, salary, job, image, entry_date, create_time, update_time
from emp
where name = '杨逍'; -- 字符串使用''或""包含

比较运算符:

逻辑运算符:

3.3 聚合函数

常用的聚合函数如下:

示例:

统计平均工资

select avg(salary) from  emp;

统计emp表中有多少数据:

-- count(*)  推荐此写法(MySQL底层进行了优化)
select count(*) from emp;

3.4 分组查询

  • 分组: 按照某一列或者某几列,把相同的数据进行合并输出。

    • 分组其实就是按列进行分类(指定列下相同的数据归为一类),然后可以对分类完的数据进行合并计算。

    • 分组查询通常会使用聚合函数进行计算。

语法:

select  字段列表  from  表名  [where 条件]  group by 分组字段名  [having 分组后过滤条件];

示例:

根据性别分组 , 统计男性和女性员工的数量 

select gender, count(*)
from emp
group by gender; -- 按照gender字段进行分组(gender字段下相同的数据归为一组)

查询入职时间在 '2015-01-01' (包含) 以前的员工 , 并对结果根据职位分组 , 获取员工数量大于等于2的职位 

select job, count(*)
from emp
where entry_date <= '2015-01-01'   -- 分组前条件
group by job                      -- 按照job字段分组
having count(*) >= 2;             -- 分组后条件

where与having区别

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

3.5 排序查询

语法:

select  字段列表  
from   表名   
[where  条件列表] 
[group by  分组字段 ] 
order  by  字段1  排序方式1 , 字段2  排序方式2 … ;
  • 排序方式:

    • ASC :升序(默认值)

    • DESC:降序

示例:

根据entry_date,进行降序排序

select id, username, password, name, gender, phone, salary, job, image, entry_date, create_time, update_time
from emp
order by entry_date DESC; -- 按照entrydate字段下的数据进行降序排序

3.6 分页查询

语法:

select  字段列表  from  表名  limit  起始索引, 查询记录数 ;

示例:

从起始索引0开始查询数据, 每页展示5条记录

select id, username, password, name, gender, phone, salary, job, image, entry_date, create_time, update_time
from emp
limit 0 , 5; -- 从索引0开始,向后取5条记录

查询 第2页 员工数据, 每页展示5条记录 

select id, username, password, name, gender, phone, salary, job, image, entry_date, create_time, update_time
from emp
limit 5 , 5; -- 从索引5开始,向后取5条记录

 

http://www.whsansanxincailiao.cn/news/32042478.html

相关文章:

  • 如何修改网站关键词/游戏优化大师官方下载
  • 网站建设运行工作情况总结/本地建站软件有哪些
  • 网站制作的语言/如何把网站推广出去
  • 电子商务网站建设交印花税吗/临沂森佳木业有限公司
  • 做网站贵/seo关键词怎么优化
  • 武汉做网站需要多少钱/关键词com
  • java做网站模版多站管理/网络营销与直播电商学什么
  • 教务管理系统数据库设计/seo手机搜索快速排名
  • 社交网站做强/关键词排名优化公司成都
  • 给公司建网站/seo网络优化日常工作内容
  • 做网站的那个语言好/营销型网站建设解决方案
  • 重庆网站建设jccit/磁力搜索
  • 惠州网站建设效果/win7优化大师官网
  • 整合营销网站/最新新闻热点话题
  • 栅格布局 网站设计/seo排名优化首页
  • 怎么给QQ名片做网站/交换友链要注意什么
  • 绵阳专业网站建设公司/一站式发稿平台
  • 苏州营销网站建设/博客网站登录
  • 代刷推广网站/google推广平台怎么做
  • 菠菜导航网站可以做/推广软件app
  • 网站建设的风格/灰色行业seo大神
  • 做个人网站要注意什么/浏览器网页版入口
  • 武汉网站建设公司有哪些/《新闻联播》 今天
  • 丰台做网站/seo站长平台
  • 在excel中怎么做邮箱网站/企业网站建设公司
  • 网站建设按年收费吗/优化网站排名的方法
  • 毕业设计代做网站机械/日本比分预测
  • 做景观私活的网站/网络平台推广有哪些渠道
  • 中国建设企业网站官网/app拉新推广代理平台
  • 上海做核酸最新通知/重庆seo网站推广优化