数据库(一)——数据库概念、MySQL数据库(数据库操作、表操作、增删改查字段操作、单表查询、五大约束(主键、外键、非空、唯一、默认))

数据库(一)——数据库概念、MySQL数据库(数据库操作、表操作、增删改查字段操作、单表查询、五大约束)

一、数据库的概念以及相关介绍

1、数据库的概念

在这里插入图片描述

2、数据库的分类

在这里插入图片描述

3、数据库管理系统的概念

在这里插入图片描述

二、MySQL 数据库

1、MySQL 数据库简介

在这里插入图片描述
详细简介可自行百度。

2、特点

1、轻量级
2、开源、免费
3、学习成本比较低,操作比较简单

3、下载地址

下载地址:https://www.mysql.com/downloads/

4、安装

这里以 mysql-5.5.40 举例子,凡是没有特意说明的地方,都是默认点击下一步:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如果出了问题,安装失败,则卸载重装。一般按上面流程设置完,环境变量会默认已经帮我们弄好。如果有问题,请自行百度解决。

5、卸载

请自行百度卸载(后续心情好了就更新)

6、sql 语句

在这里插入图片描述

7、DDL语句

a、创建数据库

语法:create database studb(数据库的库名)

b、创建数据库并设置编码格式

创建数据库的同时也可以设置编码格式。按照之前的安装,默认已经是 utf8 的编码格式了:

create database 数据库的库名 character set 编码格式

在这里插入图片描述

c、查看数据的创建的一些信息

语法: show create database 数据库的库名

在这里插入图片描述

d、修改数据库的编码格式

语法: alter database 数据库的库名 character set 编码格式

在这里插入图片描述

e、查看所有数据库

语法:show databases;

在这里插入图片描述

f、删除数据库

语法:drop database 数据库的库名

g、使用数据库

如果要进行表的增删改查操作,要先进入(使用)某个数据库才能进行:

语法:use 数据库的库名

三、DDL

1、数据库与数据库表之间的关系

数据库中可以存在多张表,一张表只能在一个指定的数据库中。

2、mysql 常见的数据类型

a、字符类型

在这里插入图片描述

b、数值类型

在这里插入图片描述

c、时间类型

在这里插入图片描述

3、表的操作

表的创建:

1.语法:
	create table 表名(
	列名 数据类型(长度),
	列名 数据类型(长度),
	列名 数据类型(长度)
	.....
);

2.注意点:
	A.创建表示以英文的分号结尾,每一组列名是以逗号进行分割,最后一组列名,不需要编写逗号。
	B.数据类型的长度,可以不指定,但是一般建议指定其长度。

例子:
create table student(
	sid int(11),
	sname varchar(20),
	sage int(10),
	sex char(2),
	birthday date
)

表的操作(操作表前记得要先进入数据库中):

1、查看当前数据库中所有的表:show tables
2、查看表结构:desc 表名
3、修改表名:alter table 表名 rename to 新的表名
4、删除表: drop table 表名

对表中的行的操作
1、在末尾添加一行:alter table 表名 add 列名 数据类型(长度)
2、在指定的行之后添加:alter table 表名 add 列名 数据类型(长度) alter 已经存在的行名
3、修改行的数据类型:alter table 表名 modify 已经存在的行名 数据类型(长度)
注意: modify 不能修改行名

4、修改行名:alter table 表名 change 旧行名 新行名 数据类型(长度)
5、删除行名:alter table 表名 drop 行名

注意,以上操作,有的操作在添加了数据以后就不能操作了。

四、DML

素材:
在这里插入图片描述

1、insert——增加数据

a、第一种方式

在这里插入图片描述

b、第二种方式——指定查询某一列的数据

注意:这里并没有输入所有字段,仅输入了部分字段,需要在表明后面特定声明查找的字段。
在这里插入图片描述

c、第三种方式——插入多条数据

在这里插入图片描述

d、注意的地方

1、字符串类型的数据,使用单引号,或者是双引号修饰都可以,时间类型必须使用单引号来进行修饰。
2、插入的数据的数据类型,必须与表定义的数据类型是一致。
3、插入数据的长度的范围必须是声明数据类型的范围之内。

2、update——修改数据

在这里插入图片描述

3、delete——删除数据

a、第一种写法——通过 delete 删除

在这里插入图片描述

b、第二种写法——通过 turncate 删除

在这里插入图片描述

c、两者的区别

1TRUNCATE——删除表的所有的数据,还会删除表结构,delete 只是删除数据。
2delete——删除数据是一行一行进行删除。TRUNCATE 将整个表的数据进行删除,效率高。

4、单表查询

a、查询表中所有的数据

select * from 表名

b、查询表中指定的列名的数据

1.语法:select 列名1,列名2 from 表名
2.例子:
		#查询product表中pid和pname字段
		
		SELECT pid,pname FROM product

c、where 条件——根据条件进行查询

1、语法:select * from 表名 where 条件
2、例子:
		#查询product表中 id 大于5的数据
		SELECT * FROM product WHERE id > 5;

d、简单的运算查询

1.语法::select 运算 from 表名
2.说明:常规的运算都是可以实现 + - * /
3.例子:
		#查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.
		SELECT price+10 FROM product

