数据库,很简单的一门学科,至少我们老师是这么说的! 大家好,萌懵萌主欢迎客观来支持!
数据库 (Datebase,DB) 技术是程序开发人员要掌握的一种技术,使用数据库可以高效且条理分明地存储数据,它使人们能够更加迅速和方便地管理数据,主要体现在:
>可以结构化存储大量的数据信息,方便用户有效的检索和访问。
>可以有效地保持数据信息的一致性、完整性,降低数据冗余。
>可以满足应用的共享和安全方面的要求。
>数据库技术能够方便智能化地分析,产生新的应用信息。
当今常用的数据库
SQL Serve
Oracle
DB2
MySQL
数据库的基本概念
(1)数据
数据(Data)是描述事物的符号记录。
数据:在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,数据经过加工后就成为信息。
在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。
(2)数据库
数据库(Database, DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。
数据库是一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。
数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。
数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。
(3)数据库管理系统
数据库管理系统(Database Management System, DBMS)是数据库的机构,它是一个系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
数据库管理系统的主要类型有4种:文件管理系统,层次数据库系统,网状数据库系统和关系数据库系统,其中关系数据库系统的应用最为广泛。
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过它访问数据库中的数据,数据库管理员也通过它进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。
DBMS提供数据定义语言DDL(Data Definition Language)与数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
(4)数据库系统
数据库系统(Database System, DBS)是指引进数据库技术后的整个计算机系统,能够实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。
数据库系统由数据库(数据)、数据库管理系统(软件)、计算机硬件、操作系统及数据库管理员组成。
小提示:
在数据库系统、数据库管理系统和数据库三者之中,数据库管理系统是数据库系统的组成部分,数据库又是数据库管理系统的管理对象,因此可以说数据库系统包括数据库管理系统,数据库管理系统包括数据库。
数据库的语言:SQL语言(当前)
SQL的组成: DML:用来插入、修改和删除数据库的数据
DDL:用来建立数据库、数据库对象和定义其列,大部分以CREATE开头命令
DQL:用来对数据库中的数据进行查询
DCL:用来控制数据库组件的存取许可、存取权限等
数据库中的运算符:+ - * / %
数据库中的赋值运算符 : =
数据库中的比较运算符: = > < <>(不等于) >= <= !=(不等于)
数据库中的逻辑运算符: AND 当且仅当两个布尔表达式为TRUE时,返回TRUE
OR 当且仅当两个布尔表达式都为FALSE,返回FALSE
NOT 对布尔表达式的值取反,优先级别最高
言归正传,使用SQL插入数据
语法:
1 INSERT [INTO] 表名 [(列名列表)] VALUES(值列表)
一次插入多行数据:
(1)通过INSERT SELECT语句向表中添加数据
(2)通过SELECT INTO语句将现有表中的数据添加到新表中
语法:
SELECT IDENTITY(数据类型,表示种子,标识增长量) AS 列明 INTO 列表 FROM 原始表
(3)通过UNIO关键字合并数据进行插入
使用SQL更新数据
语法:
UPDATE 表名 SET 列名 = 更新值 [WHERE 更新值]
使用SQL删除数据(小编劝大家尽量不要使用)
语法:
DELETE [FROM] 表名 [WHERE <删除条件>]
以上只是给大家简单的介绍SQL,以及常用的一些语法。当然也有部分的内容忽略,因为在编程员的路上有一小部分不会用到。当然,如果大家有不懂的可以留下问题,小编很乐意为大家解决~在本章结束,小编会留下联系方式。
有了数据库,我们就会利用它来存储很多的信息。有的是肉眼可以一览无余的,有的则是一眼望不到头。这样,我们就不得不发明一种查询方式以便查询。所以,下面小编会为大家呈现关于数据库的查询方法
查询数据库的基础:
SELECT <列明> FROM <表名> [WHERE <查询条件表达式>] [ORDER BY <排序的列明>[ASC或DESC]]
注释:DESC是降序排序 ASC是升序排序
(1)查询所有的数据行和列
SELECT * FROM STUDENT
'*'表示所有的列
(2)查询部分行或列
SELECT SCode,SName,SAdress FROM Student WHERE SAdress ='河北'
(3)在查询中使用列的别名
(4)查询空值
(5)在查询中使用常量列
(6)查询返回限制的行数
查询排序使用ORDER BY
在查询中使用函数(看着难其实不难,小编会给你们最最最简单的解释让你们得到最大最大最大的收获)
SQL SERVER提供了一些内部函数,每个函数实现不同的功能,不同类别的函数都可以和SELECT、UPDATE、INSERT语句联合使用。
(1)字符串函数
函数名 | 描述 | 例子 |
CHARINDEX | 用来寻找一个指定的字符串在另一个字符串中的起始位置 |
SELECT CHARINDEX('NAME','My name is Tom',1) 返回:4 |
LEN | 返回传递给它的字符串长度 |
SELECT LEN('SQL SERVER 课程') 返回:12 |
UPPER | 把传递给它的字符串转换为大写 |
SELECT UPPER('sql server 课程') 返回:SQL SERVER 课程 |
LTRIM | 清楚字符左边的空格 |
SELECT LTRIM(' 周志宇 ') 返回:周志宇 (后面空格保留) |
RIRIM | 清楚字符右边的空格 |
SELECT LTRIM(' 周志宇 ') 返回: 周志宇(前面空格保留) |
RIGHT | 从字符串右边返回指定书目的字符 |
SELECT RIGHT(‘机房贷款’,2) 返回:贷款 |
REPLACE | 替换一个字符串的字符 |
SELECT REPLACE(‘双方的奋斗',双,单) 返回:单方的奋斗 |
STUFF | 在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串 |
SELECT STUFF('123我的456’,4,5,'他的') 返回:123他的456 |
(2)日期函数:
GETDATE | 取得当前的系统日期 |
SELECT GETDATE() 返回:今天的日期 |
DATEADD | 将制定的数值添加到指定的日期部分后的日期 |
SELECT DATEADD(mm,‘01/01/2009’) 返回:以当前的日期格式返回05/01/2009 |
DATEDIFF | 两个日期之间的指定日期部分的间隔 |
SELECT DATEDIFF(mm,‘01/01/2009’,'05/01/2009') 返回:4 |
DATENAME | 日期中指定日期部分的字符串形式 |
SELECT DATENAME(dw,'01/01/2000') 返回:Saturday或星期六 |
DATEPART | 日期中指定日期部分的整数形式 |
SELECT DATEPART(day,'01/15/2000') 返回:15 |
注释:
year | yy,yyy |
quarter | qq,q |
month | mm,m |
day | dd,d |
dayofyear | dy,y |
week | wk,ww |
weekday | dw,w |
hour | hh |
minute | mi,m |
second | ss,s |
millisecond | ms |
(3)数学函数:
RAND | 返回从0到1之间的随机float数 |
SELECT RAND() 返回:0.79288062146374 |
ABS | 取数值表达式的绝对值 |
SELECT ABS(-43) 返回:43 |
CELING | 向上取整 |
SELECT CELING(43.5) 返回:44 |
FLOOR | 想下去整 |
SELECT FLOOR(39.8) 返回:39 |
POWER | 取数值表达式的幂值 |
SELECT POWER(5.2) 返回:25 |
ROUND | 将数值表达式四舍五入 |
SELECCT ROUND(43.543,1) 返回:43.500 |
SIGN | 对于正数返回+1,对于负数但会-1,对于0返回0 |
SELECT SIGN(-43) 返回:-1 |
SQRT | 取浮点表达式的平方根 |
SELECT SQRT(9) 返回:3 |
(4)系统函数:
CONVERT | 用来转变数据类型 |
SELECT CONBERT(VARCHAR(5),12345) 返回:字符串12345 |
由于系统函数不经常应用,再次不多做解释,如有疑问,可以留下你的问题哦!
模糊查询和聚合函数(也是一个小点点哦)
(1)通配符:它是一类字符,它可以代替一个或多个真正的字符,查找信息时作为替代字符出现。
_ | 一个字符 |
% | 任意长度的字符串 |
[] | 括号中所指定范围内的一个字符 |
[^] |
不在括号中所指定范围内的任意一个字符 |
(2)使用LIKE进行模糊查询(:LIKE就是在一个字符串中去找有没有与条件相似的关键字,也就是说只要有我们要找的关键字在里面就行)
(3)使用BETWEEN在摸个范围进行查询(:BETWEEN的意思就是在---之间,顾名思义就是给定一个范围,在范围内查找)
(4)使用IN在例举值内进行查询:(:IN就是列举值必须与匹配的列具有相同的数据类型)
聚合函数:SUM()函数 AVG()函数 MAX()函数和MIN()函数 COUNT()函数
SUM()函数:计算的是列的总和
AVG()函数:计算的是平均数
MAX()函数:计算的是最大值
MIN()函数:计算的是最小值
COUNT()函数:计算的是总和
分组查询:采用GROUP BY字句来实现。用于统计时经常使用分组查询!
sum()
count()
max() min()
avg()
一旦通过group by分组,那么我们只能获取组相关的信息,而不能获取组中成员的信息
在select只能跟聚合函数和group by后面的列,其他列不允许
where之后不能有聚合函数