⑴ 先安裝了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