『壹』 怎樣用sql語句批量生成測試數據
ini_set('max_execution_time','0');
$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");
$sql = "insert into user(id,name,age,created_time) values";
for($i=0; $i<100000; $i++){
$str = strrand(32);
$sql .="('".$str."','zhangsan',21,'2015-12-11'),";
}
$sql = substr($sql,0,strlen($sql)-1);
var_mp($sql);
if($pdo -> exec($sql)){
echo "插入成功!";
echo $pdo -> lastinsertid();
}
sql你是沒辦法批量添加進去的額,,可以用程序處理呀。
『貳』 請教SQL-SERVER 如何插入測試數據的問題
除非你很清楚業務邏輯,並使用級聯更新刪除這些手段,不然單獨插入的話調試很痛苦,最簡單的方法:下載一些試用版的第三方軟體協助你插入,那些軟體已經幫你整理好業務邏輯,用過red gate、SQLDelta,隨便注冊一下可以用十幾天,足夠你產生測試數據了
『叄』 如何創建一個mysql.sql文件存放建表語句和插入測試數據語句
.sql文件一般都是mysql的導出文件格式
如果你沒有導出數據 還非要這個格式的文件用做導入用
那麼不怕費事的話 自己建立一個 .sql文件吧 用記事本或相關編輯軟體打開
然後就手動輸入 建表命令和 插入語句了。。
『肆』 SqlServer2008建100W條測試數據
declare @i int;
set @i=1;
while @i<=1000000
begin
insert into t_login(name) values ('a'+cast(@i as varchar));
set @i=@i+1;
end
根據上面的作修改即可。
『伍』 你好 我想問一下 SQL server2000 如何創建測試資料庫
create database 庫名 //創建資料庫
go
use 庫名 //進入庫
create table 表名 //建表
(
欄位1 類型(m),
欄位2 類型(n),
欄位3 類型(a)
)
insert into 表名 values(『值1』,『值2』,『值3』); //插入信息
select * from 表名; //查詢
『陸』 sql server 2008 如何生成測試數據
說明: PoqWorld 為測試資料庫名稱
-- 創建登錄名 登錄密碼 默認資料庫
SP_ADDLOGIN 'TJ_Test8','TJ_Test!@#,./','PoqWorld'
---- 到指定資料庫創建用戶
USE [PoqWorld]
GO
SP_GRANTDBACCESS 'TJ_Test8'
-- SP_ADDUSER 'TJ_Test8'
GO
-- 設置許可權為DB_Owner
SP_ADDROLEMEMBER 'DB_Owner','TJ_Test8'
『柒』 使用SQL語句創建並測試資料庫的難點和注意事項是什麼
首先說說怎麼用SQL語句創建資料庫,創建資料庫的語句有如下幾種:
1. CREATE TABLE(創建新表)
2. CREATE INDEX(增加索引)
3. DROP INDEX(刪除索引)
4. CONSTRAINT(約束語句)
5. ALTER TABLE(修改表)
6. DROP TABLE(刪除表)
CREATE TABLE語句:
在資料庫中生成新表,表中欄位的類型能夠為:INTEGER(整型)、LONG(長整型)、 SINGLE(單精度浮點數)、DOUBLE(雙精度浮點數)、DATETIME(日期型,也能夠寫成DATE)、BIT(布爾型)、 TEXT(字元串型,最大255個位元組)、MEMO(字元串型,最大可達1.2G位元組)、 COUNTER(自動遞增長整型,可確定記錄的唯一性)、CURRENCY(貨幣型,精確到小數點左邊15位,右邊4位)、 BINARY(位元組型,最大255個)、LONGBINARY(用於OLE對象)、GUID(全局唯一標識符)。
生成表NewTable,該表有文本欄位Field1和整型欄位Field2,表名和欄位名能夠隨便您取,不區分大小寫,但是,有些保留字不能用作表名欄位名,比如Number
CREATE TABLE NewTable(Field1 TEXT(30), Field2 INTEGER);
CREATE INDEX語句:
INDEX是為了加快查找記錄的速度,或是為了增加欄位約束關系而配置的。
創建索引語句執行前表中能夠有記錄,但存在的記錄必須滿足該索引語句的約束關系,否則語句不能執行,另外要注意的是在同一個資料庫中(而不但僅是在同一個表中),索引名不能相同,否則語句也會失敗。
生成欄位Field1的索引欄位NewIndex,兩條語句作用相同
生成後Field1欄位能夠有相同的值,能夠有空值(NULL)
CREATE INDEX NewIndex ON NewTable (Field1);
CREATE INDEX NewIndex ON NewTable (Field1) WITH IGNORE NULL;
生成欄位Field1的索引欄位NewIndex,注意,每個表裡只能有一個主索引(PRIMARY)。生成後Field1欄位不能有相同的值,不能有空值(當然,假如是TEXT類型,能夠有一個空串,但是空串不是空值)
CREATE INDEX NewIndex ON NewTable(Field1) WITH PRIMARY;
欄位Field1不能有相同的值,但能夠有空值(兩個空值不算相同的值)
CREATE UNIQUE INDEX NewIndex ON NewTable(Field1);
欄位Field1能夠有相同的值,但不能有空值
CREATE INDEX NewIndex ON NewTable(Field2) WITH DISALLOW NULL
能夠在索引語句中加入ASC(升序)或DESC(降序)來控制記錄排列順序假如不使用順序字,SQL則默認使用ASC順序
CREATE INDEX NewIndex ON NewTable(Field1 ASC, Field2 DESC);
DROP INDEX語句:
刪除表NewTable中的索引NewIndex,語句執行前索引NewIndex必須存在
DROP INDEX NewIndex ON NewTable;
CONSTRAINT語句:
CONSTRAINT子句用於創建資料庫完整性的索引,他和INDEX語句作用相同,有些地方能夠互相替代,他能夠使用PRIMARY KEY(主關鍵字),UNIQUE(唯一)和FOREIGN KEY(外部關鍵字),和INDEX相比不能使用IGNOR NULL和DISALLOW NULL,但多了FOREIGN KEY(這也是他最強大的地方)。另外, CONSTRAINT語句必須和CREATE TABLE或ALTER TABLE語句一起使用。
生成表NewTable,主關鍵欄位是Field1,主索引是NewPK
CREATE TABLE NewTable(Field1 LONG CONSTRAINT NewPK PRIMARY KEY, Field2 MEMO, Field3 DATETIME);
生成索引為NewUK的表NewTable,Field1不能有相同值,能夠有空值
CREATE TABLE NewTable(Field1 INTEGER CONSTRAINT NewUK UNIQUE);
生成多列的主索引,兩條記錄的Field1和Field2不能全部相同,也不能為空值
CREATE TABLE NewTable(Field1 INTEGER, Field2 CURRENCY, CONSTRAINT NewPK PRIMARY KEY(Field1, Field2));
生成多列的UNIQUE索引,兩條記錄的Field1和Field2不能全部相同注意,假如兩條記錄其中一個欄位相同而另一個欄位都是空值,那也算兩個欄位不同
CREATE TABLE NewTable(Field1 INTEGER, Field2 CURRENCY, CONSTRAINT NewUK UNIQUE(Field1, Field2));
要在幾個不同的表之間建立聯系,就要使用FOREIGN KEY REFERENCES子句,他能夠限定某個表的欄位內容必須存在於另外一個表中。
第一個例子:
首先,生成主關鍵欄位為Field1的表NewTable1
CREATE TABLE NewTable1(Field1 INTEGER CONSTRAINT NewPK PRIMARY KEY);
然後,再生成外部索引,兩個表的Field1必須類型相同,並且第一個表的Field1是主關鍵欄位或UNIQUE欄位。生成外部索引後,表NewTable2要增加記錄,他的Field1欄位值必須已存在於表NewTable1的Field1欄位中。
下面兩條語句作用相同,因為Field1是NewTable1的主關鍵欄位,能夠省略不寫
CREATE TABLE NewTable2(Field1 INTEGER CONSTRAINT NewFK REFERENCES NewTable1);
CREATE TABLE NewTable2(Field1 INTEGER CONSTRAINT NewFK REFERENCES NewTable1(Field1));
第二個例子:
首先,生成主關鍵欄位為Field1和Field2的表NewTable1
CREATE TABLE NewTable1(Field1 INTEGER, Field2 TEXT(20), CONSTRAINT NewPK PRIMARY KEY(Field1, Field2));
然後,生成多列外部索引
CREATE TABLE NewTable2(Field1 INTEGER, Field2 TEXT(20), CONSTRAINT NewFK FOREIGN KEY(Field1, Field2) REFERENCES NewTable1(Field1, Field2));
ALTER TABLE語句:
在表生成之後,假如想修改表的結構,就使用這條語句,他能增加或刪除欄位連同約束關系。
給表NewTable增加日期型欄位Field3,語句執行前表NewTalbe必須沒有欄位Field3
ALTER TABLE NewTable ADD COLUMN Field3 DATE;
刪除表NewTable中的欄位Field3,語句執行前欄位Field3必須存在表NewTable中
ALTER TABLE NewTable DROP COLUMN Field3;
給表NewTable增加NewUK約束關系
ALTER TABLE NewTable ADD CONSTRAINT NewUK UNIQUE(Field1,Field2);
刪除表NewTable的NewUK約束關系
ALTER TABLE NewTable DROP CONSTRAINT NewUK;
DROP TABLE語句:
刪除表NewTable,語句執行前表NewTable必須存在
DROP TABLE NewTable;
『捌』 關於製造SQL測試數據的問題
--測試環境SQL2008
--建表
Create Table 表A
(
現場存檔時間 datetime,
孔1 numeric(18,2),
孔2 numeric(18,2),
孔3 numeric(18,2),
孔4 numeric(18,2)
)
--插入測試數據
insert into 表A values('2015-02-07',1,2,3,4)
insert into 表A values('2015-02-08',4,3,2,1)
--生產成表B
select identity(int,1,1) As 鑽孔id,name As 鑽孔編號
into 資料庫2.dbo.表b
from sys.columns
where object_id=object_id('表A')
and name like '孔%'
--生成表c(按孔1,孔2,孔3,孔4列轉行後再和表b關聯)
select 鑽孔id,現場存檔時間 As 採集時間,X As 溫度
into 資料庫2.dbo.表c
from 表A
unpivot
(
x
for
y in(孔1,孔2,孔3,孔4)
)p
left join 資料庫2.dbo.表b b on p.y=b.鑽孔編號
『玖』 sql本地測試資料庫問題
如果你的資料庫是用2005建立的,那麼不能直接附加在2000上,你可以通過導入導出成為 excel表,再導入到2005上;如果有sql語句更好...
XP系統上可以裝 sql 2005的開發版本,其他的不行...
『拾』 如何做一個mysql的sql腳本來測試數據還原
還原數據,一定要還原成自己之前的某個版本的數據,你隨機生成的不可能是你想要的。
隨便寫的一個sql腳本都可以導入到資料庫,最主要還是你自己備份出來的數據,導入資料庫才正確呀。
如果是導入慢的話,你可以先清理掉資料庫中的內容,然後再導入,就會省掉很多判斷,會快很多。