SQL数据库的简单 *** 作

SQL数据库的简单 *** 作,第1张

一 简单查询 简单的Transact SQL查询只包括选择列表 FROM子句和WHERE子句 它们分别说明所查询列 查询的 表或视图 以及搜索条件等 例如 下面的语句查询testtable表中姓名为 张三 的nickname字段和email字段 SELECT nickname emailFROM testtableWHERE name= 张三 (一)选择列表 选择列表(select_list)指出所查询列 它可以是一组列名列表 星号 表达式 变量(包括局部变量和全局变量)等构成 选择所有列例如 下面语句显示testtable表中所有列的数据 SELECT FROM testtable 选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同 例如 SELECT nickname emailFROM testtable 更改列标题在选择列表中 可重新指定列标题 定义格式为 列标题=列名列名 列标题如果指定的列标题不是标准的标识符格式时 应使用引号定界符 例如 下列语句使用汉字显示列标题 SELECT 昵称=nickname 电子邮件=emailFROM testtable 删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行 默认为ALL 使用DISTINCT选项时 对于所有重复的数据行在SELECT返回的结果集合中只保留一行 限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数 TOP n说明返回n行 而TOP n PERCENT时 说明n是表示一百分数 指定返回的行数等于总行数的百分之几 例如 SELECT TOP FROM testtable SELECT TOP PERCENT FROM testtable(二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图 在FROM子句中最多可指定 个表或视图 它们之间用逗号分隔 在FROM子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列所属的表或视图 例如在usertable和citytable表中同时存在cityid列 在查询两个表中的cityid时应使用下面语句格式加以限定 SELECT username citytable cityidFROM usertable citytableWHERE usertable cityid=citytable cityid在FROM子句中可用以下两种格式为表或视图指定别名 表名 as 别名表名 别名例如上面语句可用表的别名格式表示为 SELECT username b cityidFROM usertable a citytable bWHERE a cityid=b cityidSELECT不仅能从表或视图中检索数据 它还能够从其它查询语句所返回的结果集合中查询数据 例如 SELECT a au_fname+a au_lnameFROM authors a titleauthor ta(SELECT title_id titleFROM titlesWHERE ytd_sales> ) AS tWHERE a au_id=ta au_idAND ta title_id=t title_id此例中 将SELECT返回的结果集合给予一别名t 然后再从中检索数据 (三)使用WHERE子句设置查询条件 WHERE子句设置查询条件 过滤掉不需要的数据行 例如下面语句查询年龄大于 的数据 SELECT FROM usertableWHERE age> WHERE子句可包括各种条件运算符 比较运算符(大小比较) > >= = < <= <> !> !<范围运算符(表达式值是否在指定的范围) BEEEN…AND…NOT BEEEN…AND…列表运算符(判断表达式是否为列表中的指定项) IN (项 项 ……)NOT IN (项 项 ……)模式匹配符(判断值是否与指定的字符通配格式相符):LIKE NOT LIKE空值判断符(判断表达式是否为空) IS NULL NOT IS NULL逻辑运算符(用于多条件的逻辑连接) NOT AND OR 范围运算符例 age BEEEN AND 相当于age>= AND age<= 列表运算符例 country IN ( Germany China ) 模式匹配符例 常用于模糊查找 它判断列值是否与指定的字符串格式相匹配 可用于char varchar text ntext datetime和 alldatetime等类型查询 可使用以下通配字符 百分号% 可匹配任意类型和长度的字符 如果是中文 请使用两个百分号即%% 下划线_ 匹配单个任意字符 它常用来限制表达式的字符长度 方括号[] 指定一个字符 字符串或范围 要求所匹配对象为它们中的任一个 [^] 其取值也[] 相同 但它要求所匹配对象为指定字符以外的任一个字符 例如 限制以Publishing结尾 使用LIKE %Publishing 限制以A开头 LIKE [A]% 限制以A开头外 LIKE [^A]% 空值判断符例WHERE age IS NULL 逻辑运算符 优先级为NOT AND OR(四)查询结果排序 使用ORDER BY子句对查询返回的结果按一列或多列排序 ORDER BY子句的语法格式为 ORDER BY {column_name [ASC|DESC]} [ …n]其中ASC表示升序 为默认值 DESC为降序 ORDER BY不能按ntext text和image数据类型进行排序 例如 SELECT FROM usertableORDER BY age desc userid ASC另外 可以根据表达式进行排序 二 联合查询 UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示 即执行联合查询 UNION的语法格式为 select_statementUNION [ALL] selectstatement[UNION [ALL] selectstatement][…n]其中selectstatement为待联合的SELECT查询语句 ALL选项表示将所有行合并到结果集合中 不指定该项时 被联合查询结果集合中的重复行将只保留一行 联合查询时 查询结果的列标题为第一个查询语句的列标题 因此 要定义列标题必须在第一个查询语句中定义 要对联合查询结果排序时 也必须使用第一查询语句中的列名 列标题或者列序号 在使用UNION 运算符时 应保证每个联合查询语句的选择列表中有相同数量的表达式 并且每个查询选择表达式应具有相同的数据类型 或是可以自动将它们转换为相同的数据类型 在自动转换时 对于数值类型 系统将低精度的数据类型转换为高精度的数据类型 在包括多个查询的UNION语句中 其执行顺序是自左至右 使用括号可以改变这一执行顺序 例如 查询 UNION (查询 UNION 查询 )三 连接查询 通过连接运算符可以实现多个表查询 连接是关系数据库模型的主要特点 也是它区别于其它类型数据库管理系统的一个标志 在关系数据库管理系统中 表建立时各数据之间的关系不必确定 常把一个实体的所有信息存放在一个表中 当检索数据时 通过连接 *** 作查询出存放在多个表中的不同实体的信息 连接 *** 作给用户带来很大的灵活性 他们可以在任何时候增加新的数据类型 为不同实体创建新的表 尔后通过连接进行查询 连接可以在SELECT 语句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出连接时有助于将连接 *** 作与WHERE子句中的搜索条件区分开来 所以 在Transact SQL中推荐使用这种方法 SQL 标准所定义的FROM子句的连接语法格式为 FROM join_table join_type join_table[ON (join_condition)]其中join_table指出参与连接 *** 作的表名 连接可以对同一个表 *** 作 也可以对多表 *** 作 对同一个表 *** 作的连接又称做自连接 join_type 指出连接类型 可分为三种 内连接 外连接和交叉连接 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较 *** 作 并列出这些表中与连接条件相匹配的数据行 根据所使用的比较方式不同 内连接又分为等值连接 自然连接和不等连接三种 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种 与内连接不同的是 外连接不只列出与连接条件相匹配的行 而是列出左表(左外连接时) 右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行 交叉连接(CROSS JOIN)没有WHERE 子句 它返回连接表中所有数据行的笛卡尔积 其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数 连接 *** 作中的ON (join_condition) 子句指出连接条件 它由被连接表中的列和比较运算符 逻辑运算符等构成 无论哪种连接都不能对text ntext和image数据类型列进行直接连接 但可以对这三种列进行间接连接 例如 SELECT p pub_id p pub_id p pr_infoFROM pub_info AS p INNER JOIN pub_info AS p ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)(一)内连接内连接查询 *** 作列出与连接条件匹配的数据行 它使用比较运算符比较被连接列的列值 内连接分三种 等值连接 在连接条件中使用等于号(=)运算符比较被连接列的列值 其查询结果中列出被连接表中的所有列 包括其中的重复列 不等连接 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值 这些运算符包括> >= <= < !> ! 和> 自然连接 在连接条件中使用等于(=)运算符比较被连接列 lishixinzhi/Article/program/SQLServer/201311/21994 <!-- /和 -->

