当前位置:文档之家› 常用简单sql语句

常用简单sql语句

常用简单sql语句
常用简单sql语句

update g_goods set goodsname = goodssimname

where LEFT(goodsname,1) = '0'

左边全部变成和右边一样的名字

首先把UG 给装上一星期练习画一套模具(拷贝各类模具5套左右,标准件,以及标准画法的资料)

吧SQL 基础语法全部掌握运用娴熟新电脑买来学会自己制作U盘装系统,实践一次装系统,以及备份和还原系统。

给旧电脑模拟装一个连锁药店服务器掌握连锁模式的软件装法(此为重点)

目标:明年能基本上单独出差做任何事情。

工作计划:2013 9 13 改天主要任务就是学sql server 基本语法至少掌握5个语法的运用】

复习类容:

select * from table1

select distinct 栏位名from 表格名

select 栏位名from 表格名where 条件

select 栏位名from 表格名where 条件(and , or)条件

select 栏位名from 表格名where 栏位名in(值1,值2)

select 栏位名from 表格名where 栏位名between 值1 and 值2

select 栏位名from 表格名where 栏位名like(模式)

select 栏位名from 表格名【where 条件】order by 栏位名desc/asc

select 函数名(栏位名)from 表格名A VG (平均)

select 栏位 1 sum(栏位2) from 表格名where 条件group by 栏位 1 COUNT (计数)

查询函数条件where语句用having替代MAX (最大值)

select 栏位1 sum(栏位2) from 表格名group by 栏位1 having 函数条件MIN (最小值)

如果被SELECT 的只有函数栏,那就不需要GROUP BY 子句。SUM (总合)

SELECT 栏位1 栏位别名1, SUM(栏位2) '栏位别名2'

FROM 表格名

GROUP BY 栏位1

( 三表内连接查询)

select a.栏位1,b.栏位2,c.栏位3 from 表格1 as a inner join 表格2 as b

on a.栏位名=b.栏位名

inner join 表格3 as c on a.栏位名=c.栏位名

两表普通链接:select a.栏位1,a.栏位2,b.栏位1

from 表格a,表格b

where a.栏位=b.栏位

外部链接

select a.栏位1,sum(b.栏位1)

from 表格a full join 表格b

on a.栏位=b.栏位

group by a.栏位1

创建表格create table 表格名

(栏位1,栏位1数据类型,

栏位2,栏位2数据类型

....)

举例:

CREATE TABLE customer

(First_Name char(50) unique not null check(First_Name>0), --------CHECK 限制目前尚未被执行于MySQL 数据库上

Last_Name char(50),

Address char(50),

City char(50),

Country char(25),

Birth_Date date)

主键外键的设置

create table 表格名

(栏位1,primary key,

栏位2,数据类型REFERENCES 另一个表格(另一表格的主键名).....)

添加主键:确认被用来当做主键的栏位是设定为『NOT NULL』alert table 表格名add primary key (主键栏位名)

添加外键:ALTER TABLE 表格名ADD FOREIGN KEY(栏位名) REFERENCES 另一个表格(另一主键栏位名)

create view 视图名as select 栏位名from表格名

create index 索引名on 表格名(栏位名)

添加栏位名:ALTER table 表格名add 新栏位名(数据类型)

删除栏位名:alter table 表格名drop column 删除的栏位名

exec sp_rename '表格名.[栏位名]','新栏位名','column'

2013 9 14 星期六

继续复习熟悉的语法知识

熟悉经常用的全部语法。

删除表格:drop table 表格名

2013 9 15

union语句:SELECT Date FROM Store_Information

UNION

SELECT Date FROM Internet_Sales

union all语句:SELECT Date FROM Store_Information

UNION all

SELECT Date FROM Internet_Sales

显示的结果union取两表之间的合集不显示同一数据只显示一个。union all 也是去两表之间的合集所有的结果都给显示不限制重复。

UNION 是联集,而INTERSECT 是交集。

SELECT Date FROM Store_Information

