1. SQL Server導入導出向導,這種方式是最方便的.
導入向導,微軟提供了多種數據源驅動,包括SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML等,基本上可以滿足系統開發的需求.
同樣導出向導也有同樣多的目的源驅動,可以把數據導入到不同的目的源.
對資料庫管理人員來說這種方式簡單容易操作,導入時SQL Server也會幫你建立相同結構的Table.
2. 用.NET的代碼實現(比如有一個txt或是excel的檔案,到讀取到DB中)
2.1 最為常見的就是循環讀取txt的內容,然後一條一條的塞入到Table中.這里不再贅述.
2.2 集合整體讀取,使用OLEDB驅動.
代碼如下:
代碼
string strOLEDBConnect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1\;Extended Properties='text;HDR=Yes;FMT=Delimited'";
OleDbConnection conn = new OleDbConnection(strOLEDBConnect);
conn.Open();
SQLstmt = "select * from 1.txt";//讀取.txt中的數據
DataTable dt=new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(SQLstmt, conn);
da.Fill(dt);//在DataSet的指定范圍中添加或刷新行以匹配使用DataSet、DataTable 和IDataReader 名稱的數據源中的行。
if(dt.Rows.Count>0)
foreach(DataRow dr in dt.Rows)
{
SQLstmt = "insert into MyTable values('" + dr..."
3.BCP,可以用作大容量的數據導入導出,也可以配合來使用.
語法:
代碼
bcp {[[database_name.][schema].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-mmax_errors] [-fformat_file] [-x] [-eerr_file]
[-Ffirst_row] [-Llast_row] [-bbatch_size]
[-ddatabase_name] [-n] [-c] [-N] [-w] [-V (70 | 80 | 90 )]
[-q] [-C { ACP | OEM | RAW | code_page } ] [-tfield_term]
[-rrow_term] [-iinput_file] [-ooutput_file] [-apacket_size]
[-S [server_name[\instance_name]]] [-Ulogin_id] [-Ppassword]
[-T] [-v] [-R] [-k] [-E] [-h"hint [,...n]"]
請注意數據導入導出的方向參數:in,out,queryout
如:
如:
4.BULK INSERT. T-SQL的命令,允許直接導入數據
語法:
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_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 ]
[ [ , ] ERRORFILE ='file_name' ]
)]
重要參數:
FIELDTERMINATOR,欄位分隔符
FIRSTROW:第一個數據行
ROWTERMINATOR:行終結符
如:
BULK INSERT dbo.ImportTest
FROM 'C:\ImportData.txt'
WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )
5. OPENROWSET也是T-SQL的命令,包含有DB連接的信息和其它導入方法不同的是,OPENROWSET可以作為一個目標表參與INSERT,UPDATE,DELETE操作.
語法:
OPENROWSET
( { 'provider_name', { 'datasource';'user_id';'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file',
{ FORMATFILE ='format_file_path' [ <bulk_options> ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )<bulk_options> ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE ='file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH =rows_per_batch ]
如:
INSERT INTO dbo.ImportTest
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]') WHERE A1 IS NOT NULL
6.OPENDATASOURCE
語法:
OPENDATASOURCE ( provider_name,init_string )
如:
INSERT INTO dbo.ImportTest
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
7.OPENQUERY.是在linked server的基礎上執行的查詢.所以執行之前必須先建立好link server.OPENQUERY的結果集可以作為一個table參與DML的操作.
語法:
OPENQUERY (linked_server ,'query')
如:
EXEC sp_addlinkedserver 'ImportData',
'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
'C:\ImportData.xls',
NULL,
'Excel 8.0'
GO
INSERT INTO dbo.ImportTest
SELECT *
FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')
② sql資料庫的基本操作
命令行
1、顯示當前資料庫伺服器中的資料庫列表:mysql> SHOW DATABASES;
2、建立資料庫:mysql> CREATE DATABASE 庫名;
3、建立數據表:mysql> USE 庫名;mysql> CREATE TABLE 表名 (欄位名 VARCHAR(20), 欄位名 CHAR(1));
4、刪除資料庫:mysql> DROP DATABASE 庫名;
5、刪除數據表:mysql> DROP TABLE 表名;
6、將表中記錄清空:mysql> DELETE FROM 表名;
7、往表中插入記錄:mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數據:mysql-> UPDATE 表名 SET 欄位名1='a',欄位名2='b' WHERE 欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql> load data local infile "d:/mysql.txt" into table 表名;
10、導入.sql文件命令:mysql> USE 資料庫名;mysql> source d:/mysql.sql;
11、命令行修改root密碼:mysql> update mysql.user set password=password('新密碼') where user='root';mysql> flush privileges;
12.修改密碼的三種方法:mysql>update user set password=password('123456') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('123456');mysql>grant usage on *.* to 'joy_pen' identified by '123456';
1、創建資料庫
命令:create database <資料庫名> 例如:建立一個名為xhkdb的資料庫mysql> create database xhkdb;
2、顯示所有的資料庫
命令:show databases (注意:最後有個s)mysql> show databases;
3、刪除資料庫
命令:drop database <資料庫名> 例如:刪除名為 xhkdb的資料庫mysql> drop database xhkdb;
4、連接資料庫
命令: use <資料庫名> 例如:如果xhkdb資料庫存在,嘗試存取它:mysql> use xhkdb; 屏幕提示:Database changed
5、當前選擇(連接)的資料庫mysql> select database();
6、當前資料庫包含的表信息:mysql> show tables; (注意:最後有個s)
三、表操作,操作之前應連接某個資料庫
1、建表
命令:create table <表名> ( <欄位名1> <類型1> [,..<欄位名n> <類型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ''0'',
> degree double(16,2));
2、獲取表結構
命令: desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、刪除表
命令:drop table <表名>
例如:刪除表名為 MyClass 的表 mysql> drop table MyClass;
4、插入數據
命令:insert into <表名> [( <欄位名1>[,..<欄位名n > ])] values ( 值1 )[, ( 值n )]
例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績為96.45, 編號為2 的名為Joan 的成績為82.99,編號為3 的名為Wang 的成績為96.5.
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
5、查詢表中的數據
1)、查詢所有行
命令: select <欄位1,欄位2,...> from < 表名 > where < 表達式 >
例如:查看錶 MyClass 中所有數據 mysql> select * from MyClass;
2)、查詢前幾行數據
例如:查看錶 MyClass 中前2行數據
mysql> select * from MyClass order by id limit 0,2;
6、刪除表中數據
命令:delete from 表名 where 表達式
例如:刪除表 MyClass中編號為1 的記錄
mysql> delete from MyClass where id=1;
7、修改表中數據:update 表名 set 欄位=新值,… where 條件
mysql> update MyClass set name=''Mary'' where id=1;
8、在表中增加欄位:
命令:alter table 表名 add 欄位 類型 其他;
例如:在表MyClass中添加了一個欄位passtest,類型為int(4),默認值為0
mysql> alter table MyClass add passtest int(4) default ''0''
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
更新欄位內容
update 表名 set 欄位名 = 新內容
update 表名 set 欄位名 = replace(欄位名,''舊內容'',''新內容'');
③ sql資料庫有哪幾種查詢方式
--查詢資料庫里所有表名和欄位名的語句
--SQL 查詢所有表名:
SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'
SELECT * FROM INFORMATION_SCHEMA.TABLES
--查詢表的所有欄位名:
SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )
SELECT * FROM INFORMATION_SCHEMA.TABLES
SELECT * FROM INFORMATION_SCHEMA.VIEWS
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
---------以下為其他資料庫查詢表----------
--ORACLE 查看所有表名:
SELECT TABLE_NAME FROM USER_TABLES
--ACCESS 查看所有表名:
SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0
--MSYSOBJECTS 是系統對象,默認情況是隱藏的。通過工具、選項、視圖、顯示、系統對象可以使之顯示出來。
④ 連接SQL Server資料庫的幾種方式
C#以幾種方式連接到SQL Server資料庫 - 伺服器+數據源和其他方式
1 使用Connection對象連接到資料庫
2 oledb 對象
⑤ SQL資料庫 查詢方法
--SQL 查詢所有表名:
SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'
SELECT * FROM INFORMATION_SCHEMA.TABLES
--查詢表的所有欄位名:
SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )
SELECT * FROM INFORMATION_SCHEMA.TABLES
SELECT * FROM INFORMATION_SCHEMA.VIEWS
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
---------以下為其他資料庫查詢表----------
--ORACLE 查看所有表名:
SELECT TABLE_NAME FROM USER_TABLES
--ACCESS 查看所有表名:
SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0
--MSYSOBJECTS 是系統對象,默認情況是隱藏的。通過工具、選項、視圖、顯示、系統對象可以使之顯示出來。
⑥ ADO連接SQL資料庫的幾種方式
一、使用DSN連接。使用ODBC DSN 連接資料庫有兩種方式,一種為SYSTEM DSN、一種為DSN文件,因此在使用DSN連接方式之前必段創建一個SYSTEM DSN或DSN FILE.1、ODBC - DSN oConn.Open "DSN=AdvWorks;" & _ "Uid=Admin;" & _ "Pwd=;2、ODBC - File DSNoConn.Open "FILEDSN=c:\somepath\mydb.dsn;" & _ "Uid=Admin;" & _ "Pwd=;"二、不使用DSN連接方式1、ODBC Driver for MySQL (via MyODBC)---連接一個本地資料庫 oConn.Open "Driver={mySQL};" & _ "Server=MyServerName;" & _ "Option=16834;" & _ "Database=mydb;"---連接一個遠程資料庫 oConn.Open "Driver={mySQL};" & _ "Server=db1.database.com;" & _ "Port=3306;" & _ "Option=131072;" & _ "Stmt=;" & _ "Database=mydb;" & _ "Uid=myUsername;" & _ "Pwd=myPassword;"2、OLE DB Provider for SQL Server 連接這個鏈接只需寫好連接字元串,格式:conn.ConnectionString = "Driver={sql server};server=伺服器名;uid=登錄名;pwd=密碼;database=數據源" 使用無源連接優點較多:可以不創建 DSN,這樣就能簡化客戶應用程序的設置和安裝。 不必在系統注冊表中查找 DSN,加快連接速度。 更有效到控制伺服器及其它連接參數,從而提高應用程序和系統的安全性。當然還有其他的連接方式,以後遇到了再補充。
⑦ 如何用SQL語句創建資料庫
在SQL語句中,CREATE DATABASE 語句用於創建資料庫。
具體用法如下:
-from 樹懶學堂
資料庫表可以通過 CREATE TABLE 語句來添加。
⑧ sql創建用戶資料庫的方法有哪些
要想成功訪問 SQL Server 資料庫中的數據,需要兩個方面的授權:一、獲得准許連接 SQL Server 伺服器的權利; 二、獲得訪問特定資料庫中數據的權利(select, update, delete, create table ...)。 假設,我們准備建立一個 dba 資料庫帳戶,用來管理資料庫 mydb。
1. 首先在 SQL Server 伺服器級別,創建登陸帳戶(create login)
create login dba with password='sqlstudy', default_database=mydb
登陸帳戶名為:「dba」,登陸密碼:「sqlstudy」,默認連接到的資料庫:「mydb」。 這時候,dba 帳戶就可以連接到 SQL Server 伺服器上了。但是此時還不能 訪問資料庫中的對象(嚴格的說,此時 dba 帳戶默認是 guest 資料庫用戶身份, 可以訪問 guest 能夠訪問的資料庫對象)。
要使 dba 帳戶能夠在 mydb 資料庫中訪問自己需要的對象, 需要在資料庫 mydb 中建立一個「資料庫用戶」,賦予這個「資料庫用戶」 某些訪問許可權,並且把登陸帳戶「dba」 和這個「資料庫用戶」 映射起來。 習慣上,「資料庫用戶」 的名字和 「登陸帳戶」的名字相同,即:「dba」。 創建「資料庫用戶」和建立映射關系只需要一步即可完成:
2. 創建資料庫用戶(create user):
create user dba for login dba with default_schema=dbo
並指定資料庫用戶「dba」 的默認 schema 是「dbo」。這意味著 用戶「dba」 在執行「select * from t」,實際上執行的是 「select * from dbo.t」。
3. 通過加入資料庫角色,賦予資料庫用戶「dba」許可權:
exec sp_addrolemember 'db_owner', 'dba'
此時,dba 就可以全權管理資料庫 mydb 中的對象了。
如果想讓 SQL Server 登陸帳戶「dba」訪問多個資料庫,比如 mydb2。 可以讓 sa 執行下面的語句:
use mydb2gocreate user dba for login dba with default_schema=dbogoexec sp_addrolemember 'db_owner', 'dba'go
此時,dba 就可以有兩個資料庫 mydb, mydb2 的管理許可權了!
4. 禁用、啟用登陸帳戶:
alter login dba disablealter login dba enable
5. 登陸帳戶改名:
alter login dba with name=dba_tom
提示:在 SQL Server 2005 中也可以給 sa 改名。 《SQL Server 2005 安全性增強:給超級用戶 sa 改名》
⑨ 如何用sql建立資料庫
在 MySQL 中,可以使用 CREATE DATABASE 語句創建資料庫,語法格式如下:CREATE DATABASE [IF NOT EXISTS] <資料庫名>[[DEFAULT] CHARACTER SET <字元集名>][[DEFAULT] COLLATE <校對規則名>];
[ ]中的內容是可選的。語法說明如下:
<資料庫名>:創建資料庫的名稱。MySQL 的數據存儲區將以目錄方式表示 MySQL 資料庫,因此資料庫名稱必須符合操作系統的文件夾命名規則,不能以數字開頭,盡量要有實際意義。注意在 MySQL 中不區分大小寫。
IF NOT EXISTS:在創建資料庫之前進行判斷,只有該資料庫目前尚不存在時才能執行操作。此選項可以用來避免資料庫已經存在而重復創建的錯誤。
[DEFAULT] CHARACTER SET:指定資料庫的字元集。指定字元集的目的是為了避免在資料庫中存儲的數據出現亂碼的情況。如果在創建資料庫時不指定字元集,那麼就使用系統的默認字元集。
[DEFAULT] COLLATE:指定字元集的默認校對規則。
MySQL 的字元集(CHARACTER)和校對規則(COLLATION)是兩個不同的概念。字元集是用來定義 MySQL 存儲字元串的方式,校對規則定義了比較字元串的方式。後面我們會單獨講解 MySQL 的字元集和校對規則。
⑩ 請問 SQL創建資料庫有幾種方法啊
兩種
一種是手動創建
一種是代碼實現(create
database
+資料庫名稱)
創建表加不加abo.無所謂的,可以不加。
如果添加,看起來比較規范而已,沒有什麼實際意義。