ALTER TABLE ABC WITH NOCHECK
ADD CONSTRAINT AARULEDE CHECK (AA in (1,2,3,4,5))
❷ 用SQL语句做题。谢谢啦。。
一(1):SQL>select * from 学生表;
or select 学号,姓名,专业 from 学生表;
(2)SQL>select 姓名 from 学生表 where 学号=’A050040012’;
(3)SELECT TOP 5 * FROM 成绩表
(4)select 学号,姓名,课程号,成绩 from 学生表,成绩表,课程表 where 学生表.学号=成绩表.学号and 课程表.课程号=成绩表.课程号;
(5)select 学号,成绩 from 学生表,成绩表
where 学生表.学号=成绩表.学好 and 课程号=’02’and 成绩>=80;
(6)select学号,成绩 from 成绩表 where 课程号=’03’and 成绩 between 75 and 85; 其他=下 太多了 一时做不来
二(1)INSERT INTO 成绩表 values('A050010012','02','','80');
(2)UPDATE 学生表 SET 班级=’0012’,专业=’计算机应用’
where 姓名 IN
(SELECT 姓名 FROM 学生表
WHERE 姓名=’王玮’);
(3)UPDATE 成绩表 SET 成绩=92
WHERE 姓名 IN
(SELECT 姓名=李丽);
(4)DELETE FROM 成绩表,学生表
WHERE 学号 IN
(SELECT 学号 FROM 学生表,成绩表
WHERE 学生表.学号=成绩表.学号AND 学号=’A050010025’);
(5)CREATE UNQUE INDEX INDEX-1
ON 成绩表(学生表,课程表);
如果还没解决你的问题,可以加我网络HI账号。
❸ SQL的查询语句(解题)
查询
表SEL_TEL
中的字当60%<个人占有概誉
ONE_LIST<80%,70%<总占有誉
COUNT_LIST<90%
的数据
select
*
from
sel_tel
where
(60%<ONE_LIST<80%)and
(70%<COUNT_LIST<90%)
查询
表SEL_TEL
中的
60%<
ONE_LIST<80%,70%<COUNT_LIST<90%
的所有数据
select
*
from
sel_tel
where
(60%<ONE_LIST<80%)or
(70%<COUNT_LIST<90%)
表SEL_TEL
有
3个字
单
用户(NEMR)
个人占有概誉(ONE_LIST),总占有誉(COUNT_LIST),要你查询60%<
ONE_LIST<80%,70%<COUNT_LIST<90%
的所有用户
select
nemr
from
sel_tel
where
(60%<ONE_LIST<80%) or (70%<COUNT_LIST<90%)
不知道
是不是我
对题目有误解,根据字面意思的解答。希望有帮助
❹ SQl简答题,在线等
--一问题1
selectgradeas班级,sum(population)as总人数
fromc_populationgroupbygrade
--一问题2第一列应该是班级把?
selectgradeas班级,
sum(casewhensex='男'thenpopulationend)as男性人口数量,
sum(casewhensex='女'thenpopulationend)as女性人口数量
fromc_populationgroupbygrade
--二
selectA.nameas领导,B.nameas上级领导
onB.id=A.parentId
--三问题1
selectstudentNameas姓名,datediff(YEAR,Birthday,GETDATE())as今年年龄
fromstudent
--三问题2
selectA.studentId,B.studentName,C.Coursename,Grade
onA.studentId=B.studentId
innerjoincourseasC
onA.Courseid=C.Courseid
❺ 简答题:SQL语言的四大功能及特点
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值.
下面的两个例子是等价的.
INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',NULL,'94501');
或
INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',,'94501');
更新数据
UPDATE命令用于修改表中的数据.
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')
删除数据
DELETE语句用来从表中删除一行或多行数据,该命令包含两个语句:
1,关键字DELETE FROM后跟准备从中删除数据的表名.
2,WHERE后跟删除条件
DELETE FROM po_lines
WHERE ship_to_state IN ('TX','NY','IL')
AND order_date
清空表
如果你想删除表中所有数据,清空表,可以考虑使用DDL语言的TRUNCATE语句.TRUNCATE就像没有WHERE子句的DELETE命令一样.TRUNCATE将删除表中所有行.TRUNCATE不是DML语句是DDL语句,他和DELETE右不同的特点.
TRUNCATE TABLE (schema)table DROP(REUSE) STORAGE
STORAGE子串是可选的,缺省是DROP STORAGE.当使用DROP STORAGE时将缩短表和表索引,将表收缩到最小范围,并重新设置NEXT参数.REUSE STORAGE不会缩短表或者调整NEXT参数.
TRUNCATE和DELETE有以下几点区别
1,TRUNCATE在各种表上无论是大的还是小的都非常快.如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销.
2,TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令.
3,TRUNCATE将重新设置高水平线和所有的索引.在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多.
4,TRUNCATE不能触发任何DELETE触发器.
5,不能授予任何人清空他人的表的权限.
6,当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能.
7,不能清空父表.
SELECT FOR UPDATE
select for update语句用于锁定行,阻止其他用户在该行上修改数据.当该行被锁定后其他用户可以用SELECT语句查询该行的数据,但不能修改或锁定该行.
锁定表
LOCK语句常常用于锁定整个表.当表被锁定后,大多数DML语言不能在该表上使用.LOCK语法如下:
LOCK schema table IN lock_mode
其中lock_mode有两个选项:
share 共享方式
exclusive 唯一方式
例:
LOCK TABLE intentory IN EXCLUSIVE MODE
死锁
当两个事务都被锁定,并且互相都在等待另一个被解锁,这种情况称为死锁.
当出现死锁时,ORACLE将检测死锁条件,并返回一个异常.
事务控制
事务控制包括协调对相同数据的多个同步的访问.当一个用户改变了另一个用户正在使用的数据时,oracle使用事务控制谁可以操作数据.
事务
事务表示工作的一个基本单元,是一系列作为一个单元被成功或不成功操作的SQL语句.在SQL和PL/SQL中有很多语句让程序员控制事务.程序员可以:
1,显式开始一个事物,选择语句级一致性或事务级一致性
2,设置撤销回滚点,并回滚到回滚点
3,完成事务永远改变数据或者放弃修改.
❻ 分别用一条SQL语句完成以下题目的操作: 1. 查询年龄为19岁的女同学的学号和姓名
1
selectsno,snamefromswheressex='女'andsage=19
2
selectcname,clocationfromcwhereclocation='主楼'orderbyteacher
3
selectsnofromscwheregrade>=80andcnoin(selectcnofromcwherecname='数据库原理')
4
selects.sno,s.sname,avg(grade)froms,c,scwheres.sno=sc.snoandc.cno=sc.cnogroupbys.sno,s.sname
5
seletefromscwherecnoin((*)<=10)
❼ 一道SQL数据的简答题,请大家帮忙解决。
selectdeptno as 部门号,min(sal) as 最低工资,max(sal) as 最高工资 from emp group bydeptno
selectdname as 部门,ename as 员工,min(sal) as 最低工资,max(sal) as 最高工资 from emp,dept where emp.deptno=dept.deptno andemp.job='CLERK' group bydeptno
selectename as 员工,deptno as 部门号 from emp where deptno in (select deptno
from emp where emp.ename='buddy')select ename as 员工姓名,mgr as 管理者姓名 from emp where mgr<>''
select deptno as 部门号,dname as 部门名,ename as 员工名,job as 工作 from dept,emp where dept.deptno=emp.deptno and emp.job='CLERK'
第4题的where条件另一回答是whereemp<>null ,首先请问楼主emp表中有emp字段吗,其次就算有emp字段,也和null搭不上关系,应该是判断是否为空串,就算是和null搭得上关系,那么字段名和null之间是应该用什么连接的,<>null明显是语法错误,应该是emp is not null才对!明明是mgr字段嘛,我写的应该是对的呀,为什么采纳错误的答案?
❽ sql的简答题 帮忙做下 刚做完了C#的试卷 头都大了……
1.触发器是在对表进行插入、更新或删除操作时自动执行的存储过程.通常用于强制业务规则.有INSERT触发器和DELETE触发器,UPDATE触发器。
3.包含SQL语句的代码,可以直接执行,调用的时候只要使用视图名就好了。
4.存储过程是利用SQL Server所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序和SQL Server数据库间的主要程序式设计界面。
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
5.VarChar比Char长,而且Char类型在值不够时会自动补上空格,VarChar则不会
❾ SQL数据库(简单)简答题
Microsoft SQL Server 2000 简答题及其答案
1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及“仅连接”等安装定义有什么差别?
答:仅客户端工具:仅安装客户端工具。服务器和客户端工具:同时安装服务器和客户端工具。仅连接:仅安装客户端连接。
2.一个数据库中包含哪几种文件?
答:主数据库文件,辅助数据文件,事务日志文件。
3.事务文件和数据文件分开存放有什么好处?
答:因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。
4.什么是批处理?使用批处理有何限制?
答:包含一个或多个T-SQL语句的组,从应用程序将一次性发送到SQL Server执行,SQL Server批处理语句作为整体编译成一个可执行单元。
限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处理程序中,有两条语句。第一条语句用来在一张表中插入一个字段,如在User表中插入员工的出生年月;第二条语句则用来引用这个列,如根据身份证号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创建的出身年月字段。
5.数据检索时,COMPUTE和COMPUTE BY产生的结果有何不同?
答:Compute:第一个为明细行 第二个为聚合函数的合计 Compute by:第一个为明细行第二个为聚合函数的小计
6.什么是索引?索引分为哪两种?各有什么特点?
答:1、数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。 2、聚集索引和非聚集索引。
3、聚集索引的特点:行的物理位置和行在索引中的位置是相同的,每个表只能有一个聚集索引,聚集索引的平均大小大约为表大小的5%左右。
非聚集索引特点:若未指定索引类型,则默认为非聚集索引,叶节点页的次序和表的物理存储次序不同,每个表最多可以有249个非聚集索引,在非聚集索引创建之前创建聚集索引。
7.创建索引有什么优点和缺点?
答:优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。
使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。
缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。
8.什么是视图?使用视图的优点和缺点是什么?
答:视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
优点:1隐蔽数据库的复杂性2控制用户提取数据3简化数据库用户管理 4简化查询
缺点:1性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由,一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也,把它变成一个复杂的结合体,需要花费一定的时间。2修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本,表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的,视图,可能是不可修改的。
9. 修改视图中的数据会受到哪些限制?
答:1、必须有权限 2、单表视图直接改
3、多表可在视图中定义 instead of 触发器.
4、对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据
5、对视图上的某些列不能修改,这些列是:计算列,内置函数列和行集合函数列
6、对具有NOT NULL 的列进行修改时可能会出错。通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL 属性的列有值,可以是默认值,IDENTITY 等,否则不能像视图中插入数据行。
7、如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败
8、删除基表并不删除视图,建议采用与表明显不同的名字命名规则
10. 什么是数据完整性?如果数据库不实施数据完整性会产生什么结果?
答:数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
11.数据完整性有哪几类?如何实施?
答:1、数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。
2、数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。
12. 什么是主键约束?什么是惟一约束?两者有什么区别?
答:主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。
唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。
区别:一个表可以定义多个唯一约束,只能定义一个主键约束;空值得列上可以定义唯一约束,不能定义主键约束。
13.什么是外键,怎样建立外键约束?
答:外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
14.什么是存储过程?使用存储过程有什么好处?
答:1、是存储在服务器上的 Transact-SQL 语句的命名集合,是封装重复性任务的方法,支持用户声明变量、条件执行以及其他强有力的编程特性。
2、存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用
屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象
提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限
改善性能。预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分
减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包
15.什么是触发器?触发器分有什么作用?
答:触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数
作用:1、维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制。
2、通过记录所进行的修改以及谁进行了修改来审计表中的信息。
3、当表被修改的时候,自动给其他需要执行操作的程序发信号。
❿ 求帮做下这道sql语句答题,学渣真的不会,先谢谢了
5.
SELECT b.Cbs.name, avg(a.Dj)
FROM Tushu AS a LEFT JOIN Cbs AS b ON b.ID=a.CbsID
GROUP BY b.id
HAVING avg(a.Dj)<50;
6.
DELETE *
FROM cbs
WHERE cbs.id not in (select cbsid from tushu);
7
有事没时间写了。