INTERSECT

SELECT Date FROM Internet_Sales

结果显示两表之间都有的数据

minus 语句:如果第二个SQL 语句所产生的结果并没有存在于第一个SQL 语句所产生的结果内,那这笔资料就被抛弃。

子查询

语法如下:

SELECT "栏位1"

FROM "表格"

WHERE "栏位2" [比较运算素]

(SELECT "栏位1"

FROM "表格"

WHERE [条件])

EXISTS 的语法:

SELECT "栏位1"

FROM "表格1"

WHERE EXISTS

(SELECT *

FROM "表格2"

WHERE [条件])

EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的SQL。若是没有的话,那整个SQL 语句就不会产生任何结果。case语句:

SELECT CASE ("栏位名")

WHEN "条件1" THEN "结果1"

WHEN "条件2" THEN "结果2"

...

[ELSE "结果N"]

END

FROM "表格名"

select goodscode, case goodscode

when '111' then sumqty*1.5

ELSE sumqty

END

"new_maxqty",

*

from g_store_m

2013 9 21 星期6

alter table g_store_c add what char(50) 添加列名

alter table g_store_c drop column names 删除列名

EXEC sp_rename 'g_store_c.[what]','Addr','column' 修改列名称

ALTER TABLE customer ALTER COLUMN Addr char(30) 修改列数据类型DROP TABLE customer 删除customer这个表格名

truncate table woaini 删除woaini 这个表格名的所有类容表格名和列名依然存在

insert into student (性别,姓名,年龄)

values ('男','李欣','21')

insert into student (性别,姓名,年龄)

select '男','李欣',21 union

select '女','李丽',23 union

select '男','周璨',19 union

select '男','朱德',22 union

select '女','秦尼',21 union

select '男','吴悠',19

insert into student (性别,姓名,年龄)

select 性别,姓名,年龄

from 学生信息表

update student

set 姓名='易彬',性别='女'

where 姓名='朱德'and 年龄='22'

delete from student

where 姓名='易彬'

select top 10 percent

* from 学生信息表order by 学号:查询前百分之10的数据按学号排序

select *

into #biao

from 学生信息表创建临时表

select 年龄from student union

select 年龄from 学生信息表:查看student表格和学生信息表合并之后的年龄排名

select 年龄from student union all

select 年龄from 学生信息表:查看student表格和学生信息表合并之后的年龄有多少项(重复的不隐藏)

select 年龄from student intersect

select 年龄from 学生信息表:查看student表格和学生信息表合并之后有哪几种年龄是相同的

select * from student

where 年龄not in (select 年龄from 学生信息表) 查看student表格有的而学生信息表没有的年龄数据

update 表格名set 栏位名=replace(栏位名,“要替换的”,"替换后")

declare @q int set @q=20 :设置一个变量数据类型int 变量值为20

select *from 成绩信息where 课程编码=2 order by 考试编号

compute sum(分数),avg(分数),max(分数),min(分数) by 考试编号:对课程编码=2的考试编号进行一个汇总

:左外连接

select a.栏位,b.栏位

from表格a

left(outer)join表格b

on a.栏位=b.栏位

group by a.栏位

: 右外连接

select a.栏位,b.栏位

from表格a

right(outer)join表格b

on a.栏位=b.栏位

group by a.栏位

: 全连接

select a.栏位,b.栏位

from表格a

full (outer)join表格b

on a.栏位=b.栏位

group by a.栏位

交叉连接

select a.栏位,b.栏位

from表格a

cross join表格b

=select a.栏位,b.栏位

from表格a,,表格b

同一表格使用多表连接语法称为自连接:

select a.班级名,a.班级人数,b.班级名

from班级信息a,班级信息

where a.班级人数=b.班级人数and a.班级编号<>b.班级编号

将多个查询的结果集中到一个结果集中叫做联合查询

select a.课程编号,a.成绩,b.姓名

from chengji a

join学生信息表b

on a.学号=b.学号

where课程编号='110'