注意:这里虽然显示出来的数据都加了10,但是原表里面的内容并没有改动。

e、设置别名

1.说明:
	A.可以给表或者是列设置别名,别名使用关键字 as 也可以省略。
	B.一般给表设置别名的时候可以省略,但是在给列设置别名的时候不建议省略。
	C.如果给表设置别名之后,表中的列可以直接通过别名来获取。
2.例子:
	SELECT p.pname, price+10 AS "运算后的结果" FROM product p

f、去除重复的数据

1.关键字:distinct
2.语法: select distinct 列名 from 表名
3.例子:
		#查询所有的价格
		SELECT DISTINCT price FROM product

g、根据条件进行查询

在这里插入图片描述
这里面,同样可以运用 java 里面的符号来进行运算

非: !

并且:&&(可以用 and 代替)

in||(可以用 or 代替)

h、模糊查询

1.模糊查询关键字: like
2.匹配的两个规则的符号: _ 与 %
3.说明:_占用一个字符、%匹配任意的字符
4.语法:select * from 表名 where 列名 like '匹配的规则'
5.例子:
		#查询含有'霸'字的所有商品
		SELECT * FROM product WHERE pname LIKE '%霸%';
		
		#查询以'香'开头的所有商品
		SELECT * FROM product WHERE pname LIKE '香%'
		
		#查询第二个字为'想'的所有商品
		SELECT * FROM product WHERE pname LIKE '_想%'

i、is null 和 is not null

1.说明 is null 表示是未插入数据的状态, is null 不等于""(空字符。)
2.案例:
		#查询没有分类的商品
		SELECT * FROM product p WHERE p.category_name IS NULL
		
		#查询有分类的商品
		SELECT * FROM product p WHERE p.category_name IS NOT NULL

j、排序

1.关键字: order by 
		 升序 asc、 降序 desc
2.语法: select * from 表名 order by 列名 排序规则
3.例子:
		#(1)使用价格排序(降序)
		SELECT * FROM product ORDER BY price DESC
		
		#(2)在价格排序(降序)的基础上
		#若价格相同,相同价格的数据以pid降序排序
		SELECT * FROM product ORDER BY price DESC,pid DESC

k、分组

1.关键字 group by 分组的条件
2.例子:
		# 统计各个分类下商品的个数。(count 的作用后面会讲,作用是查询总记录数)
		SELECT category_name,COUNT(1) FROM product GROUP BY category_name

l、过滤

1.关键字:having 过滤
2.例子:
	#统计各个分类商品的个数,有且 只显示分类名称不为空值的数据
	SELECT category_name,COUNT(1) FROM product GROUP BY category_name HAVING category_name IS NOT NULL
	
3. wherehaving 过滤的区别:
   (指的是字段的位置)
	having 是在分组的后面进行过滤
	where 是在分组前面进行过滤

m、分页查询

1.关键字:limit x 、limit x,x
2.解释
	limit x: 参数表示的页量,每页显示的数据,索引就是从0开始查找
	limit x,x: 参数1:表示的是数据库数据的索引,参数2: 表示的页量(建议使用这种方式)
	
3.案例:
	使用分页查询出第一条与第二条数据
	SELECT * FROM product LIMIT 0,2 第一页(表示的是从第 1 条数据开始,每一页2条数据)
	
	使用分页查询除第三条与第四条数据
	SELECT * FROM product LIMIT 2,2 第二页(表示的是从第 3 条数据开始,每一页2条数据)
	
	规律:(当前页-1)*页量

5、查询语句的顺序

1、顺序语法:
	select * from 表名 where 条件 + group by 分组 + having 过滤 + 排序 order by + 分页 limit

2、举例子:
	SELECT category_name,COUNT(1) AS cou FROM product WHERE category_name 
	LIKE '%品%' GROUP BY category_name HAVING category_name IS NOT NULL ORDER BY cou ASC LIMIT 0,1

6、MySQL常用的函数

a、聚合函数

在这里插入图片描述
例子:
在这里插入图片描述

b、时间函数

在这里插入图片描述

c、字符串函数

在这里插入图片描述

五、五大约束

1、约束概念

在这里插入图片描述

2、主键约束

主键约束概念:
在这里插入图片描述

a、第一种方式——创建表的时候设置主键

在这里插入图片描述

b、第二种方式——表创建完成之后设置主键

在这里插入图片描述

c、auto_increment——自增长策略

这个策略一般跟主键搭配使用(一般是用在 id 这块),当创建数据的时候,这个策略会默认帮你加1

注意:
1、自增长策略针对与是整数类型
2、自增长的波长都是1
3、自增长策略一般是与主键进行搭配的使用

3、唯一约束

在这里插入图片描述

a、第一种方式——创建表的时候设置

在这里插入图片描述

b、第二种方式——表创建完成之后设置

在这里插入图片描述

4、非空约束

概念与注意:
在这里插入图片描述
在这里插入图片描述
验证非空约束,可以赋值 null 测试。

5、默认约束

在这里插入图片描述
不插入数据时,插入你默认设置的数据。插入数据时,按照你插入的数据为准。

6、外键约束

给字段设置 foreign key 就是设置外键约束,通常情况外键一般设置的是其他表的主键。

关于外键约束以及详细用法参考下一篇章。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值