SQL语言创建数据库和学生表

时间:2025-04-20 03:34:09 作者:yami 综合材料 收藏本文 下载本文

【导语】“yami”通过精心收集,向本站投稿了3篇SQL语言创建数据库和学生表,今天小编在这给大家整理后的SQL语言创建数据库和学生表,我们一起来看看吧!

篇1:SQL语言创建数据库和学生表

建立:

[sql]

create database zxl

create table 学生表

(

学号 char(12) primary key,

姓名 char(6) not null,

性别 char(2) check(性别 IN ('男','女')),

班级 char(15)

)

create table 成绩表

(

学号 char(12)references 学生表(学号),

课程号 char(2)references 课程表(课程号) ,

成绩 int default(30),

primary key (学号,课程号)

)

create table 课程表

(

课程号 char(2) primary key,

课程名 char(20),

学分 int check(学分>=1 and 学分<=5 )

)

操作:

[sql]

insert into 学生表 values('201190609112','张xl','男','文专计1111')

insert into 学生表 values('201190609113','张**','女','文专计1111')

insert into 成绩表 values('201190609112','01',100)

insert into 成绩表 values('201190609112','02',99)

insert into 成绩表 values('201190609112','03',88)

insert into 课程表 values('01','数据库系统',3)

insert into 课程表 values('02','vb.net',4)

insert into 课程表 values('03','java',4)

select *from 成绩表

select 姓名,课程名,成绩

from 学生表,课程表,成绩表

where (学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号)

order by 成绩 desc

select avg(成绩)平均分,max(成绩) 最高分,min(成绩) 最低分

from 成绩表

where 学号='201190609112'

篇2:mysql数据库动态创建表

mysql数据库动态创建表

大家一般可能很少有这种需求吧,我以前也没有遇到过,但这次做项目需要这么做,

就是表的字段名和字段数都不是固定的,要根据需要来创建。

这是我的创建形成过程,大家照着演示一下就知道了我的动态表的来龙去脉了。

第一步.创建相关表

/*---建立所有指标信息的临时表---*/

drop table if exists INTERBANKBONDQUOTE_SClass;

