SQL语言深入

数据库系统

数据库系统主要有以下 3 个组成部分:

1 . 数据库:用于存储数据的地方。

2 . 数据库管理系统:用于管理数据库的软件。

3 . 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库库的软件补充。

数据库管理系统(Database Management System,DBMS)是位于操作系统与用户之间的一种操纵和管理数据库的软件,按照一定的数据模型科学地组织和存储数据,同时可以提供数据高效地获取和维护。

数据库管理系统的主要功能。

1 数据定义功能
DBMS 提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

2 数据操纵功能
DBMS 还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用 DML 操作数据,实现对数据库的基本操作,如查询、插入、删除和修改等。

3 数据库的运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。例如:

	数据的完整性检查功能保证用户输入的数据应满足相应的约束条件;数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据;数据库的并发控制功能使多个用户可以在同一时刻并发地访问数据库的数据;数据库系统的故障恢复功能使数据库运行出现故障时可以进行数据库恢复,以保证数据库可靠地运行。

4 提供方便、有效地存取数据库信息的接口和工具
编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database Administrator,DBA)可通过提供的工具对数据库进行管理。

数据库管理员是维护和管理数据库的专门人员。

5 数据库的建立和维护功能
数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监控、分析功能等。这些功能通常由一些使用程序来完成。

数据库系统是指在计算机系统中引入数据库后的系统。一个完整的数据库系统(Database System,DBS)一般由数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员和用户组成。完整的数据库系统结构关系如图所示:

在这里插入图片描述

SQL语言

MySQL 服务器正确安装以后,就已经完成了一个完整的 DBMS 的搭建,可以通过命令行管理工具或者图形化的管理工具对 MySQL 数据库进行操作。这种对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。

SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。与其他程序设计语言(如 C语言、Java 等)不同的是,SQL 由很少的关键字组成,每个 SQL 语句通过一个或多个关键字构成。

SQL 具有如下优点。

1 . 一体化:SQL 集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。

2 . 使用方式灵活:SQL 具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java 等语言中使用。

3 . 非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”,存储路径的选择和操作的执行由数据库管理系统自动完成。

4 . 语言简洁、语法简单:该语言的语句都是由描述性很强的英语单词组成,而且这些单词的数目不多。

SQL 包含以下 4 部分:

1 . 数据定义语言(DDL):DROP、CREATE、ALTER 等语句。

2 . 数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。

3 . 数据查询语言(DQL):SELECT 语句。

4 . 数据控制语言(DCL): GRANT、REVOKE、COMMIT、ROLLBACK 等语句。

使用 SQL 语句创建一个名叫 students 的表:

CREATE TABLE students (student_id INT UNSIGNED,name VARCHAR(30) ,sex CHAR(1),birth DATE,PRIMARY KEY(student_id)
);

该表包含 4 个字段,分别为 student_id、name、sex、birth,其中 student_id 定义为表的主键。

现在只是定义了一张表格,但并没有任何数据,接下来这条 SQL 声明语句,将在 students 表中插入一条数据记录:

INSERT INTO students (student_id, name, sex, birth)
VALUES (41048101, '百度', '2', '2019-08-14');

执行完该 SQL 语句之后,students 表中就会增加一行新记录,该记录中字段 student_id 的值为“41048101”,name 字段的值为“百度”。sex 字段值为“1”,birth 字段值为“2019-08-14”。

再使用 SELECT 查询语句获取刚才插入的数据,如下:

SELECT name FROM students WHERE student_id=41048101;
+--------------+
| name         |
+--------------+
|百度|
+--------------+

注意:SQL 语句不区分大小写,许多 SQL 开发人员习惯对 SQL 本身的关键字进行大写,而对表或者列的名称使用小写,这样可以提高代码的可阅读性和可维护性。

数据库访问接口

不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理。主要的数据库访问接口主要有 ODBC、JDBC、ADO.NET 和 PDO。

