A. plsql 命令窗口怎麼執行文件
1、首先在電腦中,找到並登錄PLSQL,如下圖所示。
B. 讀取sql文件並寫入到資料庫,用SQL語句。
mysql導入導出常用命令
用mysql資料庫最常用的功能便是導入導出了,當然用工具比較方便,不過,用命令你也是應該了解的。
以下實例在windows下的。
一、備份資料庫:(命令在DOS的mysql\bin目錄下執行,linux下當然不用到指定目錄了)
mysqlmp --opt school>school.bbb
注釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
1.導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u root -p aikersql> aiker.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u aiker -p aikersql users> aiker_users.sql
3.導出一個資料庫結構
mysqlmp -u root -p -d --add-drop-table
aikersql>d:\aiker_db.sql
-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table
二.導入資料庫
常用source 命令
進入mysql資料庫控制台,如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:\aiker_db.sql
也可以用 mysql -uroot -Ddb1 <d:\aiker_db.sql
C. 簡道雲如何讀取本地sql資料庫的數據
步驟如下;
1、導入.sql文件命令:mysql>USE資料庫名;mysql>sourced:/mysql.sql;
2、建立資料庫:mysql>CREATEDATABASE庫名;
3、建立數據表:mysql>USE庫名;mysql>CREATETABLE表名(欄位名VARCHAR(20),欄位名CHAR(1));
4、刪除資料庫:mysql>DROPDATABASE庫名;
5、刪除數據表:mysql>DROPTABLE表名;
6、將表中記錄清空:mysql>DELETEFROM表名;
7、往表中插入記錄:mysql>INSERTINTO表名VALUES("hyq","M");
8、更新表中數據:mysql->UPDATE表名SET欄位名1='a',欄位名2='b'WHERE欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql>loaddatalocalinfile"d:/mysql.txt"intotable表名.
D. 如何用sql語句將一個文件夾下的所有txt文件導入到資料庫中急!在線等
使用場景:
比如將
C:\Test\
目錄下的所有
txt文件內容
導入到
Table_1
中
--定義臨時表,用於存放獲取的文件名稱
CREATE
TABLE
#files
(name
varchar(200)
NULL,
sql
varchar(7000)
NULL)
--獲取文件名稱,存放在#files
INSERT
#files(name)
exec
master..xp_cmdshell
'dir
c:\test
/b'
--刪除不要的文件名稱
DELETE
#files
WHERE
coalesce(name,
'')
NOT
LIKE
'Code%'
--插入需要
導入文件內容的
命令SQL,需要修改
Table_1(改為導入的Table)和文件路徑
UPDATE
#files
SET
sql
=
'BULK
INSERT
Table_1
FROM
'''
+
'C:\Test\'+name
+
'''
WITH
('
+
'DATAFILETYPE
=
''char'',
FIELDTERMINATOR
=
''\t'',
'
+
'ROWTERMINATOR
=
''\n'')'
--開始執行導入
DECLARE
@sql
varchar(8000)
DECLARE
cur
CURSOR
STATIC
LOCAL
FOR
SELECT
sql
FROM
#files
OPEN
cur
WHILE
1
=
1
BEGIN
FETCH
cur
INTO
@sql
IF
@@fetch_status
<>
0
BREAK
EXEC(@sql)
END
DEALLOCATE
cur
主要分為讀取文件夾下所有文件和導入文件內容兩部分
--讀取文件夾下所有文件
declare
@files
table
(ID
int
IDENTITY,
FileName
varchar(100))
insert
into
@files
execute
xp_cmdshell
'dir
c:\test
/b'
select
'c:\'+
[FileName]
AS
FILEPATH
INTO
#temp
from
@files
SELECT
*
FROM
#temp
--導入文件內容
BULK
INSERT
dbo.Table_1
FROM
#temp
WITH
(
ROWTERMINATOR
='\n'
)
還需要開啟
/*****
Step
1
開啟
xp_cmdshell
Use
Master
GO
EXEC
master.dbo.sp_configure
'show
advanced
options',
1
RECONFIGURE
WITH
OVERRIDE
GO
EXEC
master.dbo.sp_configure
'xp_cmdshell',
1
RECONFIGURE
WITH
OVERRIDE
GO
*******/
參考:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/47c8edc1-8cad-4a24-a09a-3fc0c943325c/bulk-insert-multiple-files-tsql
E. linux系統如何查看.sql文件內容
第一種方法:
在命令行下(未連接資料庫),輸入 mysql -h localhost -u root -p123456 < F:hello world
iuzi.sql (注意路徑不用加引號的!!) 回車即可.
第二種方法:
在命令行下(已連接資料庫,此時的提示符為 mysql> ),輸入 source F:hello world
iuzi.sql (注意路徑不用加引號的)
或者 . F:hello world
iuzi.sql (注意路徑不用加引號的) 回車即可.Linux命令了解下,如下圖:
F. SQL讀取txt內容
SQL Server 裡面有一個命令可以直接將文本文件導入到資料庫中
可以設置分割的字元
如下:
BULK INSERT
以用戶指定的格式復制一個數據文件至資料庫表或視圖中。
語法
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }
[ WITH
(
[ BATCHSIZE [ = batch_size ] ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ]
[ [ , ] DATAFILETYPE [ =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] ]
[ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ]
[ [ , ] FIRSTROW [ = first_row ] ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ]
[ [ , ] LASTROW [ = last_row ] ]
[ [ , ] MAXERRORS [ = max_errors ] ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH [ = rows_per_batch ] ]
[ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ]
[ , [ TABLOCK ] ]
)
]
參數
'database_name'
是包含指定表或視圖的資料庫的名稱。如果未指定,則系統默認為當前資料庫。
'owner'
是表或視圖所有者的名稱。當執行大容量復制操作的用戶擁有指定的表或視圖時,owner 是可選項。如果沒有指定 owner 並且執行大容量復制操作的用戶不擁有指定的表或視圖,則 Microsoft® SQL Server™ 將返回錯誤信息並取消大容量復制操作。
'table_name'
是大容量復制數據於其中的表或視圖的名稱。只能使用那些所有的列引用相同基表所在的視圖。有關向視圖中復制數據的限制的更多信息,請參見 INSERT。
'data_file'
是數據文件的完整路徑,該數據文件包含要復制到指定表或視圖的數據。BULK INSERT 從磁碟復制數據(包括網路、軟盤、硬碟等)。
data_file 必須從運行 SQL Server 的伺服器指定有效路徑。如果 data_file 是遠程文件,則請指定通用命名規則 (UNC) 名稱。
BATCHSIZE [ = batch_size ]
指定批處理中的行數。每個批處理作為一個事務復制至伺服器。SQL Server提交或回滾(在失敗時)每個批處理的事務。默認情況下,指定數據文件中的所有數據是一個批處理。
CHECK_CONSTRAINTS
指定在大容量復制操作中檢查 table_name 的任何約束。默認情況下,將會忽略約束。
CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ]
指定該數據文件中數據的代碼頁。僅當數據含有字元值大於 127 或小於 32 的 char、varchar 或 text 列時,CODEPAGE 才是適用的。
CODEPAGE 值 描述
ACP char、varchar 或 text 數據類型的列從 ANSI/Microsoft Windows® 代碼頁 ISO 1252 轉換為 SQL Server 代碼頁。
OEM(默認值) char、varchar 或 text 數據類型的列被從系統 OEM 代碼頁轉換為 SQL Server 代碼頁。
RAW 並不進行從一個代碼頁到另一個代碼頁的轉換;這是最快的選項。
code_page 特定的代碼頁號碼,例如 850。
DATAFILETYPE [ = {'char' | 'native' | 'widechar' | 'widenative' } ]
指定 BULK INSERT 使用指定的默認值執行復制操作。
DATAFILETYPE 值 描述
char(默認值) 從含有字元數據的數據文件執行大容量復制操作。
native 使用 native(資料庫)數據類型執行大容量復制操作。要裝載的數據文件由大容量復制數據創建,該復制是用 bcp 實用工具從 SQL Server 進行的。
widechar 從含有 Unicode 字元的數據文件中執行大容量復制操作。
widenative 執行與 native 相同的大容量復制操作,不同之處是 char、varchar 和 text 列在數據文件中存儲為 Unicode。要裝載的數據文件由大容量復制數據創建,該復制是用 bcp 實用工具從 SQL Server 進行的。該選項是對 widechar 選項的一個更高性能的替代,並且它用於使用數據文件從一個運行 SQL Server 的計算機向另一個計算機傳送數據。當傳送含有 ANSI 擴展字元的數據時,使用該選項以便利用 native 模式的性能。
FIELDTERMINATOR [ = 'field_terminator' ]
指定用於 char 和 widechar 數據文件的欄位終止符。默認的欄位終止符是 /t(製表符)。
FIRSTROW [ = first_row ]
指定要復制的第一行的行號。默認值是 1,表示在指定數據文件的第一行。
FIRE_TRIGGERS
指定目的表中定義的任何插入觸發器將在大容量復制操作過程中執行。如果沒有指定 FIRE_TRIGGERS,將不執行任何插入觸發器。
FORMATFILE [ = 'format_file_path' ]
指定一個格式文件的完整路徑。格式文件描述了含有存儲響應的數據文件,這些存儲響應是使用 bcp 實用工具在相同的表或視圖中創建的。格式文件應該用於以下情況:
數據文件含有比表或視圖更多或更少的列。
列使用不同的順序。
列分割符發生變化。
數據格式有其它的改變。通常,格式文件通過 bcp 實用工具創建並且根據需要用文本編輯器修改。有關更多信息,請參見 bcp 實用工具。
KEEPIDENTITY
指定標識列的值存在於導入文件中。如果沒有指定 KEEPIDENTITY,在導入的數據文件中此列的標識值將被忽略,並且 SQL Server 將根據表創建時指定的種子值和增量值自動賦給一個唯一的值。假如數據文件不含該表或視圖中的標識列,使用一個格式文件來指定在導入數據時,表或視圖中的標識列應被忽略;SQL Server 自動為此列賦予唯一的值。有關詳細信息,請參見 DBCC CHECKIDENT。
KEEPNULLS
指定在大容量復制操作中空列應保留一個空值,而不是對插入的列賦予默認值。
KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]
指定每個批處理中數據的近似千位元組數(KB)。默認情況下,KILOBYTES_PER_BATCH 未知。
LASTROW [ = last_row ]
指定要復制的最後一行的行號。默認值是 0,表示指定數據文件中的最後一行。
MAXERRORS [ = max_errors ]
指定在大容量復制操作取消之前可能產生的錯誤的最大數目。不能被大容量復制操作導入的每一行將被忽略並且被計為一次錯誤。如果沒有指定 max_errors,默認值為 0。
ORDER ( { column [ ASC | DESC ] } [ ,...n ] )
指定數據文件中的數據如何排序。如果裝載的數據根據表中的聚集索引進行排序,則可以提高大容量復制操作的性能。如果數據文件基於不同的順序排序,或表中沒有聚集索引,ORDER 子句將被忽略。給出的列名必須是目的表中有效的列。默認情況下,大容量插入操作假設數據文件未排序。
n
是表示可以指定多列的佔位符。
ROWS_PER_BATCH [ = rows_per_batch ]
指定每一批處理數據的行數(即 rows_per_bacth)。當沒有指定 BATCHSIZE 時使用,導致整個數據文件作為單個事務發送給伺服器。伺服器根據 rows_per_batch 優化大容量裝載。默認情況下,ROWS_PER_BATCH 未知。
ROWTERMINATOR [ = 'row_terminator' ]
指定對於 char 和 widechar 數據文件要使用的行終止符。默認值是 /n(換行符)。
TABLOCK
指定對於大容量復制操作期間獲取一個表級鎖。如果表沒有索引並且指定了 TABLOCK,則該表可以同時由多個客戶端裝載。默認情況下,鎖定行為是由表選項 table lock on bulk load 決定的。只在大容量復制操作期間控制鎖會減少表上的鎖爭奪,極大地提高性能。
注釋
BULK INSERT 語句能在用戶定義事務中執行。對於一個用 BULK INSERT 語句和 BATCHSIZE 子句將數據裝載到使用多個批處理的表或視圖中的用戶定義事務來說,回滾它將回滾所有發送給 SQL Server 的批處理。
許可權
只有 sysadmin 和 bulkadmin 固定伺服器角色成員才能執行 BULK INSERT。
示例
本例從指定的數據文件中導入訂單詳細信息,該文件使用豎杠 (|) 字元作為欄位終止符,使用 |/n 作為行終止符。
BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:/orders/lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|/n'
)
本例指定 FIRE_TRIGGERS 參數。
BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:/orders/lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = ':/n',
FIRE_TRIGGERS
G. 讓SQL自動讀取TXT數據,並處理
1、打開企業管理器,在「數據轉換服務」上點右鍵
2、選擇「所有任務」--「導入數據」,點「下一步」
3、數據源選擇文本文件,文件名選擇你要導入的TXT文件,點下一步
4、選擇「帶分隔符。各列之間可用任何字元分割」,點下一步
5、選擇分隔符,點下一步
6、選擇目的表,點下一步
7、選擇「保存DTS包」,點下一步
8、保存
1、打開企業管理器,管理,作業,新建作業
2、常規選項卡
3、步驟選項卡,類型選擇操作系統命令,命令里填寫:
DTSRun /S /E /N "新建包"
4、調度選項卡,選擇調度周期
H. 如何用sql 語句獲取磁碟上指定文件夾下的所有文件,並把檢索到的文件轉移到另一個文件夾下
檢索文件夾裡面的文件和文件夾,不包含自文件夾里的內容:master..xp_dirtree 'c:/',1,1
如果說要復制或者轉移,可能要用cmd命令,在SQL中執行,如:
exec master..xp_cmdshell @cmd
其中@cmd就是你的cmd命令,你可以在這里寫一個FileCopy的命令代碼,
比如
set @cmd='x c:\windows\myfolder d:\file /e'
exec master..xp_cmdshell @cmd
更多的cmd命令,你再查吧
I. 如何用 sql 命令讀取文件
以下是orcale的方法,其他資料庫也類似。
1.寫控制文件格式如下(下面是我自己的,你把表名該成你自己的表,欄位該成你的欄位就可以了):
OPTIONS
(skip=0,rows=128)
load
data
INFILE
"user_user_test.txt"
into
table
USER_USER_TEST
truncate
fields
terminated
by
','
optionally
enclosed
by
'"'
(
USERID,
CITYID,
USERNAME,
PWD,
CREATETIME
)
2.把控制文件和數據文件放在同一個目錄(建議)
3.執行sqlldr
userid=scott/anwei@orcl
control=user_user_test.ctl
data=user_user_test.txt
log=user_user_test.log
命令
J. 如何通過SQL命令查看資料庫的文件大小
要查的表名')
獲取資料庫表名和欄位
sqlserver中各個系統表的作用
sysaltfiles 主資料庫 保存資料庫的文件
syscharsets 主資料庫 字元集與排序順序
sysconfigures 主資料庫 配置選項
syscurconfigs 主資料庫 當前配置選項
sysdatabases 主資料庫 伺服器中的資料庫
syslanguages 主資料庫 語言
syslogins 主資料庫 登陸帳號信息
sysoledbusers 主資料庫 鏈接伺服器登陸信息
sysprocesses 主資料庫 進程
sysremotelogins主資料庫 遠程登錄帳號
syscolumns 每個資料庫 列
sysconstrains 每個資料庫 限制
sysfilegroups 每個資料庫 文件組
sysfiles 每個資料庫 文件
sysforeignkeys 每個資料庫 外部關鍵字
sysindexs 每個資料庫 索引
sysmenbers 每個資料庫 角色成員
sysobjects 每個資料庫 所有資料庫對象
syspermissions 每個資料庫 許可權
systypes 每個資料庫 用戶定義數據類型
select 列名=name from syscolumns where id=object_id(N'表名'
--讀取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype=' and name='u'u'--讀取庫中的所有表名
select name from sysobjects where xtype='