admin 管理员组文章数量: 887053
2024年1月16日发(作者:maven本地仓库怎么安装)
常用数据库连接语句
一:mysql的数据库连接语句
connection con
nection.(jdbc:mysql://localhost:3306/bookinfo,root,123);statement st = statement();
string sql = select * from book;
resultset rs = equery(sql);
while(()){
}
二:sqlserver的数据库连接语句
connection con o,sa,123);
preparedstatement ps = estatement(select * from book); resultset rs
= equery();
while(()){
n(ing(2));
}
三:sqlserver2005的数据库连接语句
connection con =
nection.(jdbc:sqlserver://localhost:1433;databasename=bookinfo,sa,123);
preparedstatement ps = estatement(select * from book);
resultset rs = equery();
= =
nection.(jdbc:microsoft:sqlserver://localhost:1433;databasename=bookinf
while(()){
n(ing(2));
}
四:oracle的数据库连接语句
jdbc:oracle:thin:@<server>[:<1521>]:<database_name>
e(driver);
connection con =
nection.(jdbc:oracle:thin:@localhost:1521:bookinfo,zhangsan,123);
preparedstatement ps = estatement(select * from book);
resultset rs = equery();
while(()){
n(ing(2));
}篇二:sql语句大全+sql数据库连接
sql语句大全
创建数据库
创建之前判断该数据库是否存在
if exists (select * from sysdatabases where name=databasename)drop database
databasename
go
create database database-name
删除数据库
drop database dbname
备份sql server
--- 创建 备份数据的 device
use master
exec sp_addumpdevice disk, testback, c:mssql7backupmynwind_ --- 开始 备份
backup database pubs to testback
创建新表
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 删除新表
drop table tabname
增加一个列
alter table tabname add column col type
注:列增加后将不能删除。db2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
添加主键
alter table tabname add primary key(col)
说明:删除主键: alter table tabname drop primary key(col) 创建索引
create [unique] index idxname on tabname(col„.)
删除索引:drop index idxname on tabname
注:索引是不可更改的,想更改必须删除重新建。
创建视图
create view viewname as select statement
删除视图:drop view viewname
几个简单的基本的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%? (所有包含?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[separator]
几个高级查询运算词
a: union 运算符
union 运算符通过组合其他两个结果表(例如 table1 和 table2)并消去表中任何重复行而派生出一个结果表。当 all 随 union 一起使用时(即 union all),不消除重复行。两种情况下,派生表的每一行不是来自 table1 就是来自 table2。
b: except 运算符
except 运算符通过包括所有在 table1 中但不在 table2 中的行并消除所有重复行而派生出一个结果表。当 all 随 except 一起使用时 (except all),不消除重复行。
c: intersect 运算符
intersect 运算符通过只包括 table1 和 table2 中都有的行并消除所有重复行而派生出一个结果表。当 all 随 intersect 一起使用时 (intersect all),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
使用外连接
a、left outer join:
左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。 sql:
select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c b:right outer
join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
c:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。提升
复制表
(只复制结构,源表名:a 新表名:b) (access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
拷贝表
(拷贝数据,源表名:a 目标表名:b) (access可用)
insert into b(a, b, c) select d,e,f from b;
跨数据库之间表的拷贝
(具体数据使用绝对路径) (access可用)
例子:..from b in &h(.& & where..
子查询
(表名1:a 表名2:b)
select a,b,c from a where a in (select d from b 或者: select a,b,c from a where
a in (1,2,3)
显示文章、提交人和最后回复时间
select ,me,e from table a,(select max(adddate) adddate
from table where =) b
外连接查询
(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c 在线视图查询
(表名1:a
select * from (select a,b,c from a) t where t.a > 1;
between的用法
between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
in 的使用方法
select * from table1 where a [not] in (?值1?,?值2?,?值4?,?值6?)
删除主表中已经在副表中没有的信息
两张关联表delete from table1 where not exists ( select * from table2 where
1=1
四表联查问题
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner
join d on a.a=d.d where .....
日程安排提前五分钟提醒
sql: select * from 日程安排 where datediff(minute,f开始时间,getdate())>5
一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 前10条记录
select top 10 * form table1 where 范围
选择排名
选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where
tb.b=ta.b)
派生结果表
包括所有在 tablea 中但不在 tableb和tablec 中的行并消除所有重复行而派生出一个结果表
(select a from tablea except (select a from tableb) except (select a from tablec)
随机取出10条数据
select top 10 * from tablename order by newid()
随机选择记录
select newid()
删除重复记录
delete from tablename where id not in (select max(id) from tablename group by
col1,col2,...)
列出数据库里所有的表名
select name from sysobjects where type=u
列出表里的所有的
select name from syscolumns where id=object_id(tablename)
列示排列
列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
select type,sum(case vender when a then pcs else 0 end),sum(case vender when c
then pcs else 0 end),sum(case vender when b then pcs else 0 end) from tablename group
by type
显示结果:
type vender pcs
电脑 a 1
电脑 a 1
光盘 b 2
光盘 a 2
手机 b 3
手机 c 3
初始化表table1
truncate table table1
选择从10到15的记录
select top 5 * from (select top 15 * from table order by id asc) table_别名 order
by id desc
数据类型转换
declare @numid int
declare @id varchar(50)
set @numid=2005
set @id=convert(varchar,@numid)
通过上述语句完成数据类型int转换成varchar,其他转换类似,可参看convert函数
技巧
1=1,1=2的使用
在sql语句组合时用的较多
“where 1=1” 是表示选择全部 “where 1=2”全部不选,
如:
if @strwhere !=
begin
set @strsql = select count(*) as total from [ + @tblname + ] where + @strwhere
end
else
begin
set @strsql = select count(*) as total from [ + @tblname + ]
end
我们可以直接写成
set @strsql = select count(*) as total from [ + @tblname + ] where 1=1 安定 +
@strwhere
收缩数据库
--重建索引
dbcc reindex
dbcc indexdefrag
--收缩数据和日志
dbcc shrinkdb
dbcc shrinkfile
压缩数据库
dbcc shrinkdatabase(dbname)
转移数据库给新用户以已存在用户权限
exec sp_change_users_login update_one,newname,oldname
go
检查备份集
restore verifyonly from disk=e:
修复数据库
alter database [dvbbs] set single_user
go
dbcc checkdb(dvbbs,repair_allow_data_loss) with tablock go
alter database [dvbbs] set multi_user
go
日志清除
set nocount on
declare @logicalfilename sysname,
@maxminutes int,
@newsize int
use tablename -- 要操作的数据库名
select @logicalfilename = tablename_log, -- 日志文件名
@maxminutes = 10, -- limit on time allowed to wrap log.篇三: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,
from usertable,citytable
where =
在from子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
例如上面语句可用表的别名格式表示为:
select username,
from usertable a,citytable b
where =
select不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如:
select _fname+_lname
from authors a,titleauthor ta
(select title_id,title
from titles
where ytd_sales>10000
) as t
where _id=_id
and _id=_id
此例中,将select返回的结果集合给予一别名t,然后再从中检索数据。
(三) 使用where子句设置查询条件
where子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
select *
from usertable
where age>20
where子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
范围运算符(表达式值是否在指定的范围):between„and„
not between„and„
列表运算符(判断表达式是否为列表中的指定项):in (项1,项2„„)
not in (项1,项2„„)
模式匹配符(判断值是否与指定的字符通配格式相符):like、not like
空值判断符(判断表达式是否为空):is null、not is null
逻辑运算符(用于多条件的逻辑连接):not、and、or
1、范围运算符例:age between 10 and 30相当于age>=10 and age<=30
2、列表运算符例:country in (germany,china)
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。
可使用以下通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
版权声明:本文标题:SQL连接语句 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705351665h482207.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论