当前位置:文档之家› 第4章 数据操作语句

第4章 数据操作语句

第4章 数据操作语句
第4章 数据操作语句

第 4 章数据操作语句

一.选择题

1.当关系R和S进行连接操作时,如果R中的元组不满足连接条件,在连接结果中也会将这些记录保留下来的操作是A

A.左外连接B.右外连接

C.内连接D.自连接

2.设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作,错误的是C

A.Grade IS NOT NULL B.Grade IS NULL

C.Grade = NULL D.NOT (Grade IS NULL)

3.下列聚合函数中,不忽略空值的是D

A.SUM(列名) B.MAX(列名)

C.A VG(列名) D.COUNT(*)

4.SELECT … INTO …FROM语句的功能是A

A.将查询结果插入到一个新表中

B.将查询结果插入到一个已建好的表中

C.合并查询的结果

D.向已存在的表中添加数据

5.下列利用SC表的查询语句中,错误的是B

A.SELECT Sno, COUNT(*) FROM SC GROUP BY Sno

B.S ELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) > 3

C.SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) > 3

D.SELECT Sno FROM SC GROUP BY Sno

6.现要利用Student表查询年龄最小的学生姓名和年龄。下列实现此功能的查询语句中,正确的是D

A.SELECT Sname, MIN(Sage) FROM Student

B.S ELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage)

C.SELECT TOP 1 Sname, Sage FROM Student

D.SELECT TOP 1 Sname, Sage FROM Student ORDER BY Sage

7.设SC表中记录成绩的列为:Grade,类型为int。若在查询成绩时,希望将成绩按‘优’、‘良’、‘中’、‘及格’和‘不及格’形式显示,正确的Case函数是C

A.Case Grade

When 90~100 THEN '优'

When 80~89 THEN '良'

When 70~79 THEN '中'

When 60~69 THEN '及格'

Else '不及格'

End

B.Case

When Grade between 90 and 100 THEN Grade = '优'

When Grade between 80 and 89 THEN Grade = '良'

When Grade between 70 and 79 THEN Grade = '中'

When Grade between 60 and 69 THEN Grade = '及格'

Else Grade = '不及格'

End

C.Case

When Grade between 90 and 100 THEN '优'

When Grade between 80 and 89 THEN '良'

When Grade between 70 and 79 THEN '中'

When Grade between 60 and 69 THEN '及格'

Else '不及格'

End

D.Case Grade

When 90~100 THEN Grade = '优'

When 80~89 THEN Grade = '良'

When 70~79 THEN Grade = '中'

When 60~69 THEN Grade = '及格'

Else Grade = '不及格'

End

8.下述语句的功能是将两个查询结果合并为一个结果。其中正确的是B A.select sno,sname,sage from student where sdept = 'cs' Order by sage

Union

select sno,sname,sage from student where sdept = 'is' Order by sage

B.s elect sno,sname,sage from student where sdept = 'cs' Union

select sno,sname,sage from student where sdept = 'is' Order by sage

C.select sno,sname,sage from student where sdept = 'cs' Union

select sno,sname from student where sdept = 'is'

Order by sage

D.select sno,sname,sage from student where sdept = 'cs' Order by sage

Union

select sno,sname,sage from student where sdept = 'is'

9.下列SQL语句中,用于修改表数据的语句是C

A.ALTER B.SELECT

C.UPDATE D.INSERT

10.设有Teachers表,该表的定义如下:

CREATE TABLE Teachers(

Tno CHAR(8) PRIMARY KEY,

Tname VARCHAR(10) NOT NULL,

Age TINYINT CHECK(Age BETWEEN 25 AND 65) )

下列插入语句中,不能正确执行的是D

A.INSERT INTO Teachers VALUES('T100','张鸿',NULL)

B.INSERT INTO Teachers(Tno,Tname,Age) VALUES('T100','张鸿',30) C.INSERT INTO Teachers(Tno,Tname) VALUES('T100','张鸿')

