栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库(一)——数据库概念、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、两者的区别
1、TRUNCATE——删除表的所有的数据,还会删除表结构,delete 只是删除数据。
2、delete——删除数据是一行一行进行删除。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. where 与 having 过滤的区别:
   (指的是字段的位置)
	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 就是设置外键约束,通常情况外键一般设置的是其他表的主键。

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号