方法一:

打开企业管理器->点开SQL SERVRE 组->看到(local)window NT ,点击右键,点属性,就能看到版本信息,在产品标签中有personal的是个人版的,有Enterprise的是企业版的。

方法二:

第一步:使用SQL语句查询

select @@version

第三章 关系数据库SQL语言

本章为重点章,应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用,特别是数据查询的应用。结合上机 *** 作进行理解和掌握。

一、SQL概述。

1、SQL发展历程( 识记 )

SQL从1970年美国IBM研究中心的EFCodd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中,SQL(结构式查询语言)虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。

2、SQL数据库的体系结构( 领会 )

SQL数据库的体系结构也是三级结构 ,但术语与传统关系模型术语不同,在SQL中,关系模式称为“ 基本表 ”,存储模式称为“ 存储文件 ”,子模式称为“ 视图 ”,元组称“ 行 ”,属性称“ 列 ”。

SQL数据库体系的结构要点如下:

(1)一个SQL数据库是表的汇集。

(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。

(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。

(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。

(5)用户可以用SQL语句对表进行 *** 作,包括视图和基本表。

(6)SQL的用户可以是应用程序,也可以是终端用户。

3、SQL的组成( 识记 )

SQL由四部分组成:

(1)数据定义:SQL DDL定义SQL模式,基本表、视图和索引。

(2)数据 *** 纵:SQL DML包括数据查询和数据更新(增、删、改)。

(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。

(4)嵌入式SQL的使用规定。

二、SQL的数据定义( 简单应用 )

1、SQL模式的创建和撤消:

SQL 模式的创建 可简单理解为建立一个数据库,定义一个存储空间,其句法是:

CREAT SCHEMA 模式名> AUTHORIZATION 用户名>

撤消SQL模式的句法为:

DROP SCHEMA 模式名> [ CASCADE | RESTRICT ]

方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。

2、SQL提供的基本数据类型

数值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)

字符串型:char(n)、varchar(n),前者是定长,后者为变长串

位串型:bit(n),bit varying(n),同上。

时间型:date、time

3、基本表的创建、修改和撤消

基本表的创建:(可理解为建立表结构)

CREAT TABLE SQL 模式名。基本表名

(列名,类型,

……

完整性约束……)

完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY)。

基本表结构的修改

ALTER TABLE 基本表名 ADD/ DROP (增加/删除) 列名 类型名(增加时写出)

删除时有子句 [CASCADE|RESTRICT],前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。

基本表的撤消

DROP TABLE 基本表名 [CASCADE|RESTRICT]

4、视图的创建和撤消

创建: CREAT VIEW 视图名(列名表) AS SELECT 查询语句

撤消: DROP VIEW 视图名

5、索引的创建和撤消

创建: CREAT [UNIQUE] INDEX 索引名 ON 基本表名(列名表 [ASC|DESC])

撤消: DROP INDEX 索引名

总结:凡创建都用 CREAT ,删除都用 DROP ,改变用 alter ,再跟类型和名字,附加子句很容易了。

三、SQL的数据查询( 综合应用 )

这一段是本章的重点内容,应该熟练掌握。首先了解基本句法:

1、 SELECT -FROM- WHERE 句型

SELECT 列名表(逗号隔开) FROM 基本表或视图序列 WHERE 条件表达式

在这里,重点要掌握条件表达式中各种运算符的应用,如=,>,<,>等算术比较运算符、逻辑运算符 AND、OR、NOT 、集合成员资格运算符: IN,NOT IN ,以及嵌套的 SELECT 语句的用法要特别注意理解。 针对课本的例题和课后习题进行掌握。

在查询时, SELECT 语句可以有多种写法,如 联接查询、嵌套查询和使用存在量词的嵌套查询 等。都掌握,但是起码应能写出一种正确的查询语句。

2 SELECT 语句完整的句法:

SELECT 列名表(逗号隔开)

FROM 基本表或视图序列

[ WHERE 条件表达式] (此为和条件子句)

[GROUP BY 列名序列] (分组子句)

[HAVING 组条件表达式] (组条件子句)

[ORDER BY列名[ASC|DESC]……] (排序子句)

这段关于完整句法的内容能够理解也就问题不大了。

3、 SELECT 语句中的限定

这一段内容主要是对 SELECT 语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。

要求输出表格中不出现重复元组,则在 SELECT 后加一DISTINCT

SELECT 子句中允许出现加减乘除及列名,常数的算术表达式

WHERE 子句中可以用BETWEEN……AND……来限定一个值的范围

同一个基本表在 SELECT 语句中多次引用时可用AS来增加别名

WHERE 子句中字符串匹配用LIKE和两个通配符,%和下划线_

查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT) *** 作

查询空值 *** 作不是用='null',而是用 IS NULL来测试。

集合成员资格比较用 IN/NOT IN ,集合成员算术比较用元组θSOME/ALL

可以用子查询结果取名(表名(列名序列))来作为导出表使用

基本表的自然联接 *** 作是用 NATURAL INNER JOIN来实现的。

四、SQL的数据更新( 简单应用 )

简单应用就是掌握基本的句型并能套用在一些简单的查询要求上。

1、数据插入:

INSERT INTO 基本表名(列名表)

valueS (元组值)

INSERT INTO 基本表名(列名表)

SELECT 查询语句

其中元组值可以连续插入。用查询语句可以按要求插入所需数据。

2、数据删除:

DELETE FROM 基本表名 [ WHERE 条件表达式]

3、数据修改:

UPDATE 基本表名

SET 列名=值表达式,[列名=值表达式……]

[ WHERE 条件表达式]

4、对视图的更新:

我们知道,对视图的查询是和基本表相同的,但是更新 *** 作则受到下列三条规则的限制:(领会一下)

如果视图是从多个基本表使用联接 *** 作导出的,则不允许更新。

如果导出的视图使用了分组和聚合 *** 作,也不允许更新。

如果视图是从单个基本表使用选择和投影 *** 作导出的,并且包括了基本表的主键或某个候选键,则可以执行 *** 作。(这就相当于在基本表上 *** 作)。

这一节的关于增删改的 *** 作要和前面关于数据库模式、表的增删改 *** 作进行对比学习,以加深理解。不要忘记上机实践

在你本地的管理工具中,有查询分析器,用它连接远程数据库,然后编写建表语句执行即可!

如下:

CREATE

TABLE

[dbo][表名](

[ID]

[int]

IDENTITY(1,1)

NOT

NULL,[Type]

[smallint]

NOT

NULL

CONSTRAINT

[PK_表名]

PRIMARY

KEY

CLUSTERED

(

[ID]

ASC

)

ON

[PRIMARY]

)

ON

[PRIMARY]

在关系数据库实现过程中,第一步是建立关系模式,定义基本表的结构,即该关系模式是哪些属性组成的,每一属性的数据类型及数据可能的长度、是否允许为空值以及其它完整性约束条件。

定义基本表:

CREATETABLE([列级完整性约束条件]

[,[列级完整性约束条件]]

[,[列级完整性约束条件]]

[,表列级完整性约束条件]);

说明:

1、中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。

2、CREATETABLE表示是SQL的关键字,指示本SQL语句的功能。

3、是所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。

多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。

4、每个属性由列名、数据类型、该列的多个完整性约束条件组成。其中列名一般为属性的英文名缩写,在MicrosoftAess2010中也可以采用中文,建议不要这样做,编程开发时不方便。

5、完整性约束条件,分为列级的完整性约束和表级的完整性约束,如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

这些完整性约束条件被存入系统的数据字典中,当用户 *** 作表中数据时由RDBMS自动检查该 *** 作是否违背这些完整性约束,如果违背则RDBMS拒绝本次 *** 作;

这样保持了数据库状态的正确性和完整性,不需要用户提供检查,提高了编程的效率,降低了编程难度。列级的完整性通常为主关键字的定义、是否允许为空。表级的完整性约束条件一般为外码定义。

数据 *** 纵

数据 *** 纵语言是完成数据 *** 作的命令,一般分为两种类型的数据 *** 纵。

1、数据检索(常称为查询):寻找所需的具体数据。

2、数据修改:插入、删除和更新数据。

数据 *** 纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新)、SELECT(检索,又称查询)等组成。由于SELECT经常使用,所以一般将它称为查询(检索)语言并单独出现。

不是用导入。

MDF本来就是sql server的数据库文件。

你在左边菜单的“数据库”——>右键,选择“附件…”,在d出的对话框中,点击“添加”按钮,然后找到你的MDF文件,最后,一路确定就可以成功添加一个数据库了。

SQL改变查询编辑器的当前数据库可以用方法:use数据库名。

在程序内一般都是直接跨库访问,但首先当前数据库用户具备对别的数据有相应权限,例如:select  from AAADBdboAAA,以上语句是不管在当前在哪个数据库下,都可以直接查询AAADB数据库下的AAA表,其中dbo是架构名。

功能

SQL具有数据定义、数据 *** 纵、和数据控制的功能。

1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

2、SQL数据 *** 纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

以上就是关于SQL数据库的简单 *** 作全部的内容,包括:SQL数据库的简单 *** 作、如何查看sql数据库 是sql7还是sql8、自考《数据库原理》串讲—关系数据库SQL语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9641782.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存