查看sqlserver資料庫有哪些表可以使用以下sql語句:
select name from sysobjects where xtype='u';
或者select * from sys.tables;
或者SELECT * FROM INFORMATION_SCHEMA.TABLES;
(1)sqlserver常用單詞表擴展閱讀
sqlserver中各個系統表的作用介紹:
sysaltfiles 主資料庫 保存資料庫的文件
syscharsets 主資料庫 字元集與排序順序
sysconfigures 主資料庫 配置選項
syscurconfigs 主資料庫 當前配置選項
sysdatabases 主資料庫 伺服器中的資料庫
syslanguages 主資料庫 語言
syslogins 主資料庫 登陸帳號信息
sysoledbusers 主資料庫 鏈接伺服器登陸信息
❷ SqlServer 英文單詞全字匹配詳解及實現代碼
SqlServer英文單詞全字匹配
環境:Vs2013+Sql
Server2012
問題:現在資料庫記錄如下:
Sentence列保存的是英文的句子,我現在想找出所有包含「I」(單詞)的句子,如果我用
Sentence
like
'%I',作為條件的話,那麼像上圖選中的那條有個單詞「it「(不區分大小寫的情況下),它也會被Select出來,而我只想找出含有「I」這個單詞的句子的記錄。
解決:SqlServer提供了模式匹配,類似於正則,詳細內容查閱相關文檔。
我先寫了一個這樣的條件:
Sentence
like
'%[^a-zA-Z]I[^a-zA-Z]%'
發現上圖里的第一條,也就是「I
would...",「I」開頭的單詞沒有被Select出來,也就是說,這個條件所匹配的是前面要一個非字母的符號(沒有字元是不可以的),那麼同樣道理,最後面也需要一個非字母的符號(沒有字元也是不可以的),所以可改成:
Sentence
like
'%[^a-zA-Z]I[^a-zA-Z]%'
or
Sentence
like
'I[^a-zA-Z]%'
or
Sentence
like
'%[^a-zA-Z]I'
不過感覺這樣比較麻煩,如果把Sentence前後各加一個非字母的數字,像原本「I
would
like
I",把它變成「
I
would
like
I
"(前後各加一個空格),這樣就能匹配最開始寫的那個條件了:
'
'+Sentence+'
'
like
'%[^a-zA-Z]I[^a-zA-Z]%'
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
❸ sqlserver的數據類型
sqlserver的數據類型比較多,常用的包括:
第一大類:整數數據
bit:bit數據類型代表0,1或NULL,就是表示true,false.佔用1byte.
int:以4個位元組來存儲正負數.可存儲范圍為:-2^31至2^31-1.
smallint:以2個位元組來存儲正負數.存儲范圍為:-2^15至2^15-1
tinyint: 是最小的整數類型,僅用1位元組,范圍:0至此^8-1
第二大類:精確數值數據
numeric:表示的數字可以達到38位,存儲數據時所用的位元組數目會隨著使用權用位數的多少變化.
decimal:和numeric差不多
第三大類:近似浮點數值數據
float:用8個位元組來存儲數據.最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數為24,用4個位元組,數字范圍:-3.04E+38至3.04E+38
第四大類:日期時間數據
datatime:表示時間范圍可以表示從1753/1/1至9999/12/31,時間可以表示到3.33/1000秒.使用8個位元組.
smalldatetime:表示時間范圍可以表示從1900/1/1至2079/12/31.使用4個位元組.
第五大類:字元串數據
char:長度是設定的,最短為1位元組,最長為8000個位元組.不足的長度會用空白補上.
varchar:長度也是設定的,最短為1位元組,最長為8000個位元組,尾部的空白會去掉.
text:長寬也是設定的,最長可以存放2G的數據.
第六大類:Unincode字元串數據
nchar:長度是設定的,最短為1位元組,最長為4000個位元組.不足的長度會用空白補上.儲存一個字元需要2個位元組.
nvarchar:長度是設定的,最短為1位元組,最長為4000個位元組.尾部的空白會去掉.儲存一個字元需要2個位元組.
ntext:長度是設定的,最短為1位元組,最長為2G.尾部的空白會去掉,儲存一個字元需要2個位元組.
第七大類:貨幣數據類型
money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個位元組.
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個位元組.
第八大類:標記數據
timestamp:該數據類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp欄位會自動更新.
uniqueidentifier:用於識別資料庫裡面許多個表的唯一一個記錄.
第九大類:二進制碼字元串數據
binary:固定長度的二進制碼字元串欄位,最短為1,最長為8000.
varbinary:與binary差異為數據尾部是00時,varbinary會將其去掉
image:為可變長度的二進制碼字元串,最長2G.
❹ sqlserver常用命令行操作(啟動、停止、暫停)
啟動sql
server
Net
Start
MSSqlServer
暫停sql
server
Net
Pause
MSSqlServer
重新啟動暫停的sql
server
Net
Continue
MSSqlServer
停止sql
server
Net
stop
MSSqlServer
命令行方式修改sql
server
sa
的密碼
一直都是使用企業管理器操作sql的,昨天幫一朋友部署網站,租的國外vps主機,登陸上去只看到sql的圖標正常運行的,企業管理器和查詢分析器的影都沒看到,汗一個。。。空間提供商也不給技術支持,暈了,只有自己想辦法了。
今天網上google一下,終於搞定。
在cmd
窗口下
復制代碼
代碼如下:
C:\Documents
and
Settings\Administrator>osql
-E
1>
sp_password
null,'abc123','sa'
2>
go
Password
changed.
1>
exit
大功告成,sa的密碼修改成了abc123
關鍵是osql這個東東,具體查看
http://msdn.microsoft.com/zh-cn/vstudio/ms162806.aspx
SQL
Server
命令行工具
isql
和
osql
常用命令
命令行操作有時比在圖形界面下用滑鼠還高效,所以高手常用命令行操作,下面簡介SQL
Server
命令行工具
isql
和
osql。
isql
實用工具使您得以輸入
Transact-SQL
語句、系統過程和腳本文件;並且使用
DB-Library
與
SQL
Server
2000
進行通訊。
osql
實用工具使您得以輸入
Transact-SQL
語句、系統過程和腳本文件。該實用工具通過
ODBC
與伺服器通訊。
◆
信任連接:
>isql
-E
或
>osql
-E
◆
察看所有資料庫:
use
master
exec
sp_helpdb
GO
◆
察看資料庫
pubs:
use
master
exec
sp_helpdb
pubs
GO
◆
察看資料庫
pubs
中的對象:
USE
pubs
EXEC
sp_help
GO
相當於
Oracle
的
SELECT
table_name
FROM
user_objects;
◆
察看資料庫
pubs
中的表
employee
結構:
USE
pubs
EXEC
sp_help
employee
GO
相當於
Oracle
的
SQL*PLUS
中的
DESC
employees
◆
SELECT
語句:
USE
pubs
SELECT
*
FROM
employee
GO
◆
當使用單引號分隔一個包括嵌入單引號的字元常量時,用兩個單引號表示嵌入單引號,例如:
SELECT
'O''Leary'
GO
◆
用7.個雙引號表示嵌入雙引號,例如:
SELECT
'O"Leary'
GO
◆
SQL
Server
資料庫信息查詢
use
master
exec
sp_helpdb
pubs
GO
或:
use
master
SELECT
name,
dbid
FROM
sysdatabases
GO
◆
查資料庫對象
(相當於
Oracle
的
SELECT
*
FROM
user_tables;)
USE
pubs
EXEC
sp_help
GO
或
use
master
SELECT
name,
id
FROM
pubs.dbo.sysobjects
WHERE
type='U'
GO
◆
查欄位
(相當於
Oracle
的
SQL*PLUS
中的
DESC
employees
)
USE
pubs
EXEC
sp_help
employee
GO
◆
查看指定
USE
pubs
SELECT
name,
id,
xtype,
length
FROM
syscolumns
WHERE
id=277576027
GO
USE
pubs
SELECT
*
FROM
syscolumns
WHERE
id=277576027
GO
◆
查看數據類型名字的定義:
SELECT
name,
xtype
FROM
systypes
GO
◆
從命令行啟動「查詢分析器」
>isqlw
◆
isql命令
描述
GO
執行最後一個
GO
命令之後輸入的所有語句。
RESET
清除已輸入的所有語句。
ED
調用編輯器。
!!
command
執行操作系統命令。
QUIT
或
EXIT(
)
退出
isql。
CTRL+C
不退出
isql
而結束查詢。
僅當命令終止符
GO(默認)、RESET、ED、!!、EXIT、QUIT
和
CTRL+C
出現在一行的開始(緊跟
isql
提示符)時才可以被識別。isql
忽視同一行中這些關鍵字後輸入的任何內容。
❺ SqlServer常用函數
1、CONVERT()
函數
?
1
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)
規定目標數據類型(帶有可選的長度)。data_to_be_converted
含有需要轉換的值。style
規定日期/時間的輸出格式。
可以使用的
style
值:點擊打開鏈接
2、DATEADD()
函數
點擊打開鏈接
3、CAST()
函數
?
1
2
Syntax
for
CAST:
CAST
(
expression
AS
data_type
[
(
length
)
]
)
expression
任何有效的表達式。
data_type
目標數據類型。
這包括
xml、bigint
和
sql_variant。
不能使用別名數據類型。
length
指定目標數據類型長度的可選整數。
默認值為
30。
CONVERT()
函數與CAST()
函數詳細信息:點擊打開鏈接
❻ SQL注入後能做些什麼
通過SQL注入可以猜到你的表\欄位
如果你的表\欄位使用的是比較常用的單詞(如:admin表,User表,UserName欄位,Password欄位等)是很容易就會被注入軟體猜出來的.
破解出你網站管理員用戶名密碼後,登陸管理後台上傳木馬.(如果你的網站有上傳功能的話)
然後再想辦法運行木馬.(如果是ACCESS資料庫並且後台可備份資料庫的話常用的方法就是將木馬改為JPG或者GIF格式傳上去後備份成ASP格式就可以運行了.)
另外如果你用的SQLSERVER資料庫並且伺服器設置不安全的話有可能會被拿下伺服器控制許可權.
❼ sqlserver的數據字典是指什麼
數據字典用來表示某些數據或者說明某些數據的。資料庫中的字典表是針對整個資料庫庫而言的,表示資料庫表基本信息的,如SqlServer一些字典表。而對一個項目來說,一般都會定義一些常量存儲到一張單獨的表中,用來表示項目中一些常量信息!如項目中的一些下拉選項,這些都是常量,存儲到資料庫中,我們就認為這個表是字典表。簡單來說,資料庫的字典表就是描述資料庫表基本信息的表,我們不需要維護。項目中的字典表通常指那些不可變的可以窮舉出來的常量存儲的表。
❽ sql問題 常用關鍵字誰有啊
1.絕對值
SQL:select abs(-1) value
O:select abs(-1) value from al
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from al
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from al
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from al
5.四捨五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from al 1.2346
6.e為底的冪
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from al 2.71828182
7.取e為底的對數
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from al; 1
8.取10為底對數
S:select log10(10) value 1
O:select log(10,10) value from al; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from al 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from al 2
11.求任意數為底的冪
S:select power(3,4) value 81
O:select power(3,4) value from al 81
12.取隨機數
S:select rand() value
O:select sys.dbms_random.value(0,1) value from al;
13.取符號
S:select sign(-8) value -1
O:select sign(-8) value from al -1
----------數學函數
14.圓周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 參數都以弧度為單位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互換(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------數值間比較
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from al
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from al
20.如何處理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
--------數值間比較
21.求字元序號
S:select ascii('a') value
O:select ascii('a') value from al
22.從序號求字元
S:select char(97) value
O:select chr(97) value from al
23.連接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from al
23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from al
23.模糊子串的位置 --返回2,參數去掉中間%則返回7
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle沒發現,但是instr可以通過第四霾問 刂瞥魷執問?BR> select INSTR('sdsfasdqe','sd',1,2) value from al 返回6
24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from al
25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from al
26.子串全部替換
S:沒發現
O:select Translate('fasdbfasegas','fa','我' ) value from al
27.長度
S:len,datalength
O:length
28.大小寫轉換 lower,upper
29.單詞首字母大寫
S:沒發現
O:select INITCAP('abcd dsaf df') value from al
30.左補空格(LPAD的第一個參數為空格則同space函數)
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from al
31.右補空格(RPAD的第一個參數為空格則同space函數)
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from al
32.刪除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重復字元串
S:select REPLICATE('abcd',2) value
O:沒發現
34.發音相似性比較(這兩個單詞返回值一樣,發音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from al
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
返回0-4,4為同音,1最高
--------------日期函數
35.系統時間
S:select getdate() value
O:select sysdate value from al
36.前後幾日
直接與整數相加減
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from al
select to_char(sysdate,'yyyy-mm-dd') value from al
38.求時間
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from al
39.取日期時間的其他部分
S:DATEPART 和 DATENAME 函數 (第一個參數決定)
O:to_char函數 第二個參數決定
參數---------------------------------下表需要補充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O無效)
dayofyear dy, y (O表星期)
day dd, d (d O無效)
week wk, ww (wk O無效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S無效)
minute mi, n (n O無效)
second ss, s (s O無效)
millisecond ms (O無效)
----------------------------------------------
40.當月最後一天
S:不知道
O:select LAST_DAY(sysdate) value from al
41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字元串轉時間
S:可以直接轉或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.求兩日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用兩個日期相減(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根據差值求新的日期(比如分鍾)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同時區時間
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-----時區參數,北京在東8區應該是Ydt-------
AST ADT 大西洋標准時間
BST BDT 白令海標准時間
CST CDT 中部標准時間
EST EDT 東部標准時間
GMT 格林尼治標准時間
HST HDT 阿拉斯加—夏威夷標准時間
MST MDT 山區標准時間
NST 紐芬蘭標准時間
PST PDT 太平洋標准時間
YST YDT YUKON標准時間
Oracle支持的字元函數和它們的Microsoft SQL Server等價函數:
函數 Oracle Microsoft SQL Server
把字元轉換為ASCII ASCII ASCII
字串連接 CONCAT (expression + expression)
把ASCII轉換為字元 CHR CHAR
返回字元串中的開始字元(左起) INSTR CHARINDEX
把字元轉換為小寫 LOWER LOWER
把字元轉換為大寫 UPPER UPPER
填充字元串的左邊 LPAD N/A
清除開始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字元串中的起始模式(pattern) INSTR PATINDEX
多次重復字元串 RPAD REPLICATE
字元串的語音表示 SOUNDEX SOUNDEX
重復空格的字串 RPAD SPACE
從數字數據轉換為字元數據 TO_CHAR STR
子串 SUBSTR SUBSTRING
替換字元 REPLACE STUFF
將字串中的每個詞首字母大寫 INITCAP N/A
翻譯字元串 TRANSLATE N/A
字元串長度 LENGTH DATELENGTH or LEN
列表中最大的字元串 GREATEST N/A
列表中最小的字元串 LEAST N/A
如果為NULL則轉換字串 NVL ISNULL
日期函數
函數 Oracle Microsoft SQL Server
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
兩個日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
當前日期和時間 SYSDATE GETDATE()
一個月的最後一天 LAST_DAY N/A
時區轉換 NEW_TIME N/A
日期後的第一個周日 NEXT_DAY N/A
代表日期的字元串 TO_CHAR DATENAME
代表日期的整數 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截斷 TRUNC CONVERT
字元串轉換為日期 TO_DATE CONVERT
如果為NULL則轉換日期 NVL ISNULL
轉換函數
函數 Oracle Microsoft SQL Server
數字轉換為字元 TO_CHAR CONVERT
字元轉換為數字 TO_NUMBER CONVERT
日期轉換為字元 TO_CHAR CONVERT
字元轉換為日期 TO_DATE CONVERT
16進制轉換為2進制 HEX_TO_RAW CONVERT
2進制轉換為16進制 RAW_TO_HEX CONVERT
其它行級別的函數
函數 Oracle Microsoft SQL Server
返回第一個非空表達式 DECODE COALESCE
當前序列值 CURRVAL N/A
下一個序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用戶登錄賬號ID數字 UID SUSER_ID
用戶登錄名 USER SUSER_NAME
用戶資料庫ID數字 UID USER_ID
用戶資料庫名 USER USER_NAME
當前用戶 CURRENT_USER CURRENT_USER
用戶環境(audit trail) USERENV N/A
在CONNECT BY子句中的級別 LEVEL N/A
合計函數
函數 Oracle Microsoft SQL Server
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle還有一個有用的函數EXTRACT,提取並且返回日期時間或時間間隔表達式中特定的時間域:
EXTRACT(YEAR FROM 日期)
❾ SQLServer怎麼讀
讀:S - Q - L Server
或讀: /ˈsiːkwəl/ Server
/'si:kwəl/其實是sequel單詞的讀音。
SQL的前身是Structured English QUEry Language,前身以sequel單詞作為的別名(這個巧妙的別名據說當初花了超過兩個工作日的會議才確定下來)。後來衍生出SEQUEL/2,也就是現在的SQL(Structured Query Language)。
(9)sqlserver常用單詞表擴展閱讀:
SQL語句可以用來執行各種各樣的操作,例如更新資料庫中的數據,從資料庫中提取數據等。目前,絕大多數流行的關系型資料庫管理系統,如Oracle,Sybase,Microsoft SQL Server,Access等都採用了SQL語言標准。
雖然很多資料庫都對SQL語句進行了再開發和擴展,但是包括Select,Insert,Update,Delete,Create,以及Drop在內的標準的SQL命令仍然可以被用來完成幾乎所有的資料庫操作。
❿ sqlserver 索引
索引和主鍵有什麼關系:主鍵是唯一且非空欄位,且主鍵本身就是個索引,所以無需對主鍵欄位再建索引
select * from 表名 這樣的語句用不到索引,索引其實類似於書的目錄,你要查的是整個表,所以這目錄就起不到作用
select * from 表名 where 欄位 = 條件 如果這時候這個欄位上有索引,這時一般是會用到索引的,就像你要從一本書中找某個內容,翻目錄找到對應的頁號,直接翻到這頁就可以了
select * from 表名 order by 欄位 如果這個欄位是有索引的,那麼會用這個索引來查找數據,因為按索引查詢會比冒泡類演算法效率高(沒索引的情況下,就是把整表數據取出來,然後用冒泡類演算法排除順序的)
表格設置索引了和沒設置索引查詢的效率會有不同么?:
查詢效率的不同主要就是資料庫系統分析你的sql語句後定出的執行路徑,如果這個執行路徑可以用到你建的索引,那麼基本上效率就會比全表掃描來的快
還是那個舉例,一本書,有目錄頁,你查東西的時候是塊了還是慢了?