ODBC
ODBC(Open Database Connectivity,开放数据库互连)为访问不同的 SQL 数据库提供了一个共同的接口。ODBC 使用 SQL 作为访问数据的标准。这一接口提供了最大限度的互操作性。一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统。

一个基于 ODBC 的应用程序对数据库的操作不依赖任何 DBMS,不直接与 DBMS 打交道,所有的数据库操作由对应的 DBMS 的 ODBC 驱动程序完成。也就是说,不论是 MySQL 还是 Oracle 数据库,均可用 ODBC API 进行访问。由此可见,ODBC 的最大优点是能以统一的方式处理所有的数据库。

JDBC
Java Data Base(JDBC,Java 数据库连接)用于 Java 应用程序连接数据库的标准方法,是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。

ADO.NET
ADO.NET 是微软在 .NET 框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET 提供了对关系数据、XML 和应用程序的访问,允许和不同类型的数据源以及数据库进行交互。

PDO
PDO(PHP Data Object)为 PHP 访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO 是 PHP 5 新加入的一个重大功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tb项目管理实践_项目经理与项目管理整理

项目经理职责:要想项目的分配尽可能地准确,任务分配者必须了解项目研发相关的技术。进行产品开发过程中的业务目标、进度、成本、质量控制。挑选项目团队并进行团队建设,激发、鼓舞和改进团队的生产效率。识别项目干系人,定期向干…

加法的横式竖式教案c语言,20以内竖式加减法教案

【www.ahanw.cn--活动致辞】活动意图:数学的加减法运算很重要。特别是20以内的加减法是各种数字运算的基础。学好20以内的加减法,有利于活化孩子的头脑,发展孩子的思维。活动目标:1、感知进位加、退位减的算法,整理和归…

github随时同步代码_GitHub代码下载和同步

1.下载git客户端https://git-scm.com/ssh-keygen -C "youremail.address" -t rsa2. 把下面文件的内容复制到 https://github.com/settings/keysWindows:C:\Users\GengZhaoyun\.ssh\id_rsa.pubLinux:.ssh\id_rsa.pub测试是否配制正确ssh -T gitgithub.com显示Hi gengz…

c语言10个数求立方合并输出,C语言 求出100~999之间的所有“水仙花数”并输出...

“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯…

lstm 变长序列_keras在构建LSTM模型时对变长序列的处理操作

我就废话不多说了,大家还是直接看代码吧~补充知识:RNN(LSTM)数据形式及Padding操作处理变长时序序列dynamic_rnnSummaryRNN样本一样,计算的状态值和输出结构一致,也即是说只要当前时刻的输入值也前一状态值一样,那么其…

c语言平面向量加法考点,平面向量的加减法怎么死活都不会?有没有什么口诀?例如:向量AB+BC=?向量OA-OB=?向量AB-CB=?有没有什么口诀!...

设a(x,y),b(x,y).1、向量的加法向量的加法满足平行四边形法则和三角形法则.ABBCAC.ab(xx,yy).a00aa.向量加法的运算律:交换律:abba;结合律:(ab)ca(bc).2、向量的减法如果a、b是互为相反的向量,那么a-b,b-a,ab0.0的反向量为0AB-ACC…

乘基取整法是什么_数字逻辑电路-学习指南

