java数据库小项目_数据库建立

java数据库小项目_数据库建立数据库第一SQL结构化查询语言————很多的数据库产品————mysqlsqlserveroracleDB2————关系型数据库————操作使用SQL语言————将数据持久化到硬盘上————将所有的需要保存

数据库

第一 SQL结构化查询语言 ———— > 很多的数据库产品 ———— > mysql sqlserver oracle DB2———— > 关系型数据库 ———— > 操作使用SQL语言 ———— > 将数据持久化到硬盘上 ———— > 将所有的需要保存的内容都一个一个单独管理的单元存在 ———— > 我们将这些的管理单元叫做库

第二 NOSql 两种解释 NotOnly SQL ,Not Sql
这种东西是近五六年出现的,他代表的内容和我们的关系型数据库有一些不同,NoSQL 是提倡跟快速的响应和存储,所以很多的NoSQL 数据库其响应速度是关系型数据库速度的N倍。同时,很多的NoSQL 其实是内存数据库,只在某个时段做数据持久化过程
数据库操作常用语句:

进入 :mysql -u root -p

要求:创建的每一个表必须有键。
创建数据库:create database name;
删除数据库:drop database danger;
查看数据库:show databases name;
带编码集的创建数据库:create database db_test default charset=utf8; //utf8 是编码集
进入刚创建的数据库的语句:use db_test;
查看库中的表:show tables;
创建表格式:create table fff(id int, name char(255),pwd varchar(255));
name char(10)规定这行所放字符数
删除表:drop table name;

查看表的属性:desc 名字;

向表中加入数据:insert into fff(id,name)value(345,456);
例:创建一个 id 键值自增,name 不能为空,pwd 有默认值,编码集为 utf8,都为int类型
create table fff(id int primary key auto_increment,name int not null,pwd int default 55)charset = utf8;

可以查询出信息:desc select *from foo\G;

主键自增:primary key auto_increment

处理表中内容的问题:确认一个表中,处理内容的动作有以下这些中,增删改查

增操作:**
①、**insert into 表名【(字段名,字段名)可不加】【value|values二选一】 (字段值,字段值);

value|values区分:

​ **②、**增加一列:alter table tb_test add tea char(255);向数据中加一列

删操作:delete from 表名[条件];

​ delete from tb_user where id = 2;//where后跟条件,删除id为2的那条数据;

​ 若为delete from tb_user;//则删除整个表的数据,再次添加数据时,从删除前的id的开始;

eg:若删除重复数据则:

	即保留有用的数据:DELETE FROM mail WHERE id NOT IN (SELECT * FROM (SELECT id FROM mail GROUP BY Email ORDER BY id) AS a);

在这里插入图片描述

改(更新)操作:update 表名 set 字段 = 值 条件;

​ update tb_user set name = ‘hhhh’,pwd = ‘tttt’ where id = 15;

查操作:select [字段名 别名]可不加 from 表名 别名 where 条件;//表别名可以改变代码量

​ ①:代表全部的字段:select * from tb_user;

​ ②:部分查看:name与pwd: select name,pwd from tb_user;
在这里插入图片描述

③:只查看name与pwd,并将其改变为其他名字:select name ‘姓名’,pwd ‘密码’ from tb_user;

在这里插入图片描述
④:多表连查:方法一:select *from tb_user,tb_major where uname = name;//无条件为笛卡尔积,先生成表,之后进行筛选

在这里插入图片描述

​ 方法二:select *from tb_user join tb_major on uname = name ; //直接生成以下表select *from tb_user join tb_major on uname = name where 条件,可以进一步的筛选。

在这里插入图片描述

⑤:在某散点查找:select *from tb_user where 类型 in (散点);

​ eg:select * from tb_user where name in (10,30,15);散点为10,30,15

⑥:在范围:select *from tb_user where 类型 between 起始点 and 终点;

⑦:模糊查询:select *from tb_user where 类型 like ‘%X(某字符)%’; //X为某字符,%为字符,%X%为包含X的数据;

⑧:表 join 表 on 一直都是半结果:

eg:三表查询select *from tb_user left join tb_major on 条件 join tb_score on;//最后加入on才算结束。

*总结:

join on 减少无用数据。

select name from tb_stu, tb_jor where 条件 :这是先形成一张tb_stu,tb_jor的表,之后根据条件筛选
select name from tb_stu join tb_jor on 条件1 where 条件2:where前直接形成的表数据会少(已经满足了条件1),再根据条件2对生成的这个数据少的表进行筛选

join、left join与right join关系图:

在这里插入图片描述

联合查询:select * from tb_stu union select * from test;//改变了后面表结构,后面的字段需要和前面的字段相同

union

在这里插入图片描述

遇到Subquery returns more than 1 row问题:加in、any、all
在这里插入图片描述

聚合函数:函数,Mysql中像其他的语言工具一样,提供了对于数据库用户,更方便管理数据库的一套工具,用户可以通过使用这些工具来处理一些相对复杂的一些数据。这些工具其中一部分,就是函数。这些函数和我们认知到的所有面向过程语言中的函数没有区别,也是有返回值和参数的。

聚合函数是我们使用数据库查询过程中,针对查询出来的结果,进行二次操作包装,使用到的一些特殊的函数,我们叫他聚合函数

举例:

uuid():生成uuid:select uuid//生成32位16进制的数

replace():字符串替换:select replace(uuid(),’-’,’’);//去掉生成的uuid中的—。

​ eg:insert into foo(id,num) values(replace(uuid(),’-’,’’),89);

concat():拼接字符串

max(字段):查询此列最大值。

​ eg:select max(score) from tb_major;

​ 也可作为条件select *from tb_major where score = (select max(score) from tb_major);

min(字段):查询此列最小值。

count(字段):查看此字段有几条数据。eg:select count(id) from tb_major;

avg(): 平均值 select avg(score) from tb_major where major = 1;

group by 字段:分组显示出来,从上到下遇见新的分组列出eg:select *from tb_major group by major; 数据都存在,只是经过分组,数据没有显示各组收起来了

各部分的执行顺序

select 聚合函数 from 某表 where 条件 group by 字段 order by 字段 having:

①先形成某表

②从表中筛选满足where条件的,在存储区生成表

③对筛选的表进行分组 group by

④对其分组进行聚合函数

⑤最后进行排序

语句中的执行顺序:
在这里插入图片描述
having后还可使用聚合函数

今天的文章java数据库小项目_数据库建立分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/68367.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注