union

select'',SUM(成绩),'总计'

from chengji a

join学生信息表b

on a.学号=b.学号where课程编号='110'

union all :(加上all 下面连接的数据和上面合集后重复的不隐藏掉)select a.课程编号,a.成绩,b.姓名

from chengji a

join学生信息表b

on a.学号=b.学号and b.姓名='孙俪'

子查询

select a.课程编号,a.成绩,b.姓名

from chengji a

join学生信息表b

on a.学号=b.学号

where课程编号='110'

and a.成绩<(select avg(成绩)

from chengji a

join学生信息表b

on a.学号=b.学号

where课程编号='110'

)

嵌套子查询

select a.课程编号,a.成绩,b.姓名

from chengji a

join学生信息表b

on a.学号=b.学号

where课程编号='110'

and a.成绩<(select avg(成绩)

from chengji a

join学生信息表b

on a.学号=b.学号

where课程编号in(

select课程编码from课程信息表where课程编码='110') )

常量与变量

declare@name nvarchar(55)

select@name='周瑜'

select@name

declare@str varchar(50)

select@str='姓名:'+姓名+'民族:'+民族from学生信息表where学号='2001'

select@str

.IF...ELSE语句

declare@iii int

select@iii=AVG(成绩)

from chengji

where课程编号='120'

if@iii>90

begin

print'优秀希望再接再厉'

end

else

print'需努力学习'

IF...ELSE语句嵌套

declare@iii int

select@iii=AVG(成绩)

from chengji

where课程编号='100'

if@iii>=60

begin

if@iii<70

print'成绩刚及格需努力'

else if@iii<80

print'成绩中等需努力'

else if@iii<90

print'成绩良好,往更上一层楼' else print'成绩优异希望再接再厉' end

else

print'需努力学习'

case语句示例

select username,uid,职位级别= case dept

when'02'then'董事长'

when'01'then'总经办'

when'14'then'员工'

else'其他职位'

end

from x_user

while循环语句

declare@q int,@w int

set@q=1

set@w=1

while@q<=10

begin

set@w=@w+@q

set@q=@q+1

end

print@w

while语句中试用其他语句declare@q int,@w int,@e int set@q=3

while@q<=100

begin

set@w=2

set@e=1

while@w<=SQRT(@q)

begin

if@q%@w=0

begin

set@e=0

break

end

set@w=@w+1

end

if@e=1 print@q

set@q=@q+1

end

waitfor延迟语句

waitfor delay'00:00:05' exec sp_help

waitfor time'15:21:10' select*from工龄表

select GETDATE() 查询现在时间是多少

goto语句

try catch错误处理语句

begin try

declare@q int

set@q=4/0

select@q

end try

begin catch

select ERROR_LINE()as'错误行数',ERROR_MESSAGE()'错误消息' end catch

数学函数

declare@q float,@w int set@q=13.56789 set@w=100

print ceiling(abs(@q))

declare@q float,@w int

set@q=13.5678

9 set@w=100

print power(@w,3)

print sqrt(@w)

print square(@w)

字符串函数

declare @q1 nvarchar (20),

@q2 nvarchar (20),

@q3 nvarchar (20),

@q4 nvarchar (20),

@q5 nvarchar (20)

set @q1='上海分公司经理'

set @q2='北京分公司经理'

set @q3='天津分公司经理'

set @q4='上海分公司财务经理'

set @q5='天津分公司财务经理'

print patindex('%分公司%经理',@q4)

print charindex('分公司',@q4)

print right(@q4,(len(@q4)-patindex('%分公司%经理',@q4)+1)) print right(@q4,(len(@q4)-charindex('分公司',@q4)+1))

聚合函数

时间和日期函数

print getdate()

print getutcdate()

print year(getdate())

print month(getdate())

print day(getdate())

print datepart(yy,getdate())

print dateadd(yy,4,getdate())

标量值函数

create function adc(@q varchar(10))

returns int

as

begin

declare@w int

