java,SqlServer学习过程中需懂的几个知识点

重载与重写的区别

1) 重载指创建多个方法,它们有相同的方法名,它们的返回值类型,参数类型和参数个数可以不同,也可以形同;

2) 重写指在继承中,子类对父类的方法重新定义,它们的方法名,返回值类型,参数类型,参数个数必须完全相同,它们的方法体可以不同,例如所有的类都继承自Object,都可以重写它的toString()方法;

怎样删除重复记录(针对一张表)

1)当存在两条完全相同的记录时:

  Selectdistinct * from  表名 where 条件

2)存在部分字段相同的记录且有主键id:

Select * from table where id in ( select max(id)from table group by [去除重复的字段名列表])

当然也可以把max(id)换成min(id),两者取其一,去除重复的

3)存在部分字段相同的记录,没有主键id 时;

Select identity( int 1,1) as id,* into newtable(临时表)fromtable

Select * from newtable where id in ( select max(id)from newtable group by [去除重复的字段名列表、、、])

Drop table newtable

数据库中如何实现分页查询

例子:输出工资最高的前三个员工的所有信息

工资从高到低排序,请输出工资前1~3,4~6名,7~9,10~12,13~15名的员工信息;

1)select top 3 * from emp order bysal desc

 

 

2)select top 3 *

         From emp

         Where emp not in ( select top 3 empno from emp order by sal desc)

3) select top 3 *

         fromemp

         where emp not in (select top 6 empno from emp order by sal desc)

公式:select top m *

              From A

              Where A_id not in( select top(m-1)n empno from emp order by sal desc)

  Sql中什么是约束条件

对一张表中的属性的操作的限制叫做约束

1)主键约束:不允许重复元素,避免了数据的冗余

2)外键约束:通过外键约束从语法上保证本事物所关联的其他事物一定是存在的,事物与事物之间的关系是通过外键来实现的

3)、check 约束:保证事物的取值在合法的范围内

4)Default保证事物的属性一定会有一个值

5)Unique唯一约束:保证事物属性的取值不允许重复,但语序其中有一列且只能有一列为空

流:

四个基本抽象流:

 

     

 

字符流

字节流

输入流

reader

inputstream

输出流

writer

outputstream

方法有:int read(),void close(),long skip(long n )

Void write()

1)inputstream字符流

 

jdbc为什么可以写sql语句

首先明白jdbc是java中的一些特定接口和类的集合,

这些接口可以接受来自数据库中的sql语句就很正常了;

数据库中的一些字符串用单引号圈起来

declare @ table(id int identity(1,1),字段b varchar(30))

如何新增一个mysql用户
增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:mysql>grant select,insert,update,delete on *.* to test1@"%"Identified by "abc";
增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了
增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
mysql>grant select,insert,update,delete onmydb.* to test2@localhost identified by "abc";
或 mysql>grant all privileges on mydb.* to test2@localhost identifiedby "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
mysql>grant select,insert,update,delete onmydb.* to test2@localhost identified by "";
另外,也可以通过直接往user表中插入新纪录的方式来实现

 

 

mysql卸载后,系统残余服务怎么删除

 

添加日期:2012-5-31 1:18:39     【  

 

 

卸载了MYSQL,但重启后还是在任务管理器中看到MYSQL的进程. 
难怪每次重装MYSQL都会暴错 。。。 
请问怎么彻底关闭删除 

  

1. 命令模式下: 
net stop mysql 
mysqld-nt -remove 

2. 删除所有的数据库文件, 删除 WINDOW 目录下的 MY.INI 文件 

3. 进入注册表.删除以下内容: 
A.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除 
B.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除 
C.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除 
D.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001t\Services\MYSQL 目录 
E.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl002\Services\MYSQL 目录 
F.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL 目录 

001.002可能为其它值.. 

总结一句话.WINDOWS目录下的MY.INI是祸害的根源,注册表中的EVENTLOG下的那些目录也是很需要注意的,但没有前者重要! 

  

最后在CMD下 sc delete MySql 即可! 

看看任务管理器里的进程退了没有

静态代码块只会被执行一次

static{}.类被加载的时候只会执行一次

所以注册驱动时应该把他放到代码块中去

注意:在调用executeQurey()这个方法时,要注意参数的使用,

preparesStatement接口使用的方法时无参数的,而其父类Statement使用的参数是有参的

如果preparesStatement接口使用了带参数的executeQurey(sql)方法.则会出现错误,数据库讲无法识别这个sql参数,因为它会把他当做statement的方法来执行






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中调用SQL Server存储过程的步骤如下: 1. 加载数据库驱动程序 在Java程序中,需要先加载SQL Server的JDBC驱动程序,例如: ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 2. 建立数据库连接 使用JDBC驱动程序提供的DriverManager类建立数据库连接,例如: ``` Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=testdb", "sa", "password"); ``` 其中,连接字符串"jdbc:sqlserver://localhost:1433;DatabaseName=testdb"中指定了SQL Server的主机名、端口号和数据库名,"sa"和"password"分别是SQL Server的登录名和密码。 3. 创建CallableStatement对象 使用Connection对象的prepareCall方法创建CallableStatement对象,例如: ``` CallableStatement cstmt = conn.prepareCall("{call my_stored_procedure(?, ?)}"); ``` 其中,"my_stored_procedure"是SQL Server中的存储过程名,"?"是输入参数和输出参数的占位符。 4. 设置输入参数和输出参数 使用CallableStatement对象的set方法设置输入参数和输出参数,例如: ``` cstmt.setString(1, "input_param"); cstmt.registerOutParameter(2, Types.INTEGER); ``` 其中,"input_param"是输入参数的值,2是输出参数的位置,Types.INTEGER是输出参数的数据类型。 5. 执行存储过程 使用CallableStatement对象的execute方法执行存储过程,例如: ``` cstmt.execute(); ``` 6. 获取输出参数的值 使用CallableStatement对象的get方法获取输出参数的值,例如: ``` int output_param = cstmt.getInt(2); ``` 其中,2是输出参数的位置,getInt方法返回输出参数的整数值。 7. 关闭数据库连接和CallableStatement对象 使用Connection对象的close方法关闭数据库连接和CallableStatement对象,例如: ``` cstmt.close(); conn.close(); ``` 完整的Java程序示例: ``` import java.sql.*; public class CallStoredProcedure { public static void main(String[] args) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=testdb", "sa", "password"); CallableStatement cstmt = conn.prepareCall("{call my_stored_procedure(?, ?)}"); cstmt.setString(1, "input_param"); cstmt.registerOutParameter(2, Types.INTEGER); cstmt.execute(); int output_param = cstmt.getInt(2); System.out.println("Output parameter value: " + output_param); cstmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值