D.INSERT INTO TeachersVALUES('T100','张鸿')

11.设数据库中已有表4-1至4-3所示的Student、Course和SC表。现要查询学生选的第2学期开设课程的情况,只需列出学号、姓名、所在系和所选的课程号。该查询涉及到的表是D

A.仅Student表B.仅Student和SC表

C.仅Student和Course表D.Student、SC和Course表

12.删除计算机系学生(在student表中)的修课记录(在SC表中)的正确的语句是表是B

A.DELETE FROM SC JOIN Student b ON S.Sno = b.Sno

WHERE Sdept = '计算机系'

B.DELETE FROM SC FROM SC JOIN Student b ON SC.Sno = b.Sno

WHERE Sdept = '计算机系'

C.DELETE FROM Student WHERE Sdept = '计算机系'

D.DELETE FROM SC WHERE Sdept = '计算机系'

二.填空题

1.在相关子查询中,子查询的执行次数是由_________决定的。外层表的行数

2.对包含基于集合测试子查询的查询语句,是先执行_________层查询,在执行_________层查询。内,外

3.对包含相关子查询的查询语句,是先执行_________层查询,在执行_________层查询。外,内

4.聚合函数COUNT(*)是按_________统计数据个数。行

5.设Grade列目前有三个值:90、80和NULL,则A VG(Grade)的值是_________,MIN(Grade)的值是_________。85,80

6.设有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩),现要建立统计每个系的选课人数。请补全下列语句:COUNT(DISTINCT 选课表.学号)

SELECT 所在系, _________ FROM 选课表

JOIN 学生表 ON 选课表.学号 = 学生表.学号

GROUP BY 所在系

7.设有选课表(学号,课程号,成绩),现要查询考试成绩最高的三个学生的学号、课程号和成绩,包括并列情况。请补全下列语句:TOP 3 WITH TIES, ORDER BY 成绩DESC

SELECT _________ 学号,课程号,成绩 FROM 选课表

_________

8.UNION操作用于合并多个查询语句的结果,如果在合并结果时不希望去掉重复的数据,则在用UNION操作时应使用_________关键字。ALL

9.进行自连接操作的两个表在物理上为一张表。通过_________方法可将物理上的一张

表在逻辑上成为两张表。起别名

10.FROM A LEFT JOIN B ON …语句表示在连接结果中不限制_________表数据必须满足连接条件。A

11.对分组后的统计结果再进行筛选使用的子句是_________。HA VING

12.若SELECT语句中同时包含WHERE子句和GROUP子句,则先执行的是_________子句。WHERE

三.简答题

1.在聚合函数中,哪个函数在统计时不考虑NULL。

答:COUNT(*)

2.在LIKE运算符中“%”的作用是什么?

答:匹配0个或多个字符。

3.WHERE Age BETWEEN 20 AND 30子句,查找的Age范围是多少?

答:Age大于等于20并且小于等于30

4.WHERE Sdept NOT IN (‘CS’,’IS’,’MA’),查找的数据是什么?

答:查找‘CS’,’IS’,’MA’三个系之外的其他系

5.自连接与普通内连接的主要区别是什么?

答:自连接中进行连接操作的表在物理上是一张表,而普通内连接进行连接的表在物理上是两张表。

6.外连接与内连接的主要区别是什么?

答:进行外连接的两个表中,可以有一张表不满足连接条件,而进行内连接的两个表必须都满足连接条件。

7.在使用UNION合并多个查询语句的结果时,对各个查询语句的要求是什么?

答:各个查询语句的列个数必须相同,对应列的语义相同,类型兼容。

8.相关子查询与嵌套子查询在执行方面的主要区别是什么?

答:相关子查询的执行过程是先外后内,而嵌套子查询的执行过程是先内后外。而且相关子查询中必须有与外层查询的关联,而嵌套子查询中,内、外层查询之间没有关联关系。