select@w=AVG(成绩)from chengji

where课程编号=@q

return@w

end

go

select dbo.adc('110')

SQLServer中进行sql除法运算结果为小数时显示0的解决方案

SELECT field1/field2 FROM TB;

当field1的数值> field2的数值时,除法得出的结果是<1的,即0.xxxxxx

这个时候在DB2的环境下SELECT出来的值是0

解決方法:

先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx

SELECT CAST(field1 AS FLOAT)/field2 FROM TB;

ps.網上搜的資料,寫的是double,但在SQL Server2008中一直報錯,改成FLOAT就沒問題了。

小數點後顯示4位小數。

可以進一步四舍五入,保留两位小数点

SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;

不過因為我要用到百分比,就改成了

SELECT CAST(field1 AS FLOAT)/field2 * 100 FROM TB;

然後再頁面顯示時再加上“%”

如果数据列的值为NULL,将其设置为0,那么sql就要这么写SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;

COALESCE这个函数系统的用法如下:

a. 输入参数为字符类型,且允许为空的,可以使用

COALESCE(inputParameter,”)把NULL转换成”;

b. 输入类型为整型,且允许为空的,可以使用

COALESCE(inputParameter,0),把空转换成0;

c. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL转换成”,然后判断函数返回值是否为”;

d. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。

update g_goods set goodsname=replace(goodsname,'◆',' ')

把带有◆的字符的goodsname栏位名替换成()空格

Delete From

DELETE FROM "表格名"

WHERE {条件}

update table set DBDA='0'+DBDA

2

选择重复,消除重复和选择出序列

有例表:emp

emp_no name age

001Tom 17

002Sun 14

003Tom 15

004Tom 16

要求:

列出所有名字重复的人的记录

(1)最直观的思路:要知道所有名字有重复人资料,首先必须知道哪个名字重复了:

select name from emp group by name having count(*)>1

所有名字重复人的记录是:

select*from emp

where name in(select name from emp group by name having count(*)>1)

(2)稍微再聪明一点,就会想到,如果对每个名字都和原表进行比较,大于2个人名字与这条记录相同的就是合格的,就有

select*from emp where(select count(*) from emp e where https://www.doczj.com/doc/713325947.html,=emp. name) >1

--注意一下这个>1,想下如果是=1,如果是=2 如果是>2 如果e 是另外一张表而且是=0那结果就更好玩了:)