create table INTERBANKBONDQUOTE_SClass (

Name varchar(50) not null,

id int Primary key,

Parent int,

Value varchar(50)

);

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('最新成交',0,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('买入信息',1,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('买卖价差',2,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('卖出信息',3,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('中债最新估值',4,-1,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('含权债行权指标',5,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('基础指标',6,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Value)values('双边报价笔数',7,'');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价方',8,1,'col4');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价方会员号',9,1,'col5');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('报价时间',10,1,'col6');

insert into INTERBANKBONDQUOTE_SClass(Name,id,Parent,Value)values('匿名',11,1,'col7');

第二步:/*---建立显示数据表格标题的表---*/

drop table if exists INTERBANKBONDQUOTE_T;

create table INTERBANKBONDQUOTE_T as select concat('\\'',a.Name,',',b.Name,'\\' __TITLE__',b.Value);

第三步: 这里有两种实现方法。因为在mysql中,这时的变量长度受到了限制 ,本来应该longtext足够长的,可实际只返回了限制长度的。如果字段太多了,就要用第二种方法。

存储过程A: 这里变量返回值长度受限,字段不多时可以。

DELIMITER $$

DROP PROCEDURE IF EXISTS `dzhappdb_bond`.`INTERBANKBONDQUOTE_TSP`$$

CREATE PROCEDURE INTERBANKBONDQUOTE_TSP

BEGIN

DECLARE objs1 TEXT;

DECLARE objs TEXT;

SELECT GROUP_CONCAT(col1) INTO objs1 FROM T;

SET objs =CONCAT('CREATE TABLE Title AS SELECT ',objs1);

SET @sql_txt = objs;

PREPARE stmt FROM @sql_txt;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

END$$

call INTERBANKBONDQUOTE_TSP;

存储过程B:这样不管字段多少,只要数据库支持就可以创建成功,

但不如第一个方法简洁。

DROP PROCEDURE IF EXISTS INTERBANKBONDQUOTE_TSP_Title;

drop table if EXISTS Title;

CREATE PROCEDURE INTERBANKBONDQUOTE_TSP_Title()

proc:begin

DECLARE add_sql LONGTEXT;

DECLARE insert_sql LONGTEXT;

DECLARE nhh_sql varchar(200);

DECLARE column_name varchar(100);

DECLARE column_value varchar(100);

DECLARE mycount int;

DECLARE len int;

DECLARE strlen int;

DECLARE cursor_Title CURSOR for select col1 from INTERBANKBONDQUOTE_T;

create table Title(mid int);

insert into Title values (100);

select count(col1) into @mycount from INTERBANKBONDQUOTE_T;

OPEN cursor_Title;

REPEAT

FETCH cursor_Title INTO nhh_sql;

begin

set @mycount=@mycount-1;

set @strlen=CHARACTER_LENGTH(nhh_sql);

set @len=INSTR(nhh_sql,' ');

set @column_name=RIGHT(nhh_sql,@strlen-@len);

set @column_value=LEFT(nhh_sql,@len);

set @add_sql=CONCAT('ALTER table Title add COLUMN ',@column_name,' varchar(100)');

set @insert_sql=CONCAT('update Title set ',@column_name,'=',@column_value,' where mid=100');

PREPARE stmt1 FROM @add_sql;

EXECUTE stmt1;

PREPARE stmt2 FROM @insert_sql;

EXECUTE stmt2;

DEALLOCATE PREPARE stmt1;

DEALLOCATE PREPARE stmt2;

end;

until @mycount<=0

END REPEAT;

CLOSE cursor_Title;

ALTER table Title drop column mid;

end proc;

call INTERBANKBONDQUOTE_TSP_Title;

篇3:Linux下sqlite数据库操作 表的检测,创建,删除。

<一>表的检测,创建,删除,

Linux下sqlite数据库操作 表的检测,创建,删除。

#include

#include

#include

#include

#include

bool db_tableExists(sqlite3 *db, const char *tbname)

{

int nRet;

const char  *szTail;

sqlite3_stmt *pvm;

char sql[1024];

sprintf(sql, “select count(*) from sqlite_master where type='table' and name='%s'”, tbname);

szTail=0;

nRet = sqlite3_prepare(db, sql, -1, &pvm, &szTail);

//printf(“nRet=%d SQLITE_OK=%d SQLITE_DONE=%d SQLITE_ROW=%d \\n”, nRet, SQLITE_OK, SQLITE_DONE,SQLITE_ROW);

if (nRet==SQLITE_OK)

{

nRet=sqlite3_step(pvm);

//printf(“nRet=%d SQLITE_OK=%d SQLITE_DONE=%d SQLITE_ROW=%d \\n”, nRet, SQLITE_OK, SQLITE_DONE,SQLITE_ROW);

if (nRet==SQLITE_ROW)

{

int nCols = sqlite3_column_count(pvm);

//printf(“nCols:%d\\n”, nCols);

if (nCols>=1)

{

return sqlite3_column_int(pvm,0)!=0;

}

}

}

return false;

}

int db_exeDML(sqlite3 *db, const char *sql)

{

char* szError=0;

int nRet = sqlite3_exec(db, sql, 0, 0, &szError);

if (nRet == SQLITE_OK)

{

return sqlite3_changes(db);

}

return SQLITE_ERROR;

}

int main(int argc, char **argv)

{

sqlite3 *db=0;

int nRet = sqlite3_open(“temp.db”,&db);

if (nRet)

{

fprintf(stderr,“can't open database: %s\\n”,sqlite3_errmsg(db));

sqlite3_close(db);

exit(1);

}else{

printf(“open database ok.\\n”);

}

if (!db_tableExists(db,“tmp”))

{

printf(“create \\”tmp\\“ table\\n”);

nRet=db_exeDML(db,“CREATE TABLE tmp( IP TEXT, VER TEXT, UID TEXT, FILE TEXT)”);

printf(“nRet=%d\\n”, nRet);

}else{

nRet=db_exeDML(db,“delete from tmp”);

printf(“nRet=%d\\n”, nRet);

}

sqlite3_close(db);

return 0;

}

摘自 杨小卫专栏

SQL MSSQL 常用代码数据库教程

SQL Server数据库优化方案数据库教程

动态关联表数据库教程

更改 WordPress 数据库表名前缀

在VB中动态创建数据库数据库教程

学生请假条格式表

网站群发站内信数据库表设计

如何无需编程便将数据SQL导出到MYSQL数据库教程

一个sql语句,包含有几乎所有标准查询语法数据库教程

学生表现鉴定表

SQL语言创建数据库和学生表(通用3篇)

欢迎下载DOC格式的SQL语言创建数据库和学生表,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档