数字逻辑电路-学习指南一、判断题(判断结果为真(T)或为假(F)1.()逻辑函数的真值表是惟一的,但表达式不一定是惟一的。2.()在基数乘除法中,整数部分的转换采用“除基取余”法,小数部分的转换采用“乘基取整”法。3&…

C语言定义直线的数据类型,C语言 | 数据类型

原标题:C语言 | 数据类型1.变量与常量数据在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算、图像显示、语音对话、视频播放、天文计算、发送邮件、游戏绘图以及任何我们可以想象到的事情。要完成这些任务,程序需要…

pyqt5生成py的文件为什么是c 语言,如何使用PyQt5在python中创建文件对话框

我有一个名为PDFviewer的python类,在运行该程序时,系统将显示一个窗口,该窗口处理button(打开文件夹),它将打开一个文件对话框,允许用户选择一个目录并显示其中的文件。在问题是,当我尝试单击按钮时&#x…

nosql简答什么是最终一致性_可靠消息最终一致性方案中预发送作用是什么

可靠消息最终一致性方案的核心流程①上游服务投递消息如果要实现可靠消息最终一致性方案,一般你可以自己写一个可靠消息服务,实现一些业务逻辑。首先,上游服务需要发送一条消息给可靠消息服务。这条消息说白了,你可以认为是对下游…

android汽车音频焦点方案,管理音频焦点  |  Android 开发者  |  Android Developers

两个或两个以上的 Android 应用可同时向同一输出流播放音频。系统会将所有音频流混合在一起。虽然这是一项出色的技术,但却会给用户带来很大的困扰。为了避免所有音乐应用同时播放,Android 引入了“音频焦点”的概念。一次只能有一个应用获得音频焦点。当…

neo4j browser执行脚本后不提示用时_还不懂什么是分层自动化测试的,有赞的实践经历告诉你...

来源:https://testerhome.com/articles/19109# 背景先理一下自动化测试的概念,从广义上来说,一切通过工具(程序)的方式来代替或者辅助手工测试的行为都可以成为自动化。从狭义上来说,通过编写脚本的方式,模拟手工测试…

android+自定义alertdialog,安卓自定义AlertDialog

AlertDialog.png使用方法 example:DialogUtil.showAlertDialog(getActivity(), R.mipmap.restart, "退出提示", "你确定要退出吗?"),"确定", "取消", true, new DialogUtil.AlertDialogBtnClickListener() {Overridepublic…

eclipse跳转到指定行快捷键_用什么快捷键可以跳到下一个一样的?

Ctrl Shift O: 引入imports语句Ctrl Shift T: 打开Open Type查找类文件Ctrl Shift F4: 关闭打开的所有窗口Ctrl Shift F: 整形Ctrl Alt ↓(↑) : 向下(上)复制本行 (搞笑)Ctrl D : 删除本行Ctrl O: Open declarations F3 : Open DeclarationCtrl E : 打开编辑器(切…

android 跟随动画,Android实现View拖拽跟随手指移动效果

今天想实现这个功能,但是网上搜索代码,都是利用setPadding,setMargin 等方法去实现的,这在Android 4.0 以前是没问题的,但是,android 4.0 后系统已经提供了更简单的方法给我们用了,就是setTrans…

mysql datetime 后面带了很多0_面试官:MySQL 表设计要注意什么?

作者 孤独烟来自公众号:孤独烟引言大家应该知道烟哥最近要(tiao 咳咳咳),嗯,不可描述!随手讲其中一部分知识,都是一些烟哥自己平时工作的总结以及经验。大家看完,其实能避开很多坑。而且很多问题&#xff0…

poi 顺序解析word_JavaPOI解析word提取数据到excel

Java POI解析Word提取数据存储在Excel一、了解POIPOI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容经过两天的学习,开始熟悉Java这么读取word和解析。本文中运用是读取整个页面模块的range,通过对ra…

android studio viewo,Android Studio 之 ViewModel

ViewModel 是 JetPack 类库中的一个功能,可以保存控件的状态 ,在整个Activity 生命周期中,状态不会失效如屏幕翻转时,状态可保留,不会失效!与 LiveData 配合使用!配合 Room 进行 Sqlite 操作数据…

git安装 perl ubuntu_ubuntu下安装git

最近在做自己的个人博客项目,部署在阿里云主机上,系统为ubuntu 16.04.4。项目开发在自己的Windows电脑上,每次项目进行改动后都需要手动上传文件到服务器上,感觉很是麻烦。所以准备在服务器上安装git并关联github账号,…

android 图片传递,如何使用包在Android活动之间传递图像(位图)?

按照EboMike的建议,我将位图保存在一个名为MyImage在我的应用程序的内部存储中,无法访问我的其他应用程序。这部分的代码如下:public String createImageFromBitmap(Bitmap bitmap) {String fileName "myImage";//no .png or .jpg…