数据库入门经典基础总结_宋文轩的博客-程序员ITS301

技术标签: 数据库  

 

数据库,简而言之可视为电子化文件柜——存储电子文件数据的处所,用户可以对文件中的数据运行新增、提取、更新、删除等操作。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,随着信息技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

 

三范式(规范):

要想满足第二范式,必须先满足第一范式。

要想满足第三范式,必须先满足第二范式。

 

第一范式:列数据不可分割每一列都是不可分割的原子数据项,而不能是集合或数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。

第二范式:主键,非键字段必须依赖于键字段

要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识,即为主键

第三范式:外键第三范式是第二范式的一个子集,即满足第三范式必须满足第二范式。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。简言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。

 

下面总结一下基础:

1、创建数据库

create database database_name 

2、删除数据库

drop database dbname

3、创建新表

create table tabname(col1 type1 [not null] [primarykey],col2 type2 [not null],..)

根据已有的表创建新表: 

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2 from tab_old definition only

4、删除新表

drop table tabname 

5、增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

6、添加主键: Alter table tabname add primarykey(col) 

删除主键: Alter table tabname dropprimary key(col) 

7、创建索引:create [unique] index idxname ontabname(col….) 

删除索引:drop index idxname

索引是不可更改的,想更改必须删除重新建。

8、创建视图:create view viewname as selectstatement 

删除视图:drop view viewname

 

几个简单的基本的sql语句:

选择:select * from table1 where 范围

插入:insert into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1where 范围

查找:select * from table1 where field1 like ’%value1%’ 

排序:select * from table1 orderby field1,field2 [desc]

总数count、求和sum、平均avg、最大max、最小min。

 

1、说明:使用外连接 

A、left (outer) join: 

左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。 

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFTOUT JOIN b ON a.a = b.c

B:right (outer) join: 

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 

C:full/cross (outer) join: 

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

2、分组:Group by:

一张表,一旦分组 完成后,查询后只能得到组相关的信息。

组相关的信息:(统计信息) count,sum,max,min,avg分组的标准。

在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据。

在selecte统计函数中的字段,不能和普通的字段放在一起。

3、对数据库进行操作:

分离数据库: sp_detach_db;附加数据库:sp_attach_db 后接表名,附加需要完整的路径名。

4、关于排序order

a.对于排序order,有两种方法:asc升序、desc降序。

b.对于排序order,可以按照查询条件中的某项排列,而且这项可用数字表示。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39071599/article/details/86487237

智能推荐

mapView_Andy__Wu的博客-程序员ITS301

插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴趣位置点),annotation是可选的,选中的annotation会显示callout,用来显示信息。 2、设置地图显示类型:mapView.mapType = MKMapTypeStandard;mapView.mapTyp

linux tomcat安装配置apr_qinganjing的博客-程序员ITS301

安装apr说明安装apr主要为了提高在tomcat处理http请求的能力,可参考官网文档:http://tomcat.apache.org/tomcat-7.0-doc/apr.html的。

回归系数(拟合度)与相关系数_animaldww的博客-程序员ITS301_拟合度和相关系数的关系

<br />      拟合数据和原始数据的线性相关系数即为回归系数R(拟合度),其数值范围为[0,1]。实际应用中常用复相关系数的平方(R2)评价拟合程度。<br /> <br /> <br />                          

计算机网络复习题( 三)计算题_小陈同学,,的博客-程序员ITS301_码片向量规格化内积怎么算

计算题从来都不会 看不懂 我放弃了计算题(三)1.收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2×108m/s。试计算以下两种情况的发送时延和传播时延:(1)数据长度为107bit,数据发送速率为100kb/s。(2)数据长度为103bit,数据发送速率为1Gb/s。(3)从上面的计算中可以得到什么样的结论?答案:发送时延 = 数据长度(比特)/发...

java maven install_关于maven 项目install报错的问题以及解决办法_夜雨穿林的博客-程序员ITS301

问题近日有很多童鞋反映,javashop 6.1及6.0版本执行mvn install时报错,报错信息大致如下:经过测试发现,在eclipse环境下运行mvn install正常,而shell下使用指令mvn install则会报错;分析后发现是因为eclipse环境能够识别我们的java resourse,而shell或者命令行下无法识别我们的java resource。标准的maven项目的目...

随便推点

Element-ui中关闭dialog时隐藏组件并销毁_太阳晒屁股了的博客-程序员ITS301

背景:今天在写Vue时遇到一个element-ui中懒加载树的问题, 由于tree的展示是在模态框中, 所以默认显示模态框加载lazyLoad方法没问额!但是关闭后你再次打开模块框时不会再去执行lazyLoad方法了, 这就有问题了。&lt;el-dialog title="添加" :visible.sync="addDialogVisible"&gt; &lt;el-...

崩溃时快速自动重新启动Windows程序_culul01313的博客-程序员ITS301

We’ve all had programs crash on us in Windows at one time or another. You can take the time to manually start the program again, or you can have a simple program like ReStartMe restart it automaticall...

Vxe-Table的各种坑,以及避坑指南(需要补充的请留言)_小狼子丶的博客-程序员ITS301_vxe-table

背景:由于公司要开发erp,采用了element-plus做为UI基础框架,但是回想往事点点滴滴,element-ui表格的种种表现令人痛心,于是跟leader商量之后决定使用Vxe-Table做表格插件,虽然element-plus在表格上也在大力优化,但就目前来看可用度确实不高,刚出了一个虚拟滚动,但看上去确实让人有点心急。。。开发阶段遇到的各种问题全局size的问题有点扯犊子的事,我element-plus要做全局的size修改,那就意味着我的表格也要做全局的size修改,庆幸的是它有

Redis整合MySQL主从集群_别团等shy哥发育的博客-程序员ITS301

Redis整合MySQL主从集群1、用Docker搭建MySQL主从集群1.1 拉取mysql镜像1.2 创建配置文件夹1.3 编写主服务器的配置文件信息1.4 启动mysql主服务器的容器1.5 观察主服务器状态1.6 配置mysql从服务器1.7 启动mysql从服务器1.8 确认主从关系2、准备数据2.1 创建数据库2.2 创建student数据表2.3 向student表插入几条数据3、用Java代码读写MySQL集群和Redis3.1 引入redis和mysql依赖3.2 代码整合4、MySQL主

native react 更新机制_react-native-xupdate-new 一键实现react-native应用版本更新_weixin_39897505的博客-程序员ITS301

自2018年我开源了XUpdate之后,至今已迭代了14个版本,月下载量达4k+,Github的star量也已经有800+.目前XUpdate的生态已包含Android原生SDK、Flutter插件、版本更新后台服务、版本更新管理系统. 为了能够更加丰富它的生态,我决定再写一个React-Native插件。演示默认更新支持后台更新屏幕宽高比限制显示更新强制更新自定义更新提示弹窗样式快速集成指南&g...