mysql+oracle创建表并插入大量数据脚本
####MySql####
use stu;
drop table if exists student; create table student ( s_id int(11) not null auto_increment , sno int(11), sname varchar(50), sage int(11), ssex varchar(8) , father_id int(11), mather_id int(11), note varchar(500), primary key (s_id), unique key uk_sno (sno) ) engine=innodb default charset=utf8mb4; truncate table student; delimiter $$ drop function if exists insert_student_data $$ create function insert_student_data() returns int deterministic begin declare i int; set i=1; while i<50000000 do insert into student values(i ,i, concat('name',i),i,case when floor(rand()*10)%2=0 then 'f' else 'm' end,floor(rand()*100000),floor(rand()*1000000),concat('note',i) ); set i=i+1; end while; return 1; end$$ delimiter ; select insert_student_data(); select count(*) from student; use stu; create table course ( c_id int(11) not null auto_increment , cname varchar(50) note varchar(500), primary key (c_id) ) engine=innodb default charset=utf8mb4; truncate table course; delimiter $$ drop function if exists insert_course_data $$ create function insert_course_data() returns int deterministic begin declare i int; set i=1; while i<=1000 do insert into course values(i , concat('course',i),floor(rand()*1000),concat('note',i) ); set i=i+1; end while; return 1; end$$ delimiter ; select insert_course_data(); select count(*) from course; use stu; drop table if exists sc; create table sc ( s_id int(11), c_id int(11), t_id int(11), score int(11) ) engine=innodb default charset=utf8mb4; truncate table sc; delimiter $$ drop function if exists insert_sc_data $$ create function insert_sc_data() returns int deterministic begin declare i int; set i=1; while i<=50000000 do insert into sc values( i,floor(rand()*1000),floor(rand()*10000000),floor(rand()*750)) ; set i=i+1; end while; return 1; end$$ delimiter ; select insert_sc_data(); commit; select insert_sc_data(); commit; create index idx_s_id on sc(s_id) ; create index idx_t_id on sc(t_id) ; create index idx_c_id on sc(c_id) ; select count(*) from sc; use stu; drop table if exists teacher; create table teacher ( t_id int(11) not null auto_increment , tname varchar(50) , note varchar(500),primary key (t_id) ) engine=innodb default charset=utf8mb4; truncate table teacher; delimiter $$ drop function if exists insert_teacher_data $$ create function insert_teacher_data() returns int deterministic begin declare i int; set i=1; while i<=10000000 do insert into teacher values(i , concat('tname',i),concat('note',i) ); set i=i+1; end while; return 1; end$$ delimiter ; select insert_teacher_data(); commit; select count(*) from teacher;
####Oracle####
create tablespace scott_data datafile '/home/oracle/oracle_space/sitpay1/scott_data.dbf' size 1024m autoextend on; create tablespace scott_index datafile '/home/oracle/oracle_space/sitpay1/scott_index.dbf' size 64m autoextend on; create temporary tablespace scott_temp tempfile '/home/oracle/oracle_space/sitpay1/scott_temp.dbf' size 64m autoextend on; drop user scott cascade; create user scott identified by tiger default tablespace scott_data temporary tablespace scott_temp ; grant resource,connect,dba to scott; drop table student; create table student ( s_id number(11) , sno number(11) , sname varchar2(50), sage number(11), ssex varchar2(8) , father_id number(11), mather_id number(11), note varchar2(500) ) nologging; truncate table student; create or replace procedure insert_student_data is q number(11); begin q:=0; for i in 1..50 loop insert /*+append*/ into student select rownum+q as s_id,rownum+q as sno, concat('sutdent',rownum+q ) as sname,floor(dbms_random.value(1,100)) as sage,'f' as ssex,rownum+q as father_id,rownum+q as mather_id,concat('note',rownum+q ) as note from dual connect by level<=1000000; q:=q+1000000; commit; end loop; end insert_student_data; / call insert_student_data(); alter table student add constraint pk_student primary key (s_id); commit; select count(*) from student; create table course ( c_id number(11) primary key, cname varchar2(50), note varchar2(500) ) ; truncate table course; create or replace procedure insert_course_data is q number(11); begin for i in 1..1000 loop insert /*+append*/ into course values(i , concat('name',i),concat('note',i) ); end loop; end insert_course_data; / call insert_course_data(); commit; select count(*) from course; create table sc ( s_id number(11), c_id number(11), t_id number(11), score number(11) ) nologging; truncate table sc; create or replace procedure insert_sc_data is q number(11); begin q:=0; for i in 1..50 loop insert /*+append*/ into sc select rownum+q as s_id, floor(dbms_random.value(0,1000)) as c_id,floor(dbms_random.value(0,10000000)) t_id,floor(dbms_random.value(0,750)) as score from dual connect by level<=1000000; q:=q+1000000; commit; end loop; end insert_sc_data; / call insert_sc_data(); create index idx_s_id on sc(s_id) ; create index idx_t_id on sc(t_id) ; create index idx_c_id on sc(c_id) ; select count(*) from sc; create table teacher ( t_id number(11) , tname varchar2(50) , note varchar2(500) )nologging ; truncate table teacher; create or replace procedure insert_teacher_data is q number(11); begin q:=0; for i in 1..10 loop insert /*+append*/ into teacher select rownum+q as t_id, concat('teacher',rownum+q ) as tname,concat('note',rownum+q ) as note from dual connect by level<=1000000; q:=q+1000000; commit; end loop; end insert_teacher_data; / call insert_teacher_data(); alter table teacher add constraint pk_teacher primary key (t_id); select count(*) from teacher;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?