⑴ 先安装了sql2005后安装了sql2000 连接不到sql2000中的实例
1. 同机装有SQL2000和SQL2005,其中只能有1个版本使用默认实例。因此,要同时安装2000和2005,应该先安装SQL2000,在实例名设置的时候选择默认实例。完成后,再安装SQL2005,在设置实例名界面选择新实例,并输入名称(例如SQL2005),其他操作安装提示即可。两个都安装完成后,你可以在SQL Server Management Studio中注册这两个数据库服务器,名称一般为(SQL Server和 SQL Server\SQL2005)。
2. SQL2000和SQL2005的连接字符串其实是一样的,不同的是没有使用默认实例的版本,必须写出实例名
连接默认实例:
Data Source=127.0.0.1;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
连接其他实例:
Data Source=127.0.0.1\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
上句中:SQLExpress为实例名。
127.0.0.1为本地服务器,可用.替代,如Data Source=.\SQLExpress;。
参考:
http://..com/question/140957829.html?fr=ala0
http://..com/question/148507128.html?fr=ala2
⑵ sql查找一列数据中数量最多的
看你是查找前2名的数据,所以应该这样写
select top 2 * from 表名
order by sl desc
⑶ 在SQL语句中怎样对varchar型别的列进行数值大小的比较
在SQL语句中怎样对varchar型别的列进行数值大小的比较
在查询里把fl栏位转换成numeric型别,再比较就可以了。
strsql="select fl from mydb where cast(fl as numeric(18,2))>0 and cast(fl as numeric(18,2))<2"
怎么判断一个数值是varchar(32)型别的sql语句
sqlserver中没有函式可以直接判断一个值为vachar型别,但是ISNUMERIC()函式可以判断一个值是否为数字,你可以先判断是否为数字,然后进行转换变成varchar
mysql如何在select语句中对time型别的值进行比较?
SELECT * FROM table WHERE time_to_sec(time)<time_to_sec(ཋ:00:00')
以上为比较方法。
在Oracle系统中,select语句的基本语法格式如下:
select [distinct] [*, column_name [alias], …] from tablename Where {conditions} group by {conditions} having order by expressions} [ASC/DESC];
查询所有列:
select * from table;
查询指定列:select colum1,colum2 from table;
取消重复行:select distinct deptno,job from emp;
使用表示式:可以在查询列中使用表示式来连线字串(使用 || 连线字串)、改变显示格式(如使用函式to_char)、计算显示的资料(如使用+,-,×,/)等。
举例:
select * from emp;
select ename ,sal,deptno from emp;
select deptno from emp;
select distinct deptno from emp;
怎样在资料库中使用sql语句进行型别的转换
字串和整数日期都可以转换的。
1.当栏位型别为:INT;
2.传入的值为:字串型别;
3.WHERE条件中的整型栏位的传入值用单引号或双引号;
上述描述的前提条件下,会对把传入的 值型别 转换为 栏位皮芹定义的资料型别,故WHERE 条件是可以使用到索引的,但从资料库表读出到记忆体块后的游轮值会被 转换为 传入值的资料型别,从而导致ORDER BY无法使用到索引
解释为何ORDER BY ID没有外部排序 或extra的内容为空,那是因为WHERE ID=ƈ' 按主键查询只能查到唯一的一条记录,故不需要排序;
ORDER BY tid 时,WHERE tid=ƈ' 按普通索引去查询的话,能查询到的资料条数会大于1条,加上资料型别隐形转换了,为此需要燃磨毕再额外进行排序和extra部分有内容显示;
SQL语句中怎样比较两个日期的大小?
惯例,在等号左边尽量不要有对栏位的运算,所以一般用法有:
1、判断其是否在某个日期区间:
Where CheckDate Beeen -01-01' And -01-31'
这个方法也可用于加几天是多少,或减几天是多少:
把起迄日期引数化,原CheckDate要加的,那就变成@BeginDate加,减也同理~
2、判断其是否大于某天:
Where CheckDate >-01-01' 或大于等于:Where CheckDate >=-01-01'
小于某天
Where CheckDate <-01-01' 或小于等于:Where CheckDate <=-01-01'
3、判断其是否等于某天:
如果Check栏位不带时间,只是年月日,那直接等于就可以了;
Where CheckDate =-01-01'
如果CheckDate栏位是携带时间的就会有差别;这一点,在上述所有方法中都需要注意
eg:CheckDate 实际储存值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
这时直接用上面的等号是抓不到的,因此或改写成:
Where CheckDate >= -01-01' And CheckDate < -01-02'
当然也可以把-01-01',定义为引数@Date DateTime
Where CheckDate >= @Date And CheckDate < @Date+1
不建议在等号左边使用函式或计算对表栏位进行计算。
以上是两个日期的判断,另外有些日期处理函式可以了解一下:
DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
eg:
Select DateDiff(DAY,',')
1号到5号相差4天,输出结果为4
常用的datepart 有:
datepart 缩写
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 时
minute mi, n 分
second ss, s 秒
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 引数的值必须为整数,而 date 引数的取值必须为有效日期。
eg:
Select DATEADD(DAY,1,')
1号加1天就是2号;输出结果为 ‘2013-01-02’
Number可以是负数就变成减几天
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 引数的值必须为整数,而 date 引数的取值必须为有效日期。
eg:
Select DATEPART(DAY,')
返回datepart描述的部分,输出结果为 1
请教sql语句中,Timestamp型别的资料如何赋值
sqlserver资料库中定义int型别是不需要指定长度的,只有varchar,nvarchar需要指定,boolean是true或者false,date也不需要指定长度,跟int一样,分字首加 *** all,不加,加big,三种情况 你用得什么资料库
sql语句中的timestamp型别
是这样提示的,不能在 timestamp 列中插入非空值。请使用带有列的列表,或 timestamp 列预设值为 NULL 的 INSERT 语句。 加入getdate()没有效果
如何在java里面对Object的型别值进行一个大小的比较
java中 Objiect 类 为所有类的 父类,又称上帝。
java中允许多层继承,这意味着总有一个最高的父类,你是没有手动让他继承其它类的。
而JVM会将所有的未继承其它类的类预设继承了Object类,这表明,只要是类均为Object的子类,换个说法 所有的类都可以使用Object类中的方法,与其他类作比较。只需呼叫方法
equals 即可。注意在这里比较的是地址值。
作者:Tao Li
连结::hu./question/36897771/answer/69763955
来源:知乎
着作权归作者所有。商业转载请联络作者获得授权,非商业转载请注明出处。
java中类的比较一般有两种方法,一种就是类本身实现Comparable<T>这个接口,比如通过对使用者的姓名进行比较排序:
package .ailot.pare;
public class User implements Comparable<User> {
private String name;
private int age;
private String sex;
public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
@Override
public int pareTo(User u) {
TODO Auto-generated method stub
int c = this.name.pareTo(u.name);
if(c==0){
return 0;
}else if(c > 0){
return 1;
}else{
return -1;
}
}
}
Test.java
package .ailot.pare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"张三",i,"男");
userList.add(u);
}
Collections.sort(userList);
for(User user : userList){
System.out.println(user.toString());
}
}
}
排序的话直接用 Collections.sort( userList ) ;就可以了。
作者:Tao Li
连结::hu./question/36897771/answer/69763955
来源:知乎
着作权归作者所有。商业转载请联络作者获得授权,非商业转载请注明出处。
另一种就是类没有实现Comparable<T>这个接口,这就需要自己新建一个比较的类,通过实现Comparator<T>来对类进行比较,还是对User类的姓名进行比较排序:
User.java
package .ailot.pare;
public class User {
private String name;
private int age;
private String sex;
public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
UserCompare.java
package .ailot.pare;
import java.util.Comparator;
public class UserCompare implements Comparator<User> {
@Override
public int pare(User u1, User u2) {
TODO Auto-generated method stub
int c = u1.getName().pareTo(u2.getName());
if(c == 0){
return 0;
}else if(c < 0){
return -1;
}else{
return 1;
}
}
}
Test.java
package .ailot.pare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"张三",i,"男");
userList.add(u);
}
Collections.sort(userList,new UserCompare());
for(User user : userList){
System.out.println(user.toString());
}
}
}
排序的话直接用 Collections.sort(userList,new UserCompare());就可以了。
sql语句中如何进行日期比较?
datediff(d,需要比较的日期,getdate()),datediff返回两个日期之间的时间差,getdate()获取当天系统时间
⑷ 在SQL中如何将多表查询的数据插入到新的表中。
insert into E(T1,T2,T3,T4,Y1,Y2,Y3,Y4,Y5,U1,U2,U3)
select A.T1,A.T2,A.T3,B.Y1,B.Y2,B.Y3,B.Y4,B.Y5,C.U1,C.U2,C.U3 from A,B,C
where A.SuperNo=B.SuperNo and A.SuperNo=C.SuperNo;
⑸ 设计一个winform程序,使其能够读取选择的sql脚本并自动执行脚本
跟读 文本文件一样
读出来 执行就可以了
private List<string> GetTsqlsFormSqlFile(string varFileName)
{
StreamReader sr = new StreamReader(varFileName, Encoding.GetEncoding("GB2312"));
List<string> alSql = new List<string>(); //每读取一条语名存入ArrayList
string commandText = "";
string varLine = "";
while (sr.Peek() > -1)
{
varLine = sr.ReadLine();
if (varLine == "")
{
continue;
}
if (varLine.ToUpper() != "GO")
{
commandText += varLine;
commandText += " ";
}
else
{
alSql.Add(commandText);
commandText = "";
}
}
sr.Close();
return alSql;
}
⑹ 请问如何用SQL语句为指定用户授权
用SQL语句为指定用户授权的具体步骤如下:
我们需要准备的材料分别是:电脑、sqlserver2008
1、首先打开sqlserver2008,之后点击打开左上角的“新建查询”。
⑺ sql中如何用什么语句给用户授权
sql语言用grant语句向用户授予操作权限,grant语句的一般格式为:
grant
<权限>[,<权限>]...
[on
<对象类型>
<对象名>]
to
<用户>[,<用户>]...
[with
grant
option];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。
不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。
表3-4
不同对象类型允许的操作权限
对象
对象类型
操作权限
属性列
table
select,
insert,
update,
delete
all
privieges
视图
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
数据库
database
createtab
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是public即全体用户。
如果指定了with
grant
option子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定with
grant
option子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询student表权限授给用户u1
grant
select
on
table
student
to
u1;
例2
把对student表和course表的全部权限授予用户u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把对表sc的查询权限授予所有用户
grant
select
on
table
sc
to
public;
例4
把查询student表和修改学生学号的权限授给用户u4
详细信息…
这里实际上要授予u4用户的是对基本表student的select权限和对属性列sno的update权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的sql语句为:
grant
update(sno),
select
on
table
student
to
u4;
例5
把对表sc的insert权限授予u5用户,并允许他再将此权限授予其他用户
grant
insert
on
table
sc
to
u5
with
grant
option;
详细信息…
执行此sql语句后,u5不仅拥有了对表sc的insert权限,还可以传播此权限,即由u5用户发上述grant命令给其他用户。
例如u5可以将此权限授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同样,u6还可以将此权限授予u7:
grant
insert
on
table
sc
to
u7;
因为u6未给u7传播的权限,因此u7不能再传播此权限。
例6
dba把在数据库s_c中建立表的权限授予用户u8
grant
createtab
on
database
s_c
to
u8;
⑻ SQL查询的时候有多个满足的条件我只想返回第一个结果就行,该怎么改
用 top 1来返回一行,
用
datediff(day,t1.FcheckDate, getdate())as 账龄 来进行日期相减
Select top 1 u2.fnumber as 仓库代码,u2.FName as 仓库名称,ti.fnumber as 物料代码 ,ti.FName as 物料名称 ,ti.FModel as 型号,u1.FBatchNo as 批号,
tm.FName as 基本单位,cast(u1.FQty as numeric(18,0)) as 基本单位数量,convert(nvarchar,t1.FDate,111) as 制单日期,
convert(nvarchar,t1.FcheckDate,111) as 入库日期,
datediff(day,t1.FcheckDate, getdate())as 账龄
from icinventory u1,t_ICItem ti,t_MeasureUnit tm,t_Stock u2,ICStockBill t1,ICStockBillentry t2
where tm.FItemID=ti.funitid and t1.FInterID=t2.FInterID and u1.FStockID=u2.FItemID and u1.FItemID=ti.FItemID
and u1.FQty>0
and u1.FBatchNo is not null
and u1.FBatchNo<>''and u1.FBatchNo<> 'KB' and u1.FBatchNo<> '*'
and t1.FTranType=2
and t2.FBatchNo=u1.FBatchNo
and getdate()-convert(nvarchar,t1.FcheckDate,111)>15