数据库原理知识点Word下载.docx
- 文档编号:18427418
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:12
- 大小:21.83KB
数据库原理知识点Word下载.docx
《数据库原理知识点Word下载.docx》由会员分享,可在线阅读,更多相关《数据库原理知识点Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
如果是数值,请不要使用引号。
文本值:
这是正确的:
SELECT*FROMPersonsWHEREFirstName='
Bush'
这是错误的:
SELECT*FROMPersonsWHEREFirstName=Bush
数值:
SELECT*FROMPersonsWHEREYear>
1965这是错误的:
'
1965'
3.ORDERBY语句
ORDERBYXXDESC
ORDERBY语句用于根据指定的列对结果集进行排序。
ORDERBY语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用DESC关键字。
以字母顺序显示公司名称:
SELECTCompany,OrderNumberFROMOrdersORDERBYCompany
结果:
Company
OrderNumber
Apple
4698
IBM
3532
W3School
6953
2356
4.插入新的行
INSERTINTO。
。
VALUES9('
'
)
"
Persons"
表:
LastName
FirstName
Address
City
Carter
Thomas
ChanganStreet
Beijing
SQL语句:
INSERTINTOPersonsVALUES('
Gates'
'
Bill'
Xuanwumen10'
Beijing'
在指定的列中插入数据
Gates
Bill
Xuanwumen10
INSERTINTOPersons(LastName,Address)VALUES('
Wilson'
Champs-Elysees'
Wilson
Champs-Elysees
5.Update语句
Update语句用于修改表中的数据。
UPDATE表名称SET列名称=新值WHERE列名称=某值
Person:
更新某一行中的一个列
我们为lastname是"
Wilson"
的人添加firstname:
UPDATEPersonSETFirstName='
Fred'
WHERELastName='
Fred
更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):
UPDATEPersonSETAddress='
Zhongshan23'
City='
Nanjing'
WHERELastName='
Zhongshan23
Nanjing
6.LIKE操作符语法
SELECTcolumn_name(s)FROMtable_nameWHEREcolumn_nameLIKEpattern
原始的表(用在例子中的):
Persons表:
Id
1
Adams
John
OxfordStreet
London
2
Bush
George
FifthAvenue
NewYork
3
LIKE操作符实例
例子1
现在,我们希望从上面的"
表中选取居住在以"
N"
开始的城市里的人:
我们可以使用下面的SELECT语句:
SELECT*FROMPersonsWHERECityLIKE'
N%'
提示:
%"
可用于定义通配符(模式中缺少的字母)。
结果集:
例子2
接下来,我们希望从"
g"
结尾的城市里的人:
%g'
例子3
表中选取居住在包含"
lon"
的城市里的人:
%lon%'
例子4
通过使用NOT关键字,我们可以从"
表中选取居住在不包含
SELECT*FROMPersonsWHERECityNOTLIKE'
7.BETWEEN操作符
操作符BETWEEN...AND会选取介于两个值之间的数据范围。
这些值可以是数值、文本或者日期。
BETWEEN操作符实例
如需以字母顺序显示介于"
Adams"
(包括)和"
Carter"
(不包括)之间的人,请使用下面的SQL:
SELECT*FROMPersonsWHERELastNameBETWEEN'
Adams'
AND'
Carter'
重要事项:
不同的数据库对BETWEEN...AND操作符的处理方式是有差异的。
某些数据库会列出介于"
和"
之间的人,但不包括"
;
之间并包括"
的人;
而另一些数据库会列出介于"
之间的人,包括"
,但不包括"
。
所以,请检查你的数据库是如何处理BETWEEN....AND操作符的!
引用两个表
我们可以通过引用两个表的方式,从两个表中获取数据:
谁订购了产品,并且他们订购了什么产品?
SELECTPersons.LastName,Persons.FirstName,Orders.OrderNoFROMPersons,OrdersWHEREPersons.Id_P=Orders.Id_P
方法二:
SQLJOIN-使用Join
除了上面的方法,我们也可以使用关键词JOIN来从两个表中获取数据。
如果我们希望列出所有人的定购,可以使用下面的SELECT语句:
SELECTPersons.LastName,Persons.FirstName,Orders.OrderNoFROMPersonsINNERJOINOrdersONPersons.Id_P=Orders.Id_PORDERBYPersons.LastName
8.GROUPBY实例
我们拥有下面这个"
Orders"
O_Id
OrderDate
OrderPrice
Customer
2008/12/29
1000
2008/11/23
1600
2008/10/05
700
4
2008/09/28
300
5
2008/08/06
2000
6
2008/07/21
100
现在,我们希望查找每个客户的总金额(总订单)。
我们想要使用GROUPBY语句对客户进行组合。
我们使用下列SQL语句:
SELECTCustomer,SUM(OrderPrice)FROMOrdersGROUPBYCustomer
结果集类似这样:
SUM(OrderPrice)
1700
很棒吧,对不对?
让我们看一下如果省略GROUPBY会出现什么情况:
SELECTCustomer,SUM(OrderPrice)FROMOrders
5700
上面的结果集不是我们需要的。
那么为什么不能使用上面这条SELECT语句呢?
解释如下:
上面的SELECT语句指定了两列(Customer和SUM(OrderPrice))。
SUM(OrderPrice)"
返回一个单独的值("
OrderPrice"
列的总计),而"
Customer"
返回6个值(每个值对应"
表中的每一行)。
因此,我们得不到正确的结果。
不过,您已经看到了,GROUPBY语句解决了这个问题。
GROUPBY一个以上的列
我们也可以对一个以上的列应用GROUPBY语句,就像这样:
SELECTCustomer,OrderDate,SUM(OrderPrice)FROMOrdersGROUPBYCustomer,OrderDate
9.HAVING子句
在SQL中增加HAVING子句原因是,WHERE关键字无法与合计函数一起使用。
eg。
HAVINGSUM(OrderPrice)<
现在,我们希望查找订单总金额少于2000的客户。
我们使用如下SQL语句:
SELECTCustomer,SUM(OrderPrice)FROMOrdersGROUPBYCustomerHAVINGSUM(OrderPrice)<
结果集类似:
索引
您可以在表中创建索引,以便更加快速高效地查询数据。
用户无法看到索引,它们只能被用来加速搜索/查询。
注释:
更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。
因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
10.CHECK约束
CHECK约束用于限制列中的值的范围。
如果对单个列定义CHECK约束,那么该列只允许特定的值。
如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。
SQLCHECKConstraintonCREATETABLE
下面的SQL在"
表创建时为"
Id_P"
列创建CHECK约束。
CHECK约束规定"
列必须只包含大于0的整数。
MySQL:
CREATETABLEPersons(Id_PintNOTNULL,LastNamevarchar(255)NOTNULL,FirstNamevarchar(255),Addressvarchar(255),Cityvarchar(255),CHECK(Id_P>
0))
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL/SQLServer/Oracle/MSAccess:
CREATETABLEPersons(Id_PintNOTNULL,LastNamevarchar(255)NOTNULL,FirstNamevarchar(255),Addressvarchar(255),Cityvarchar(255),CONSTRAINTchk_PersonCHECK(Id_P>
0ANDCity='
Sandnes'
))
SQLCHECKConstraintonALTERTABLE
如果在表已存在的情况下为"
列创建CHECK约束,请使用下面的SQL:
ALTERTABLEPersonsADDCHECK(Id_P>
0)
ALTERTABLEPersonsADDCONSTRAINTchk_PersonCHECK(Id_P>
撤销CHECK约束
如需撤销CHECK约束,请使用下面的SQL:
SQLServer/Oracle/MSAccess:
ALTERTABLEPersonsDROPCONSTRAINTchk_Person
MySQL:
ALTERTABLEPersonsDROPCHECKchk_Person
问题:
视图的使用
函数max,min的使用
scx的使用
子查询的运用
SQLDML和DDL
可以把SQL分为两个部分:
数据操作语言(DML)和数据定义语言(DDL)。
SQL(结构化查询语言)是用于执行查询的语法。
但是SQL语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了SQL的DML部分:
∙SELECT
-从数据库表中获取数据
∙UPDATE
-更新数据库表中的数据
∙DELETE
-从数据库表中删除数据
∙INSERTINTO
-向数据库表中插入数据
SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。
我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL中最重要的DDL语句:
∙CREATEDATABASE
-创建新数据库
∙ALTERDATABASE
-修改数据库
∙CREATETABLE
-创建新表
∙ALTERTABLE
-变更(改变)数据库表
∙DROPTABLE
-删除表
∙CREATEINDEX
-创建索引(搜索键)
∙DROPINDEX
-删除索引
RDBMS
RDBMS指的是关系型数据库管理系统。
RDBMS是SQL的基础,同样也是所有现代数据库系统的基础RDBMS中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
在您的网站中使用SQL
要创建发布数据库中数据的网站,您需要以下要素:
∙RDBMS数据库程序(比如MSAccess,SQLServer,MySQL)
∙服务器端脚本语言(比如PHP或ASP)
∙SQL
∙HTML/CSS
比如
MSAccess、DB2、Informix、MSSQLServer、Oracle、Sybase
以及其他数据库系统。
不幸地是,存在着很多不同版本的SQL语言,但是为了与ANSI标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如SELECT、UPDATE、DELETE、INSERT、WHERE等等)。
除了SQL标准之外,大部分SQL数据库程序都拥有它们自己的私有扩展!
什么是SQL?
∙SQL指结构化查询语言
∙SQL使我们有能力访问数据库
∙SQL是一种ANSI的标准计算机语言
编者注:
ANSI,美国国家标准化组织
删除多个表的语句
mysql>
showdatabases;
+--------------------+
|Database
|
|information_schema|
|qdm155063477_db
2rowsinset
useqdm155063477_db;
Databasechanged
showtables;
+---------------------------+
|Tables_in_qdm155063477_db|
|user
1rowinset
descuser;
+----------+--------------+------+-----+---------+-------+
|Field
|Type
|Null|Key|Default|Extra|
|id
|varchar(255)|NO
|PRI|NULL
|
|username|varchar(64)
|NO
|NULL
|password|varchar(64)
|desc
|varchar(255)|YES
4rowsinset
、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 知识点