数据库基础知识

什么是数据技术

科学地组织和存储数据,高效的获取和处理数据

SQL

1.结构化和查询语言
2.是为数据库建立的操作命令集

数据库构成

数据-Data
*数据库-Database
*数据库管理系统-DBMS
*数据库系统-DBS

数据的定义

对客观事务的符号表示
数据是数据库中存储的基本对象

数据的种类

文字、图形、图像、声音

数据库(DB)定义

长期存储在计算机内的、有组织的、可共享的数据集合

特点:
具有较小的冗余度
较高的数据独立性
易扩展性,可修改的
可为各个用户共享

什么是DBMS

是应用程序与存储数据之间安定一层数据管理软件

DBMS 的用途

科学的组织和存储数据
高效的获取和维护数据

数据库定义功能

是对数据库创建修改和删除

数据库的操作功能

对数据的检索和更新

数据库的保护功能

保护数据的完整性和数据安全性
不受损

数据库的维护功能

数据的导入
转换
存储
性能监控

DBMS的优点

互相关联的数据集合
较少的数据冗余
程序与数据相互对立
保证数据的安全、可靠、正确
数据可以并发使用同时保证一致性(同步更新)

oracle

应用广泛
功能强大
分布式数据库系统
关系—对象型数据库

MySQL

快捷/可靠
开源、免费

SQL Server

测试常用
针对不同的用户群体的五个特殊的版本
易用性好

DB2

应用于大型应用系统,具有较好的可伸缩性

数据库系统(DBS) = DB + DBMS + 数据库管理员(DBA) + 用户
数据的发展3阶段

网状数据库-树形结构
层次数据库-图形结构
关系数据库 --简单二维表结构

信息

经过加工处理后所获取的有用的知识

现实世界

存在人脑之外的客观世界

信息世界

显示世界在人们头脑中的反映

数据世界

将信息用特定结构将数据存储在计算机中

实体—联系模型

实体
属性
联系
一对一联系、一对多联系、多对多联系

关系模型

关系:关系就是一张二维表,没有重复行,没有重复列的,有表名
元组:表中的行被称为元组,一个元组对应表中的一个记录
属性:表中的列为属性,属性是个元组属性的取值
域:属性的取值范围是域,同一属性只能在相同域中取值
关键字:关键字就是唯一的标识,不能重复

grant 授予权限
revoke 收回权限

与grant功能相反但不影响该用户或角色从其他角色中昨为成员继承许可权限

deny 收回权限

功能与revoke像是,不同之处除回收权限外还禁止从其他角色中继承许可权限

create 创建数据库或数据库对象
alter 对数据或数据库对象进行修改
drop 删除数据库或数据库对象
select 从表或视图中检索数据,使用最频繁的sql语句
insert 向表或视图中插入数据
update 修改更新表或视图中删除数据
Transact-SQL语言

数据控制语言(DCL):进行安全性管理
主要语句:grant、deny、revoke
数据定义语言(DDL):执行数据库任务
主要语句:create、alter、drop
数据操作语言(DML):操作数据库中各种对象
主要语句:select、insert、update、delete

一个数据库包含三个文件

基本数据文件(主数据文件):一个数据库只有一个,扩展名为 .mdf

辅助数据文件:自由选择,当数据库很大时,可以选择多个,扩展名为 .ndf

日志文件: 用于恢复数据库所需要的事务日志信息,扩展名为 .1df

DBS=DB+DBMS+应用系统+数据管理员(DBA)+用户

修改表

修改属性:
alter tabel 表名 modify 属性名 数据类型

修改字段名:
alter table 表名 change 旧字段名 新字段名 数据类型;

查看表结构

desc 表名;

在创建好表的情况下,如何添加主键约束

格式一:
alter table 表名 modify 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名);
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名);

删除主键约束

alter table 表名 drop primary key;
数据的完整性指存储在数据库中的数据应该保持准确性和可靠性

创建表的同时创建主键约束

创建表的同时创建主键约束
create table 表名(
列名1 数据类型 primary key,
列名2 数据类型
);

联合主键:
create table 表名(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
constraint 主键约束的名字 primary key(列名1,列名2)
);
唯一约束 unique
唯一约束不能出现重复的值
格式一:
create table 表名(
列名1 数据类型 unique,
列名2 数据类型
);

添加唯一约束
alter table 表名 add unique(列名);

删除唯一约束
alter table 表名 drop index 列名;
非空约束 not null
格式
列名 数据类型 not null 
一个表里面也可以有多个非空约束

针对已经创建好的情况下添加非空约束
alter table 表名 modify 列名 数据类型 not null;
域的完整性 默认约束 default
针对创建好的表的情况下添加默认约束
alter table 表名 modify 列名 数据类型 default ‘默认值’;

删除默认约束
alter table 表名 modify 列名 数据类型;

检查约束 check (mysql不支持check约束)

描述:限制某个列的取值范围 年龄 18-25 性别 要么男 要么女

1.创建表的同时创建检查约束
create tabel 表名(
列名1 数据类型,
列名2 数据类型 check(条件说明)
);

2.针对创建好表的情况下 添加检查约束
alter table 表名 add constraint 检查约束的名字 check(条件);

3.删除检查约束
alter table 表名 drop constraint 检查约束的名字;

外键约束

表的外键值必须在主表中能找到;
当主表的记录被从表参照时,主表的记录将不允许删除
如果要删除数据,需要先删除从表中依赖该记录的数据