这个过程是在判断工号为001的人的时候先取得001的名字(https://www.doczj.com/doc/713325947.html,)然后和原表的名字进行比较 https://www.doczj.com/doc/713325947.html,

注意e是emp的一个别名。

再稍微想得多一点,就会想到,如果有另外一个名字相同的人工号不与她他相同那么这条记录符合要求:

select*from emp

where exists

(select*from emp e where https://www.doczj.com/doc/713325947.html,=https://www.doczj.com/doc/713325947.html, and e.emp_no<>emp.emp_n o)

此思路的join写法:

select emp.*from emp,emp e

where https://www.doczj.com/doc/713325947.html,=https://www.doczj.com/doc/713325947.html, and emp.emp_no<>e.emp_no

/* 这个语句较规范的join 写法是

select emp.* from emp inner join emp e on https://www.doczj.com/doc/713325947.html,=https://www.doczj.com/doc/713325947.html, and emp.em p_no<>e.emp_no

但个人比较倾向于前一种写法,关键是更清晰*/

b、有例表:emp

name age

Tom 16

Sun 14

Tom 16

Tom 16

----------------------------------------------------清除重复----------------------------------------------------

过滤掉所有多余的重复记录

(1)我们知道distinct、group by可以过滤重复,于是就有最直观的

select distinct*from emp 或select name,age from emp group by name,a ge

获得需要的数据,如果可以使用临时表就有解法:

select distinct*into#tmp from emp

delete from emp

insert into emp select*from#tmp

(2)但是如果不可以使用临时表,那该怎么办?

我们观察到我们没办法区分数据(物理位置不一样,对SQL Server来说没有任何区别),思路自然是想办法把数据区分出来了,既然现在的所有的列都没办法区分数据,唯一的办法就是再加个列让它区分出来,加什么列好?最佳选择是identit y列:

alter table emp add chk int identity(1,1)

表示例:

name age chk

Tom 161

Sun 142

Tom 163

Tom 164

重复记录可以表示为:

select*from emp where(select count(*) from emp e where https://www.doczj.com/doc/713325947.html,=emp. name)>1

要删除的是:

delete from emp

where(select count(*) from emp e where https://www.doczj.com/doc/713325947.html,=https://www.doczj.com/doc/713325947.html, and e.chk>=e mp.chk)>1

再把添加的列删掉,出现结果。

alter table emp drop column chk

(3)另一个思路:

视图

select min(chk) from emp group by name having count(*) >1

获得有重复的记录chk最小的值,于是可以

delete from emp where chk not in(select min(chk) from emp group by na

me)

写成join的形式也可以:

(1)有例表:emp

emp_no name age

001Tom 17

002Sun 14

003Tom 15

004Tom 16

◆要求生成序列号

(1)最简单的方法,根据b问题的解法:

alter table emp add chk int identity(1,1) 或

select*,identity(int,1,1) chk into#tmp from emp

◆如果需要控制顺序怎么办?

select top100000*,identity(int,1,1) chk into#tmp from emp order by age

(2) 假如不可以更改表结构,怎么办?

如果不可以唯一区分每条记录是没有办法的,在可以唯一区分每条记录的时候,可以使用a 中的count的思路解决这个问题

select emp.*,(select count(*) from emp e where e.emp_no<=emp.emp_no) from emp

order by(select count(*) from emp e where e.emp_no<=emp.emp_no)

常用SQL语句大全

常用SQL语句大全 一、基础 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、说明:几个高级查询运算词

SQL Server2000常用语句

SQL Server 2000常用命令,语法使用方法 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (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 SEVER 常用语句

整理了一下,希望对大家有用 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 --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

SQL常用语句与解释

SQL常用语句与解释 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取“字段名=字段值”的所有字段并根据字段名排序【倒序】sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]" //从数据表中读取“字段名中包含字段值”的所有字段并根据字段名排序【倒序】sql="select top10 * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取前10条满足“字段名=字段值”的所有字段并根据字段名排序【倒序】 sql="select * from 数据表where 字段名in('值1','值2','值3')" //从数据表中读取“字段名满足三个值中的一个”的所有字段 (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" //更新数据表中满足条件表达式的记录的字段(更新一条字段)sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" //更新数据表中满足条件表达式的记录的多个字段(更新多条字段) (3)删除数据记录: sql="delete from 数据表where 条件表达式" //删除数据表中满足条件表达式的所有记录 sql="delete from 数据表" //将数据表所有记录删除 (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" //将值1,值2,值3...插入数据表的字段1,字段2,字段3... sql="insert into 目标数据表select * from 源数据表" //把源数据表的记录添加到目标数据表 (5)数据记录统计函数: AVG(字段名)//得出一个表格某个字段的平均值 COUNT(*|字段名)//对数据行数的统计或对某一字段有值的数据行数统计 MAX(字段名)//取得一个表格中某字段的最大值 MIN(字段名)//取得一个表格中某字段的最小值 SUM(字段名)//取得一个表格中某字段的总和 引用以上函数的方法: sql="select sum(字段名) as 别名from 数据表where 条件表达式" //别名是为了引用的需要

SQL常用语句及函数方法

1、通常用到的字符串转日期格式 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

oracle 经典SQL语句大全

一、基础 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

50个常用sql语句实例(学生表 课程表 成绩表 教师表)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)) 前面加一列序号: if exists(select table_name from information_schema.tables where table_name='Temp_Table') drop table Temp_Table go select 排名=identity(int,1,1),* INTO Temp_Table from Student go select * from Temp_Table go drop database [ ] --删除空的没有名字的数据库 问题: 1、查询“”课程比“”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student

50个经典SQL语句

50个经典SQL语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname

from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 60);

最常用的SQL查询语句

最常用的SQL查询语句 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email FROM testtable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变 量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM testtable SELECT TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应 使用下面语句格式加以限定: SELECT username,citytable.cityid FROM usertable,citytable WHERE usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名as 别名 表名别名 例如上面语句可用表的别名格式表示为: SELECT username,b.cityid FROM usertable a,citytable b WHERE a.cityid=b.cityid SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: SELECT a.au_fname+a.au_lname FROM authors a,titleauthor ta

sql常用语句100例

--update phoneinfo set cityname = '克孜勒苏柯尔克孜' where cityname = '克孜勒苏柯尔克孜州' --update phoneinfo set cityname = '湘西' where pad1 = '湖南 吉首' select * from dbo.PhoneInfo --update dbo.PhoneInfo set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo a,PhoneInfo_hl b --where a.phonebound=b.phonebound --select * from dbo.UnknowPhoneBound --select * from dbo.Area --select * from phoneinfo a, phoneinfo_old b, phoneinfo_hl c where a.phonebound = b.phonebound and a.phonebound = c.phonebound and (a.cityname <> b.cityname or a.cityname <> c.cityname) --select * from phoneinfo a, phoneinfo_hl b where a.phonebound = b.phonebound and a.cityname <> b.citynameselect * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname --select * into phoneinfo_bak from phoneinfo --select * from phoneinfo_bak select * from phoneinfo a, phoneinfo_old b where a.phonebound = b.phonebound and a.cityname <> b.cityname --select * from dbo.PhoneInfo_Telecom --update PhoneInfo_Telecom set provincename = '内蒙古' where pad1 = '内蒙兴安盟' update PhoneInfo set cityname = '酒泉' where pad1 = '甘肃 酒泉嘉峪关' --update dbo.PhoneInfo_old set provincename=b.provincename,cityname=b.cityname from dbo.PhoneInfo_old a,PhoneInfo_Telecom b --where a.phonebound=b.phonebound create table client_all as

SQL常用查询语句

SQL基本常用查询语句 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from student; --count 统计 select count(*) from student; select count(sex) from student; select count(distinct sex) from student; --top 取前N条记录 select top 3 * from student; --alias column name 列重命名 select id as 编号, name '名称', sex 性别from student; --alias table name 表重命名 select id, name, s.id, https://www.doczj.com/doc/713325947.html, from student s; --column 列运算 select (age + id) col from student; select https://www.doczj.com/doc/713325947.html, + '-' + https://www.doczj.com/doc/713325947.html, from classes c, student s where s.cid = c.id; --where 条件 select * from student where id = 2;

select * from student where id > 7; select * from student where id < 3; select * from student where id <> 3; select * from student where id >= 3; select * from student where id <= 5; select * from student where id !> 3; select * from student where id !< 5; --and 并且 select * from student where id > 2 and sex = 1; --or 或者 select * from student where id = 2 or sex = 1; --between ... and ... 相当于并且 select * from student where id between 2 and 5; select * from student where id not between 2 and 5; --like 模糊查询 select * from student where name like '%a%'; select * from student where name like '%[a][o]%'; select * from student where name not like '%a%'; select * from student where name like 'ja%'; select * from student where name not like '%[j,n]%'; select * from student where name like '%[j,n,a]%'; select * from student where name like '%[^ja,as,on]%';

sql常用语句

iBATIS常用Sql语句 版本1.0

文档修订记录 版本编号或者更改记录编号*变化 状态 简要说明(变更内容和变更范 围) 日期变更人审核日期审核人 1.0 新建2009-4-17 谷涛 1.1 增加2009-4-28 谷涛*变化状态:A——增加,M——修改,D——删除

(1) 输入参数为单个值 delete from MemberAccessLog where #value# <= accessTimestamp (2) 输入参数为一个对象

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