9.执行SELECT … INOT 表名FROM …语句时,对表名的要求是什么?

答:必须是一个不存在的新表名。

10.对统计结果的筛选应该使用哪个子句完成?

答:使用HA VING子句

11.在排序子句中,排序依据列的前后顺序是否重要?ORDER BY C1,C2子句对数据的排

序顺序是什么?

答:重要,系统会按列的先后顺序进行排序。

先按C1列进行排序,在C1列值相同时再按C2列进行排序。

12.TOP 子句的作用是什么?

答:在查询结果产生后,提取结果的前若干行数据。

数据库基础操作语句

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],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 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

用T-SQL语句完成创建和管理数据库操作练习

-创建数据库语句语法: CREATE DATABASES 据库名 [ON [PRIMAR Y] {(NAME^据文件的逻辑名称, FILENAME‘数据文件的路径和文件名’,(要包含文件扩展名)SIZE二数据文件的初始容量,(不能小于Model数据库的初始文件大小) MAXSIZE二数据文件的最大容量, FILEGROWTH数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, FILENAMES务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH事务日志文件的增长量)儿…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT FROM master..sysdatabases WHERE name =' 数据库名')

DROP DATABASE数据库名 GO 修改数据库操作语句: ALTER DATABAS数据库名 {[add file 文件描述][to filegroup 文件组名] 新增数据文件I [add log file 文件描述] 新增日志文件 I [remove file 逻辑文件名]删除数据库文件 I [add filegroup 文件组名]新增文件组 I [remove filegroup 文件组名] 删除文件组 I [modify file 文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXECSp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 据库名 ON PRIMAR Y (FILENAME=') 说明:附加数据库只需指定数据库的主数据文

实验三数据库dml语句操作实验(1)

实验三数据库DML语句操作实验 实验学时:2 一、实验目的: 数据库更新操作是SQL语句的重要组成部分,通过试验,加深学生对数据更新操作基本概念的理解与掌握,学会使用SQL数据操纵语言插入、修改和删除表中记录,体会数据完整性约束的作用,加深对数据完整性约束的理解,从而达到灵活应用的目的。 二、实验内容及要求: 试验所使用的数据库表结构如下: (一 )插入记录(Insert into) 1、单记录插入操作:为每个表设计一组记录(包括满足完整性约束和不满足完整性约束的),用insert命令插入表中,观察命令执行结果。例如: 向dept表插入下面5单条记录 jsj 计算机系 3370001 励志楼 dx 电信系 3370002 励志楼 jsjxy 计算机系 Null Null (不满足系名称唯一约束) null 机电系 3370005 Null(不满足主码非空约束) jsjxy Null ‘a2334’ Null(不满足电话为数字约束) 向class表插入下面3单条记录 班级编号班级名称所在系编号 12计本1班 jsj 13计本1班 jsj 2013软本 13软本1班 jsj 向Student表插入下面5单条记录 01 张三男 17 02 李四男 18 01 王武男 18 02 郑艳女 16 03 刘莉女 18 04张国男 2010JS1 17 05李强男 2010JS1 18 2013JS2108003李刚男 2010JS2 18(学号超长) 03王丽女 2010JS2 18(学号重复) 向Course插入4门课程信息 C001 数据库原理 NULL C002 自动控制原理 3 C003 专业英语 2 C004 数字电路 3 2、多条记录的插入操作

用TSQL语句完成创建与管理数据库操作练习

CREATE DATABASE 数据库名 [ON [PRIMARY] {(NAME= 数据文件的逻辑名称, FILENAME=‘ 数据文件的路径和文件名 ' , (要包含文件扩展名)SIZE= 数据文件的初始容量,(不能小于Model 数据库的初始文件大小) MAXSIZE= 数据文件的最大容量, FILEGROWTH二数据文件的增长量)}[,…n] LOG ON {(NAME= 事务日志文件的逻辑名称, FILENAME=' 事务日志文件的物理名称', SIZE= 事务日志文件的初始容量, MAXSIZE= 事务日志文件的最大容量, FILEGROWTH二事务日志文件的增长量)}[,…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = '数据库名') DROP DATABASE 数据库名 GO

ALTER DATABASE 数据库名 [add file 文件描述] [to filegroup 文件组名] 新增数据文件[add log file 文件描述] 新增日志文件 [remove file 逻辑文件名] 删除数据库文件 [add filegroup 文件组名] 新增文件组 [remove filegroup 文件组名] 删除文件组 [modify file文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (FILENAME= '' ) 说明:附加数据库只需指定数据库的主数据文件。 FOR ATTACH 用存储过程也可以附加数据库: sp_attach_db 数据库名,filename= '' 如果移动过数据库文件,则需要指出所有移动过的文 件。

SQl数据库快速入门必须掌握的四大基本语句

SQl数据库快速入门必须掌握的四大基本语句 做一个系统的后台,基本上都少不了增删改查,作为一个新手入门,我们必须要掌握SQL 四条最基本的数据操作语句:Insert,Select,Update和Delete!下面对这四个语句进行详细的剖析: 熟练掌握SQL是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是真正SQL入门了。 在我们开始之前,先使用CREATE TABLE语句来创建一个表。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。 INSERT语句 用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith 的记录插入到本例的表中,可以使用如下语句: INSERT INTO EMPLOYEES VALUES ('Smith','John','1980-06-10', 'Los Angles',16,45000); 通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。 我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。 如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL 提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。 回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。 同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。 对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。 既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分: INSERT INTO EMPLOYEES VALUES ('Bunyan','Paul','1970-07-04', 'Boston',12,70000); INSERT INTO EMPLOYEES VALUES

数据库操作语句

?例1:查询全体学生的学号与姓名。 SELECT Sno, Sname FROM Student 例2.查询全体学生的姓名、学号、所在系 SELECT Sname, Sno, Sdept FROM Student ?例3.查询全体学生的记录 SELECT Sno,Sname,Ssex, Sage, Sdept FROM Student ?例5.查询全体学生的姓名和出生年份所在系,并在出生年份列前加入一个列,此列的每行数据均为“出生年份”常量值。 SELECT Sname,'出生年份:', 2010-Sage FROM Student 例6.查询选修了课程的学生的学号 SELECT Sno FROM SC ?例7.查询计算机系全体学生的姓名。 SELECT Sname FROM Student WHERE Sdept = '计算机系‘ ?例8.查询年龄在20岁以下的学生的姓名及年龄。 SELECT Sname, Sage FROM Student WHERE Sage < 20 或 SELECT Sname, Sage FROM Student WHERE NOT Sage >= 20 ?例9.查询考试成绩有不及格的学生的学号 SELECT DISTINCT Sno FROM SC WHERE Grade < 60 ?例10.查询年龄在20~23岁之间的学生的姓名、所在系和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 20 AND 23 SELECT Sname, Sdept, Sage FROM Student WHERE Sage >= 20 AND Sage<= 23 ?例11.查询年龄不在20~23之间的学生姓名、所在系和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23 SELECT Sname, Sdept, Sage FROM Student WHERE Sage < 20 or Sage> 23 ?例12.查询2009年6月份出版的全部图书的详细信息。 SELECT * FROM 图书表 WHERE 出版日期BETWEEN '2009/6/1' AND '2009/6/30' ?例13.查询信息系、数学系和计算机系学生的姓名和性别。 SELECT Sname, Ssex FROM Student

SQL数据库语句大全大全(完全整理版)

SQL语句大全--语句功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征 --程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标

数据基本操作语句

添加、删除、修改使用db.Execute(Sql)命令执行操作 基本 查询:select * from Table_Name where 条件; 更新:update Table_Name set 字段='lgh',字段=111 where 条件; 删除:delete from Table_Name where 条件; 增加:insert into Table_Name(字段1,字段2,字段3)value('数据',11 1,333); 模糊查询: 1.单字符匹配(_):select * from Table_Name where 字段 like ‘_bc’; 2.多字符匹配(%):select * from Table_Name where 字段 like ‘%n%’; 消除重复数据: select distinct 字段 from Table_Name ··· 一.数据记录筛选 Sql = "Select Distinct 字段名 From 数据表" Distinct函数,查询数据库存表内不重复的记录 Sql = "Select Count(*) From 数据表 where 字段名1>#18:0:0# and 字段名1< #19:00# " count函数,查询数库表内有多少条记录,“字段名1”是指同一字段 例: set rs=conn.execute("select count(id) as idnum from news") response.write rs("idnum") sql="select * from 数据表 where 字段名 between 值1 and 值2" Sql="select * from 数据表 where 字段名 between #2003-8-10# and #2003-8-12#" 在日期类数值为2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有记录,而不管是几点几分。 select * from tb_name where datetime between #2003-8-10# and #2003-8-12# 字段里面的数据格式为:2003-8-10 19:55:08,通过sql查出2003-8-10至200 3-8-12的所有纪录,而不管是几点几分。 Sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" Sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" 模糊查询 Sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" 查找数据库中前10记录 Sql="select top n * form 数据表 order by newid()"

数据库基本知识和基础sql语句

数据库的发展历程 没有数据库,使用磁盘文件存储数据; 层次结构模型数据库; 网状结构模型数据库; 关系结构模型数据库:使用二维表格来存储数据; 关系-对象模型数据库; 理解数据库 RDBMS = 管理员(manager)+仓库(database) database = N 个table table: 表结构:定义表的列名和列类型! 表记录:一行一行的记录! Mysql 安装目录: bin 目录中都是可执行文件; my.ini 文件是MySQL的配置文件; 相关命令: 启动:net start mysql ; 关闭:net stop mysql ; mysql -u root -p 123 -h localhost ; -u:后面的root 是用户名,这里使用的是超级管理员root ; -p:后面的123 是密码,这是在安装MySQL时就已经指定的密码; 退出:quit 或exit; sql 语句 语法要求 SQL语句可以单行或多行书写,以分号结尾; 可以用空格和缩进来来增强语句的可读性; 关键字不区别大小写,建议使用大写; 分类 DDL(Data Definition Language ):数据定义语言,用来定义数据库对象:库、表、列 等; DML(Data Manipulation Language ):数据操作语言,用来定义数据库记录(数据);基本操作 查看所有数据库名称:SHOW DATABASE;S 切换数据库:USE mydb1,切换到mydb1 数据库; 创建数据库:CREATE DATABASE [IF NOT EXISTS] my;db1 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8 创建表: CREATE TABLE表名(

SQL四种基本数据操作语句

掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。 练掌握SQL是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。 在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDA TE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。 INSERT语句 用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句: INSERT INTO EMPLOYEES V ALUES ('Smith','John','1980-06-10', 'Los Angles',16,45000); 通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。 我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。 如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。 回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。 同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。 对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。

数据操作语言DML

数据操作语言DML 数据操作语言负责关系数据库中的数据的插入、修改、查询和删除操作。数据操作语言包括下面四个语句: ?INSERT ?UPDATE ?SELECT ?DELETE INSERT INSERT语句用来向表中插入新的记录。 在表被创建后,数据将被插入到表中。SQL 用来向 Employee 表中插入数据的命令为: INSERT INTO employee(emp_no, emp_name, emp_dob, emp_doj, basic) VALUES (546,’jack’,'12/02/75','18/09/98',3500,'M023’) 如果数据是按照表中字段顺序插入,第二行命令则为可选。包含字符串的字段将插入单引号之间。如果数据仅要插入到某些字段,则需要指明字段名称。 INSERT INTO employee (emp_no, emp_name, emp_doj) V ALUES (546,’jack’, 18/09/98)

UPDATE 数据库中的某些数据可能需要更新,UPDATE语句用来更新表中的记录。例如,如果基本工资要增加 100 元,则相应的 SQL 命令为:UPDA TE employee SET basic=basic+100; SELECT SELECT语句用来从表中查询满足条件的记录。 一个SQL 查询包括5 个基本部分。这些部分为: 1.SELECT:它包含在查询结果中必须显示的列的列表。如果所有列 都需要被显示,而不必写出所有列的名称,只需使用一个星号(*) 即可。 2.FROM:该部分指明列的源表。这些可以是单个表或多个表。 3.WHERE:这是查询的一个可选部分。该部分指定结果应遵从的限 制。如果一个查询不包含WHERE 子句,所有行都将被选择。例如,如果用户想要显示所有生日在31/07/68 以后的员工,则命令为: SELECT emp_no FROM employee WHERE emp_dob > '31/07/68 ' 4.GROUP BY:这是查询的另一个可选部分。它仅在查询结果 需要基于某个条件进行分组时使用。 5.ORDER BY:这是一个控制由查询显示的行的顺序的可选子句.例

数据操作和控制语言详解

Oracle数据操作和控制语言详解 Oracle数据操作和控制语言详解SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如创建、修改或者删除数据库;DCL用于定义数据库用户的权限;在这篇文章中我将详细讲述这两种语言在Oracle中的使用方法。 DML语言 DML是SQL的一个子集,主要用于修改数据,下表列出了ORACLE支持的DML语句。 语句用途 INSERT向表中添加行 UPDATE更新存储在表中的数据 DELETE删除行 SELECT FOR UPDATE禁止其他用户访问DML语句正在处理的行。 LOCK TABLE禁止其他用户在表中使用DML语句 插入数据 INSERT语句常常用于向表中插入行,行中可以有特殊数据字段,或者可以用子查询从已存在的数据中建立新行。 列目录是可选的,缺省的列的目录是所有的列名,包括comlumn_id,comlumn_id可以在数据字典视图ALL_TAB_COLUMNS,USER_TAB_COLUMNS,或者DBA_TAB_COLUMNS中找到。 插入行的数据的数量和数据类型必须和列的数量和数据类型相匹配。不符合列定义的数据类型将对插入值实行隐式数据转换。NULL字符串将一个NULL值插入适当的列中。关键字NULL常常用于表示将某列定义为NULL值。 下面的两个例子是等价的。 DE INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel',NULL,'94501');DE

或 DE INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel','94501');DE 更新数据 UPDATE命令用于修改表中的数据。 DE UPDATE order_rollup SET(qty,price)=(SELECT SUM(qty),SUM(price)FROM order_lines WHERE customer_id='KOHL' WHERE cust_id='KOHL' AND order_period=TO_DATE('01-Oct-2000')DE 删除数据 DELETE语句用来从表中删除一行或多行数据,该命令包含两个语句: 1、关键字DELETE FROM后跟准备从中删除数据的表名。 2、WHERE后跟删除条件 DE DELETE FROM po_lines WHERE ship_to_state IN('TX','NY','IL') AND order_date td DE 清空表 如果你想删除表中所有数据,清空表,可以考虑使用DDL语言的TRUNCATE语句。TRUNCATE就像没有WHERE子句的DELETE命令一样。TRUNCATE将删除表中所有行。TRUNCATE不是DML语句是DDL语句,他和DELETE右不同的特点。 DE TRUNCATE TABLE(schema)table DROP(REUSE)STORAGE DE STORAGE子串是可选的,缺省是DROP STORAGE。当使用DROP STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数。REUSE STORAGE不会缩短表或者调整NEXT参数。 TRUNCATE和DELETE有以下几点区别

用T-SQL语句完成创建与管理数据库操作练习

·创建数据库语句语法: CREATE DATABASE数据库名 ? [ON [PRIMARY] {(NAME=数据文件得逻辑名称, ‘数据文件得路径与文件名’, (要包含文件扩展名) ?SIZE=数据文件得初始容量,(不能小于Model数据库得初始文件大小) MAXSIZE=数据文件得最大容量, 数据文件得增长量)}[,…n] ?LOG ON ?{(NAME=事务日志文件得逻辑名称, '事务日志文件得物理名称’, ?SIZE=事务日志文件得初始容量, MAXSIZE=事务日志文件得最大容量, ?事务日志文件得增长量)}[,…n]] 判断同名得数据库就是否存在: IF EXISTS (SELECT * FROM master、、sysdatabases WHEREname=’数据库名’) DROP DATABASE 数据库名

GO 修改数据库操作语句: ALTER DATABASE 数据库名 {[addfile 文件描述][to 文件组名]新增数据文件 |[add log file文件描述]新增日志文件 |[remove file逻辑文件名]删除数据库文件 |[add文件组名]新增文件组 |[remove文件组名]删除文件组 |[modify file 文件修改内容描述] 修改数据文件属性} 查瞧数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查瞧数据库有哪些文件及文件属性. 删除数据库 Dropdatabase 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (’')说明:附加数据库只需指定数据库得主数据文件。 FOR ATTACH 如果移动过数据库文件,则需要指出所有移动过得文件。

第4章 数据操作语句

第 4 章数据操作语句 一.选择题 1.当关系R和S进行连接操作时,如果R中的元组不满足连接条件,在连接结果中也会将这些记录保留下来的操作是A A.左外连接B.右外连接 C.内连接D.自连接 2.设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作,错误的是C A.Grade IS NOT NULL B.Grade IS NULL C.Grade = NULL D.NOT (Grade IS NULL) 3.下列聚合函数中,不忽略空值的是D A.SUM(列名) B.MAX(列名) C.A VG(列名) D.COUNT(*) 4.SELECT … INTO …FROM语句的功能是A A.将查询结果插入到一个新表中 B.将查询结果插入到一个已建好的表中 C.合并查询的结果 D.向已存在的表中添加数据 5.下列利用SC表的查询语句中,错误的是B A.SELECT Sno, COUNT(*) FROM SC GROUP BY Sno B.S ELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) > 3 C.SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) > 3 D.SELECT Sno FROM SC GROUP BY Sno 6.现要利用Student表查询年龄最小的学生姓名和年龄。下列实现此功能的查询语句中,正确的是D A.SELECT Sname, MIN(Sage) FROM Student B.S ELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage) C.SELECT TOP 1 Sname, Sage FROM Student D.SELECT TOP 1 Sname, Sage FROM Student ORDER BY Sage 7.设SC表中记录成绩的列为:Grade,类型为int。若在查询成绩时,希望将成绩按‘优’、‘良’、‘中’、‘及格’和‘不及格’形式显示,正确的Case函数是C A.Case Grade When 90~100 THEN '优' When 80~89 THEN '良' When 70~79 THEN '中' When 60~69 THEN '及格' Else '不及格' End B.Case When Grade between 90 and 100 THEN Grade = '优'

数据操纵语言

数据操纵语言 select 基本语句 select…from 举例:select * from emp; select…from…where 举例:select empno,ename,sal from emp where sal>2000; select…from…where order by 举例:select empno,ename,sal from emp where sal>2000 order by sal desc; select…from...where…group by 举例:select deptno,count(*) from emp group by deptno; order by(asc,desc) 单列排序 asc 举例:select empno,ename,sal from emp where sal>2000 order by sal asc;

desc 举例:select empno,ename,sal from emp where sal>2000 order by sal desc; 多列排序 举例:select empno,ename,deptno,sal from emp order by deptno asc,sal desc; order by 后面既可以加原列名,也可以加别名 可以用算数运算符、可以用列别名进行排序 group by 举例:select deptno,count(*) from emp group by deptno; 运算符 算数运算符 + 举例:select empno,ename,sal+1000 from emp where sal<2000; - 举例:select empno,ename,sal-1000 from emp where sal>2000; * 举例:select empno,ename,sal*12 from emp; / 举例:select empno,ename,sal/1000 from emp;

数据库SQL操作语句

(1)数据记录筛选: select * from 数据表where 字段名=字段值order by 字段名[desc] select * from 数据表where 字段名like '%字段值%' order by 字段名[desc] select top 10 * from 数据表where 字段名order by 字段名[desc] select * from 数据表where 字段名in ('值1','值2','值3') select * from 数据表where 字段名between 值1 and 值2 (2) 更新数据记录: update 数据表 set 字段名=字段值 where 条件表达式 update 数据表 set 字段1=值1,字段2=值2 字段n=值n where 条件表达式 (3) 删除数据记录: delete from 数据表 where 条件表达式 delete from 数据表(将数据表所有记录删除) (4) 添加数据记录: insert into 数据表 (字段1,字段2,字段3) values (值1,值2,值3) insert into 目标数据表 select * from 源数据表(把源数据表的记录添加到目标数据表) " response.Write " (5) 数据表的建立和删除: Create TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例: Create TABLE tab01(name varchar(50),datetime default now()) 例 ACCESS表的建立 strsql = "create table tblactiveuser"&_ "(ip varchar(30) not null, "&_ "author_id integer, "&_ "login datetime default now(),"&_ "active datetime default now(), "&_

SQL数据库操作基本语句

SQL数据库操作基本语句: 清空日志: 1.打开查询分析器,输入命令 DUMP TRANSACTION 数据库名 WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所 有任务--收缩数据库--收缩文件--选择日志文件-- 在收缩方式里选择收缩至 XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 替换:update caseinfo_table set casenum=replace(casenum,'1043','1081') 删除:delete form caseinfo_table where casenum='' 数量:Select count(*) as yy form caseinfo_table where casenum='' 查询:select * form troom (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]" sql="select top10*from数据表where字段名orderby字段名[desc]" sql="select*from数据表where字段名in('值1','值2','值3')" sql="select*from数据表where字段名between值 1and值2" (2)更新数据记录: sql="update数据表set字段名=字段值where条件表达式" sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="delete from数据表where条件表达式" sql="delete from数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" sql="insert into目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表) (5)数据记录统计函数: AVG(字段名)得出一个表格栏平均值 COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名)取得一个表格栏最大的值 MIN(字段名)取得一个表格栏最小的值 SUM(字段名)把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名)as别名from数据表where 条件表达式" setrs=conn.excute(sql) 用rs("别名")获取统的计值,其它函数运用同上。 (5)数据表的建立和删除: CREATE TABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) 例:CREATE TABLE tab01 (namevarchar (50), datetimedefaultnow ()) DROP TABLE数据表名称(永久性删除一个数据表) 4.记录集对象的方法: rs.movenext将记录指针从当前的位置向下移一行rs.moveprevious将记录指针从当前的位置向上移一行 rs.movefirst将记录指针移到数据表第一行 rs.movelast将记录指针移到数据表最后一行 rs.absoluteposition=N将记录指针移到数据表第N 行 rs.absolutepage=N将记录指针移到第N页的第一行rs.pagesize=N设置每页为N条记录 rs.pagecount根据pagesize的设置返回总页数 rs.recordcount返回记录总数 rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete删除当前记录,但记录指针不会向下移动rs.addnew添加记录到数据表末端 rs.update更新数据表记录 SQL语句的添加、删除、修改方法 添加、删除、修改使用db.Execute(Sql)命令执行操作 ╔----------------╗ ☆ 数据记录筛选☆ ╚----------------╝ 注意:单双引号的用法可能有误(没有测式) Sql = "Select Distinct 字段名 From 数据表" Distinct函数,查询数据库存表内不重复的记录

相关主题
文本预览
相关文档 最新文档