Transact_SQL小手册
Transact_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 --描述准备好的查询
---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量
---必须以开头
--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --打印字符串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage108
when job_level = ’2’ then e_wage107
when job_level = ’3’ then e_wage106
else e_wage105
end
--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量x 的值
while @y < 3
begin
select @c = 100@x + @y
print @c --打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select from employee
SELECT
select (列名) from table_name(表名) where column_name operator value
ex:(宿主)
select from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在使用like关键字的where子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stocksex = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查询
--------- 除非能确保内层select只返回一个行的值,
--------- 否则应在外层where子句中用一个in限定符
select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count() from table_name group by stockname
--------- group by 将表按行分组,指定列中有相同的值
having count() = 2 --------- having选定指定的组
最近的下一条记录——没明白。
是最近的记录,还是当前记录的下一条记录。
最近的记录:
select
from
(select
from
表名
order
by
时间字段
desc)
where
rownum=1;
当前记录的下一条记录:
((ResultSet)rs)next();
import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlStatement;
public class JdbcTest {
/
@param args
@throws Exception
/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
JdbcTest jdbcTest=new JdbcTest();
jdbcTestconnect();
}
void connect() throws Exception{
ClassforName("commysqljdbcDriver");//数据库的驱动类名
Connection connection= DriverManagergetConnection //打开连接("jdbc:mysql://localhost:3306/Test","root","123456");//Test是你要连接的数据库,root是用户名,123456是密码
Statement st=connectioncreateStatement(); 创建语句
ResultSet rs= stexecuteQuery("select from user");执行语句,查看user表中的内容
while(rsnext()){//循环遍历
Systemoutprintln(rsgetObject(1)+" :"+rsgetObject(2)+" :"+rsgetObject(3));
}
}
}
迅速的给你写了一个jdbc连接mysql的例子,没有优化,上面有注释的。
1、首先preparedstatement是statement的子接口,属于预处理 *** 作,与直接使用statement不同的是,preparedstatement在 *** 作的时候,先在数据表中准备好了一条sql语句,但是sql语句的值暂时不设置,而是之后设置。
2、在使用statement的时候,要执行一条完整的失去了,在执行钱使用connection直接创建的。
3、如何获得preparedstatement,在connection接口中,通过preparedstatement(String sql)得到。
4、最后在日期输入的时候,正常情况都是使用javautildate表示日期,在 preparedStatement中需要使用javasqldate类型,如下图所示就完成了。
给你一个非缓存分页类的简单例子吧(Page类可以视作javabean):
/
@author Administrator
TODO 要更改此生成的类型注释的模板,请转至
窗口 - 首选项 - Java - 代码样式 - 代码模板
/
import javautil;
public class Pager {
private String PageUrl;
private boolean hasNext;
private boolean hasPrevious;
private String previousPage;
private String nextPage;
private int offset;
private int size;
private int length;
private int pagenumber;
public Pager(int offset,int length, int size, String url){
thisoffset=offset;
thislength=length;
thissize=size;
int index=urlindexOf("&pageroffset");
if (index>-1){
thisPageUrl=urlsubstring(0,index);
}else{
thisPageUrl=url;
}
}
public void setoffset(int offset){
thisoffset=offset;
}
public void setPagerUrl(String PagerUrl){
thisPageUrl=PagerUrl;
}
public void setsize(int size){
thissize=size;
}
public void setlength(int length){
thislength=length;
}
public int getoffset(){
return thisoffset;
}
public String getPageUrl(){
return thisPageUrl;
}
public boolean gethasNext(){
if((offset+1)length>=size){
hasNext=false;
}else{
hasNext=true;
}
return hasNext;
}
public boolean gethasPrevious(){
if(offset>=1){
thishasPrevious=true;
}else{
thishasPrevious=false;
}
return hasPrevious;
}
public String getpreviousPage(){
thispreviousPage="";
if (thisgethasPrevious()){
thispreviousPage=thisPageUrl+"&pageroffset="+(offset-1);
}
return previousPage;
}
public String getnextPage(){
thisnextPage="";
if(thisgethasNext()){
thisnextPage=thisPageUrl+"&pageroffset="+(offset+1);
}
return thisnextPage;
}
public int getpagenumber(){
float temppn=(float)size/(float)length;
pagenumber=new Float(temppn)intValue();
if (temppn>pagenumber){
thispagenumber++;
}
return thispagenumber;
}
public static ArrayList FindPageList(int offset,int length,List list){
ArrayList alist=new ArrayList();
for(int i=offsetlength; i<(offsetlength+length)&&i<listsize();i++){
alistadd(listget(i));
}
return alist;
}
}
具体使用:
1、在servlet初始化这个page
List list=DataUtilgetSpecifiedList();//得到整个数据列表
int offset=0;//便宜量
int length=10;//每页数据记录数
String pageOffset=requestgetParameter("pageroffset");
if(pageOffset==null||pageOffsetequals("")){
offset=0;
}else{
offset=IntegerparseInt(pageOffset);
}
String Url=requestgetRequestURL()toString()+""+requestgetQueryString();
Pager pager=new Pager(offset,length,listsize(),Url);
List RsList=PagerFindPageList(offset,length,list);
requestsetAttribute("Pager",pager);
requestsetAttribute("List",RsList);
RequestDispatcher dispatcher= requestgetRequestDispatcher("/UI/someModule/list_displayjsp");
dispatcherforward(request,response);
2、具体jsp中得到分页结果,并显示,并附页面跳转部分:
页面中得到分页结果
<%
List RpList=(List)requestgetAttribute("List");
Pager pager=(Pager)requestgetAttribute("Pager");
%>
<%--用for循环把RpList显示--%>
<!--页面跳转代码,这只是个形式,简化和改变方式的余地很大-->
<form name="pageForm"><%if(pagergethasPrevious()){%><a href="<%= pagergetpreviousPage()%>">prev</a>
<%}%>
<%if( pagergethasNext()){%><a href="<%=pagergetnextPage()%>">next</a><%}%><%if(pagergetpagenumber()>1) {%>第<select name="pager" onchange="windowlocation='<%=pagergetPageUrl()%>&pageroffset='+documentpageFormpagerselectedIndex;"><%for(int i=0;i<pagergetpagenumber();i++){%><option value=<%=i%> <%if(pagergetoffset()==i){ %>selected<%}%>><%=(i+1)%></option><%}%></select>页<%}%> 共<%=pagergetpagenumber()%>页</form>
ps:1、2两部分可以都放在页面类,不过你好像要MVC,所以给你这个代码。
是否可以解决您的问题?
############################################################
public swap(int x, int y) // 用于整型数据的交换
{
int temp;
temp = x;
x = y;
y = temp;
}
public swap(string x, string y) // 用于字符串类型的交换
{
string temp;
temp = x;
x = y;
y = temp;
}
——————————————————————————————
1 这两个方法都没有返回类型。
2 string应该为String。
############################################################
############################################################
string ptr=0,str, url,file;
——————————————————————————————
1 String
2 Strng ptr是要初始化吗?没仔细看,不明白你的意思。要初始化的话,用ptr = ""
############################################################
后面main方法里面的错误太多了,没法改了,比如好多变量没有定义。而且看得出,你是学过c的,对java了解不多,建议你还是多看看java的语法吧,比如对字符串的 *** 作,完全是c的风格,而不是对java String对象的 *** 作。
还有,建议你不要一次性把程序写完再来排错,尽量写一部分就编译一下。
String content = null;
while(rsnext()) {
content = content + rsgetString("学生姓名") + "\t" + rsgetString("xxxx") + "\t" + rsgetString("xxx") + "\n";
}
textAreasetText(content);
按升序那个,直接在sql里面控制就行了
SELECT FROM ORDER BY 学号 ASC
以上就是关于在JAVA中的SQL语言全部的内容,包括:在JAVA中的SQL语言、java中获取数据库中最近的下一条记录、java连接数据库:已知地址、用户名和密码,怎样看到该用户下的所有数据库和表信息,就像Mysql-front等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)