主表:被引用的表(被参照的表)
从表:引用的表 外键月数据建立在从表里面
在创建表的同时创建外键约束
参照的表:
create table 主表1(
主表列名1 数据类型 primary key,
主表列名2 数据类型 unique
)

从表:
create teble 从表2(
从表列名1 数据类型,
从表列名2 数据类型,
constraint 外键约束的名字 foreign key(列名1) references 主表1(主表列名1)

在引用过程中,主表和从表的两个列的数据类型必须保持一致(内容也一样 )
删除外键约束
alter table 表名 drop foreign key 外键约束的名字;
create alter drop主要针对表结构来说
insert delete update select 主要针对的是表中的数据来进行操作的
SQL语言的概念
   SQL是一种数据库查询和设计语言
使得数据库可以通过命令行的方式而非图形化界面的方式对表进行增删改查等操作
SQL是一门独立的语言,java中可以嵌入SQL语言对数据库进行操作
插入 insert
格式一:
insert into 表名(列名1,列名2...) values(值1,值2...);

格式二:
insert into 表名 values(值1,值2...);

格式三:
insert into 表名 vlaues(值1,值2,值3...),(值1,值2,值3...);
删除 delete
格式一:
delete from 表名:
格式二:
有条件的进行删除:delete from 表名 where 条件;
更新、修改 update
update 表名 set 列名=数据;

update 表名 set 列名=数据 where 列名=数据;
查询 select
select子句——》 要查询的列
from子句——》 要用到的表

基本格式:
select 列名 from 表名;
select 列名1,列名2,列名3... from 表名;
查询针对一列去重
select distinct 列名 from 表名称;
使用别名查询
select 列名 ‘别名’ from 表名;

select 列名 as ‘别名’ from 表名;
条件查询:
select 列名 from 表名 where 条件;

如果在连接条件中,有多个条件,可以使用and或者or进行连接
and 连接 是同时满足 or 连接 只需满足期中一个。
范围收缩条件:
1.在范围之内:
select 列名 from 表名 where 列名 between 开始值 and 结束值;

2.不在范围之内:
select 列名 from 表名 where 列名 not between 开始值 and 结束值;
列表搜索条件
IN关键字使用户可以选择与列表

in 只要匹配到括号里面任意一个值就会有查询结果
select 列名 from 表名 where 列名 in(值1,值2,值3...);
聚合函数
求和 sum(列名)
平均值 avg(列名)
最大值 max(列名)
最小值 min(列名)
count(*) 统计元组的个数

格式: select 聚合函数 from 表名;
分组
select 列名,聚合函数 from 表名 group by 列名;

select 列名,聚合函数 from 表名 group by 列名 having 条件(聚合函数);

排序
desc 降序
asc 升序
select 列名 from 表名 order by 列 desc|asc;

表连接(多表查询)

内连接(最常用)
特征:只有匹配到的情况下才会返回结果值
格式一:
select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2...
from 表名1,表名2
where 表名1.列=表名2.列;

格式二:
select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2...
from 表名1 inner join 表名2
on 表名1.列=表名2.列;


多表查询
例1:

在这里插入图片描述

例2:

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

在这里插入图片描述

select语句 整体结构
select 语句语法如下:
select select——list
	from table_list
	[where search_conditions]
	[group by group_by_list]
	[having search_conditions]
	[order by order_list[asc|desc]]
三表查询

例1:

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

在这里插入图片描述

外部连接
外部连接会返回from子句中提到的至少一个表或视图中的所有行

先写的表是左表后写的是右表

左连接格式: left outer join
select 表名1.列名1,表名1.列名2,表名2.列名1,表名2,列名2...
from 表名1 left outer join 表名2
on 表名1.列=表名2.列;

如果左表的某行在右表中没有找到匹配的行,则结果集中的右表的相对应的位置为null

例子:

在这里插入图片描述

子查询
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL(Structured Query Language)是一种用于管理关系型数据库的语言。它可以用于创建、修改和查询数据库中的和数据。 以下是一些 SQL 数据库基础知识: 1. 数据库数据库是一个组织和存储数据的集合。它可以包含多个和其他对象,例如视图、存储过程和触发器。 2. 是数据在数据库中的结构化示。每个由一系列列组成,每列定义了中存储的数据类型。 3. 列:列是中的一个字段,它定义了数据的类型。例如,可以有一个名为“ID”的列,用于存储唯一的标识符。 4. 行:行是中的一个记录,它包含了一组相关的数据。每行的数据对应每个列。 5. 主键:主键是中唯一标识每行的一列或一组列。它用于确保中的每个行都有一个唯一标识符。 6. 外键:外键是中的一列,它与另一个的主键相关联。外键用于在多个之间建立关系。 7. 查询:查询是使用 SQL 语句从数据库中检索数据的过程。常见的查询操作包括 SELECT、INSERT、UPDATE 和 DELETE。 8. SELECT 语句:SELECT 语句用于从中检索数据。它允许你指定要检索的列和筛选条件,还可以用于排序和分组数据。 9. INSERT 语句:INSERT 语句用于向中插入新的行。 10. UPDATE 语句:UPDATE 语句用于更新中的数据。 11. DELETE 语句:DELETE 语句用于从删除行。 这些是 SQL 数据库的一些基本概念和操作。在实际应用中,SQL 还有许多其他功能和高级用法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值