投票的sql怎么写
1.sql查询,投票的数据库中如何统计票数并排名呢
楼上的语句没有毛病,不过搂主提供了userinfo表,这里如果某个用户没有得票的话,就统计不上了,还是join一把比较好点。另外直接查询的话结果体现不出来名次
select identity(int,1,1) as [名次],a.username as [用户名],count(*) as [票数]
into #temporders
from userinfo a left join votes b
on a.username=b.username
group by a.username
order by [票数] desc
select *
from #temporders
order by [名次]
2.怎样建立投票系统数据库
各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解datamodule4.adoquery2.sql.add('SELECT借书证号,密码FROM[user]WHERE(借书证号=:tt)'); datamodule4.adoquery2.parameters[0].value:=username; datamodule4.adoquery2.open; 在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响。
在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。 在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。
当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为SQL属性设置多条SQL语句。 在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。
在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件(如TDDGridTDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。 在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL方法可以执行其SQL属性中的SQL程序。
Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT,UPDATE,DELETE等命令),例如: Query1.Open(这样会返回一个查询结果集) 如果调用Open方法,而没有查询结果时,会出错。
此时应该调用ExecSQL方法来代替Open方法。如: Query1.ExecSQL(没有返回结果) 当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL语句是否会返回一个查询结果的。
对于这种情况应当用Try…Except模块来设计程序。在Try部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。
例如: Try Query1.Open Except Query1.ExecSQL End 通过Tquery或TADOquery组件可以获得两种类型的数据: u“活动”的数据 这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。 u非活动的数据(只读数据) 用户通过数据浏览部件是不能修改其中的数据。
在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。 本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为: n查询只能涉及到一个单独的表 nSQL语句中不能包含ORDERBY命令 nSQL语句中不能含聚集运算符SUM或AVG n在Select后的字段列表中不能有计算字段 n在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like,>,=, 评论0 0 0。
sql中的作业怎么写
1.数据库作业创建步骤怎么写
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
--你的SQL语句或存储过程
--确定
--"计划"项
--新建计划
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"重复执行"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行
设置方法:
我的电脑--控制面板--管理工具--服务--右键SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定
2.sql server 2008数据库作业步骤怎么写
方法/步骤
在电脑开始菜单中选择“SQL Server Management Studio”双击。在出现的界面中点击“连接”按钮。
在出现的“ Microsoft SQL Server Management Studio”界面中选择“管理”下的“维护计划”右击维护计划,点击“维护计划向导”,
在出现的“SQL Server维护计划向导”界面中点击“下一步”
在出现的界面中把名称和说明写上。然后点击“更改”设顶备份计划
在出现的“作业计划属性”界面中,更改执行时间,也就是多久备份一次。这里该为每天备份。间隔时间更改为“1”更改执行一次时间为0:00:00也就是在每天的0点自动备份数据。
更改好以后,就可以在下面看到“在每天的 0:00:00 执行。将从 2014-5-16 开始使用计划。”然后点击“下一步”按钮
在选择维护任务界面中选择要备份的数据库文件。然后点击下一步。
在选择维护任务顺序中,可以移动要备份的数据库文件的顺序。然后点击“下一步”
在定义“备份数据库完整”界面中,选择数据库后面下拉菜单中的数据库文件。然后点击“确定”按钮
在定义“备份数据库完整”界面里选择备份路径。然后点击“下一步”
在“选择报告选项”界面中设置好“报告文本文件”的路径。然后点击“下一步”
在出现的“完成该向导”界面中会看到设置备份的详细信息。
这样数据库自动备份就成功了。
3.求SQL查询语句的编写
1. 查询全体学生的姓名、学号、性别和出生日期。
select 姓名,学号,性别,出生日期 from 学生信息表
2. 查询考试成绩在65以上(含)的学生学号和成绩。
select 学号,成绩 from 成绩表 where score>=65
3. 查询“07计算机1”和“07计算机2”班的学生的学号和姓名。
select 学号,姓名 from 学生信息表 where 班级 in('07计算机1','07计算机2')
4. 查询既不是**员也不是共青团员的学生的学号和姓名。
这个不知道表结构没发写啊,你这个学生太懒,中国就是你这样的大学生太多才掉价的。大学应该广进严出。
5. 查询姓名为“姚明” 的学生的学号、性别和出生日期。
select 学号,性别,出生日期 from 学生信息表 where 姓名='姚明'
6. 查询姓叶的学生的学号、姓名和班级。
select 学号,姓名,班级 from 学生信息表 where 姓名 like'叶%'
7.查询所有选修课程ID为“004”且成绩在90分(含)以下的学生的学号、课程ID和成绩。
select 学号,课程,成绩 from 成绩表 where 课程ID='004' and score>=90
8. 查询总分在75(含)到85(含)之间的学生的学号和成绩,并按成绩的降序排列,如果成绩相同则再按学号的升序排列。
select 学号,成绩 from 成绩表 where score between 75 and 85 order by score desc,学号 asc
9. 查询学号为'000001'的学生的平均成绩、最高成绩和最低成绩。
select avg(score) as avgscore,max(score) as maxscore,min(score) as minsocre
from 成绩表 where 学号='000001'
10. 查询每门课程的课程ID及其相应的选课人数、每门课程的平均成绩、每门课程成绩的最大值和最小值。
select courseid,count(courseid) as 选课人数,avg(score) as 平均成绩,max(score) as maxscore,min(score) as minsocre
from 成绩表
group by courseid
11. 查询选修了3门以上课程的学生学号和选课门数和平均成绩。
select 学号,count(T1.courseid) as 选课门数,avg(score) as 平均成绩
from 选课表 t1 inner join 成绩表 t2
on t1.courseid=t2.courseid
group by 学号
having count(courseid) >3
12. 创建“成绩表1”,包含的属性为学号、课程ID、成绩,其中各属性的数据类型根据客观世界自己选择。
create table 成绩表1 (学号 int,课程ID int,成绩 float)
13. 向成绩表1添加“姓名”列,其数据类型为text, 30位字符长度。
alter table 成绩表1
add 姓名 varchar(30)
14. 删除成绩表1
drop table 成绩表1
15. 向课程信息表中插入一条数据:课程ID为007,课程名称为运筹学,学分为3,学时为64。
insert into 课程信息表 (课程ID,课程名称,学分,学时)
values('007','运筹学','3','64')
16. 将学号为000014且所选课程ID为004的记录的成绩改为88分。
update 成绩表 set score=88 where 学号='000014' AND 课程ID='004'
17. 将所有选课程ID为004的学生的成绩加3分。
update 成绩表 score=score+3 where 课程ID='004'
怎么写sql脚本
1. 怎么使用别人的SQL脚本
用PL/SQL在oracle下执行多个SQL脚本的方法:
PL/SQL developer----->File------>New---->command window
然后在弹出的窗口里依次执行:SQL> @f:\abc\a.sql;SQL> @f:\abc\b.sql;SQL> @f:\abc\c.sql;
SQL*Plus 中执行多个*.sql脚本文件的方法:
1、在SQL*Plus中执行单个sql脚本文件: SQL>@c:\aaa.sql ;
2、在SQL*Plus中执行多个sql脚本文件: 比如你要执行得2个sql脚本 a.sql 和 b.sql 现在你重新写一个脚本 c.sql 其中得内容如下 @@a.sql @@b.sql 然后把c.sql放在a.sql和 b.sql 得同一个目录中即可,然后在sqlplus下执行:SQL>@c.sql 就可以了。
2. 如何编写一个mysql数据库脚本
导出正式服务器的数据库和测试服务器数据库,并按照指定格式命名。
打开Beyond Compare软件,如图,选择文本比较,进入到文本比较主界面之后 ,如图选择要比较的sql文件,然后,软件会呈现出如图数据库结构的不同之处。
即使在比较出两个数据库的结构不同之后,对于sql语句的小白来说,很难写出升级数据库的升级脚本,下面我们将讲解如何利用mysql workbench来帮你写sql。
首先,在本地数据库创建test和release数据库,创建步骤如图所示。然后,将第二步导出的数据库分别导入到新建的数据库,接下来就可以对release数据库动手了。
下面以增加数据库表的一个字段为例,讲解sql语句的生成。由图中的7个步骤,便可以得到对一个表增加一个字段的sql语句,对表字段的增删改,对表内容的增删改操作,删除表操作类似可得。下面讲如何得到新建一个表的sql语句。
如图,便可得到创建表的语句。
上述的sql语句的集合便是数据库生成脚本,脚本通常是在workbench里面编辑查看和执行的,几个基本按钮的使用如图。
执行完上述sql脚本之后,正式服务器的数据库和测试服务器的数据库结构除了主键自增值,host差异之外,其余内容应全部相同,如果不是,则调整脚本内容,直至两个数据库的结构相同为止。
此时的数据库升级脚本仍为数据库升级暂时脚本,临时脚本需交由项目负责人审核检查之后,按照:工程名+版本+时间+正式+数据库升级脚本.sql保存,并上传svn,用于新版本发布。
怎么写sql语句
1. sql语句怎么写
你可以参照下面的来动态写SQL语句
假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果): 姓名 语文 数学 物理 李四 74 84 94张三 74 83 93create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)insert into tb values('张三' , '语文' , 74)insert into tb values('张三' , '数学' , 83)insert into tb values('张三' , '物理' , 93)insert into tb values('李四' , '语文' , 74)insert into tb values('李四' , '数学' , 84)insert into tb values('李四' , '物理' , 94)go--SQL SERVER 2005 静态SQL的写法
select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b--SQL SERVER 2005 动态SQL。declare @sql varchar(8000)select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程set @sql = '[' + @sql + ']'exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')
2. 怎么写sql 语句
create table nuwTable as select stuName,stuNo,writtenExam,labExam,isPass from oldTable;
你的题目表达的太不清楚了 。
假如要提分 :你update from newTable set isPass=1 where writtenExam+labExam>;分数;
显示总共人数:select count(1) from newTable;
显示通过人数:select count(1) from newTable where isPass=1;
3. SQL语句怎么写
select * from b where b.id not in (select id from a);
select b.* from a,b
minus
select a.t_id from a,b
where a.t_id = b.t_id;
select * from b where not exists (select 1 from a where a.t_id = b.t_id);
以上三种都可以的
4. sql语句 怎么写入数据库
mysql_connect('localhost','root','你的mysql的密码')
mysql_select_db('选择你的数据库')
$sql=“insert into users (name,password,intro)values('$name','$password','$intro')”;*这句还要根据自己的实际来写,这只是例如, 这句是用来创建sql语句的
mysql_query($sql);//这句是执行sql语句的。
希望能加分,因为我已经没有什么分了。
5. 怎么写这样的SQL语句
问题不是出在SQL这里,一般的数据库分页只需传 当前页码数和每页显示记录数就可以。
你可以用程序来解决这个问题:
先SQL全部检索出符合条件的记录数,根据这个记录条数,mod 6 ,则整数为你的总页数,余数则为最后一页记录数。
再加一个If判断,如果用户输入的页码为最大页码,则你显示的数据集需要用两个SQL做一下union all 连接,即
select * from tb where 记录数 在最后一页的
union all
select top N * from tb where 记录数 即第一页的N条记录。 这个N需要根据你的分页记录数来动态获取。
6. 请教个SQL语句怎么写.
下面的几条语句完成向A表插入10000条C=1,D=2,E=3的记录:
DECLARE @C INT,@D INT,@E INT,@COUNT INT
SELECT @C=1,@D=2,@E=3,@COUNT=10000
WHILE @COUNT>0
BEGIN
insert into A表(C,D,E) VALUES(@C,@D,@E)
SET @COUNT=@COUNT-1
END
7. 创建数据库的sql语句怎么写
最简单的语句如下:
USE master
GO
CREATE DATABASE 数据库名
ON
( NAME = prods_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\数据库名.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1 )
GO
8. 这个sql语句怎么写
无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以,当我们在处理下列要求时,会比较麻烦:有表tb, 如下:id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id values------ -----------1 aa,bb2 aaa,bbb,ccc即, group by id, 求 value 的和(字符串相加) 1. 旧的解决方法 -- 1. 创建处理函数CREATE FUNCTION dbo.f_str(@id int)RETURNS varchar(8000)ASBEGIN DECLARE @r varchar(8000) SET @r = '' SELECT @r = @r + ',' + value FROM tb WHERE id=@id RETURN STUFF(@r, 1, 1, '')ENDGO-- 调用函数 SELECt id, values=dbo.f_str(id) FROM tb GROUP BY id -- 2. 新的解决方法 -- 示例数据DECLARE @t TABLE(id int, value varchar(10))INSERT @t SELECT 1, 'aa'UNION ALL SELECT 1, 'bb'UNION ALL SELECT 2, 'aaa'UNION ALL SELECT 2, 'bbb'UNION ALL SELECT 2, 'ccc' -- 查询处理SELECT *FROM( SELECT DISTINCT id FROM @t)AOUTER APPLY( SELECT [values]= STUFF(REPLACE(REPLACE( ( SELECT value FROM @t N WHERE id = A.id FOR XML AUTO ), '
--处理的数据CREATE TABLE tb(col1 varchar(10),col2 int)INSERT tb SELECT 'a',1UNION ALL SELECT 'a',2UNION ALL SELECT 'b',1UNION ALL SELECT 'b',2UNION ALL SELECT 'b',3 --合并处理--定义结果集表变量DECLARE @t TABLE(col1 varchar(10),col2 varchar(100)) --定义游标并进行合并处理DECLARE tb CURSOR LOCALFORSELECT col1,col2 FROM tb ORDER BY col1,col2DECLARE @col1_old varchar(10),@col1 varchar(10),@col2 int,@s varchar(100)OPEN tbFETCH tb INTO @col1,@col2SELECT @col1_old=@col1,@s=''WHILE @@FETCH_STATUS=0BEGIN IF @col1=@col1_old SELECT @s=@s+','+CAST(@col2 as varchar) ELSE BEGIN INSERT @t VALUES(@col1_old,STUFF(@s,1,1,'')) SELECT @s=','+CAST(@col2 as varchar),@col1_old=@col1 END FETCH tb INTO @col1,@col2ENDINSERT @t VALUES(@col1_old,STUFF(@s,1,1,''))CLOSE tbDEALLOCATE tb--显示结果并删除测试数据SELECT * FROM @tDROP TABLE tb/*--结果col1 col2---------- -----------a 1,2b 1,2,3--*/GO /*==============================================*/ --3.3.2 使用用户定义函数,配合SELECT处理完成字符串合并处理的示例--处理的数据CREATE TABLE tb(col1 varchar(10),col2 int)INSERT tb SELECT 'a',1UNION ALL SELECT 'a',2UNION ALL SELECT 'b',1UNION ALL SELECT 'b',2UNION ALL SELECT 'b',3GO --合并处理函数CREATE FUNCTION dbo.f_str(@col1 varchar(10))RETURNS varchar(100)ASBEGIN DECLARE @re varchar(100) SET @re='' SELECT @re=@re+','+CAST(col2 as varchar) FROM tb WHERE col1=@col1 RETURN(STUFF(@re,1,1,''))ENDGO --调用函数SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1--删除测试DROP TABLE tbDROP FUNCTION f_str/*--结果col1 col2---------- -----------a 1,2b 1,2,3--*/GO /*==============================================*/ --3.3.3 使用临时表实现字符串合并处理的示例--处理的数据CREATE TABLE tb(col1 varchar(10),col2 int)。
9. SQL语句该怎么写
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
查询所有同学均及格的课程名
select cname from Course
where NOT EXISTS(
select * from Student
where NOT EXISTS(
select * from SC
where sno=Student.sno
and cno=Course.cno
and score>=60
)
)
查询所有同学均及格的课程的最低成绩、最高成绩和平均成绩:
select cno,min(score),max(score),avg(score) from sc
where con in( select cno from Course
where NOT EXISTS(
select * from Student
where NOT EXISTS(
select * from SC
where sno=Student.sno
and cno=Course.cno
and score>=60
)
)
)
group by con
转载请注明出处育才学习网 » 每个月最后一天怎么写sql
育才学习网