當前位置:首頁 » 數據倉庫 » 創建班級表資料庫代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

創建班級表資料庫代碼

發布時間: 2022-06-30 07:34:24

❶ Mysql的題目:創建一個視圖,包含student表中班級代碼是20000001,20000002

create view v_student as

select * from student t where t.代碼 in('20000001','20000002','20000003')

❷ 用SQL語句創建班級表class,它由班級id,班級名name,班長monitor等3個屬性組成,其中班級號是主鍵。

這個是根據你的數據表裡面欄位的空間而定的啊!你設置成char(4) 可以 char(8) 也可以。

那char(4) 和char(8)有什麼不同呢?
char(4) 比如說:你的班級id 為 1,那你數據表裡裡面id欄位就分配4個位元組空間 來存放 1,浪費了3個位元組;
char(8) 比如說: 你的班級id 為 1 ,那你的資料庫表裡面的id欄位就分配8個位元組的空間來存放1,浪費了7個位元組;

因為資料庫就是用來存儲資料庫的,盡量不要浪費數據表裡面空間。 所以建議你用 varchar() ;關於varchar() 是怎樣用你繼續上網搜吧 。

❸ 資料庫建立表格代碼

在 MySQL 中,可以使用 CREATE TABLE 語句創建表。其語法格式為:

其中,[表定義選項]的格式為:

CREATE TABLE 語句的主要語法及使用說明如下:

CREATE TABLE:用於創建給定名稱的表,必須擁有表CREATE的許可權。

<表名>:指定要創建表的名稱,在 CREATE TABLE 之後給出,必須符合標識符命名規則。表名稱被指定為 db_name.tbl_name,以便在特定的資料庫中創建表。無論是否有當前資料庫,都可以通過這種方式創建。在當前資料庫中創建表時,可以省略 db-name。如果使用加引號的識別名,則應對資料庫和表名稱分別加引號。例如,'mydb'.'mytbl' 是合法的,但 'mydb.mytbl' 不合法。

<表定義選項>:表創建定義,由列名(col_name)、列的定義(column_definition)以及可能的空值說明、完整性約束或表索引組成。

size:規定表中列的最大長度。

默認的情況是,表被創建到當前的資料庫中。若表已存在、沒有當前資料庫或者資料庫不存在,則會出現錯誤。

提示:使用 CREATE TABLE 創建表時,必須指定以下信息:

要創建的表的名稱不區分大小寫,不能使用SQL語言中的關鍵字,如DROP、ALTER、INSERT等。

數據表中每個列(欄位)的名稱和數據類型,如果創建多個列,要用逗號隔開。

示例:

選擇創建表的資料庫 test_db

創建 tb_emp1 數據表

使用 SHOW TABLES 語句查看數據表是否創建成功

❹ 編程:建立一個班級成績管理資料庫

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define INITIAL_SIZE 100 /*數組初始的大小*/
#define INCR_SIZE 50 /*數組每次增加的大小*/
#define NUM_SUBJECT 4 /*科目數*/
#define NULL 0
struct student_info
{
char number[15]; /*學號*/
char name[20]; /*姓名*/
char gender[4]; /*性別*/
float score[NUM_SUBJECT]; /*分別為該學生4門課的成績*/
float sum; /*總分*/
float average; /*平均分*/
int index; /*名次*/
};
typedef struct student_info StuInfo;
extern int numStus; /*記錄的學生數*/
extern StuInfo *records; /*記錄學生信息的數組*/
extern char savedTag; /*信息是否已保存的標志,0為已保存,1為未保存*/
extern int arraySize; /*數組大小*/
extern char *subject[];
void handle_menu(void);
int menu_select(void);
void addRecord(void);
void modifyRecord(void);
void queryInfo(void);
void removeRecord(void);
void sortInfo(void);
int saveRecords(void);
int loadRecords(void);
void newRecord(void);
void quit(void);
void showTable(void);
int findRecord(char *target,int targetType,int form);
int getIndex(float sum);
void Record(StuInfo *src,StuInfo *dest);
void average(void);
void search(void);
void shuchu(void);
void shaixuan(void);
int numStus = 0;
StuInfo *records = NULL;
char savedTag = 0;
int arraySize;
char *subject[]={"高數","物理","英語","PC"};
void main()
{
printf("\n");
printf("\t*************************************\n");
printf("\t* 這是一個 *\n");
printf("\t* 學生成績管理程序 *\n");
printf("\t* 可以對學生的成績進行管理 *\n");
printf("\t* 歡迎使用本程序 *\n");
printf("\t*************************************\n");
printf("\n");
handle_menu();
}
/*菜單處理函數*/
void handle_menu(void)
{
for(;;)
{
switch(menu_select())
{
case 1:
saveRecords();
break;
case 2:
addRecord();
break;
case 3:
newRecord();
break;
case 4:
removeRecord();
break;
case 5:
modifyRecord();
break;
case 6:
average();
break;
case 7:
search();
break;
case 8:
sortInfo();
break;
case 9:
shuchu();
break;
case 10:
loadRecords();
break;
case 11:
shaixuan();
break;
case 12:
quit();
}
}
}
/*菜單選擇函數*/
int menu_select()
{
char s[2];
int cn = 0;
printf("\n");
printf("\t1 建立文件\n");
printf("\t2 增加學生記錄\n");
printf("\t3 新建學生信息文件\n");
printf("\t4 刪除學生記錄\n");
printf("\t5 修改學生記錄\n");
printf("\t6 求平均成績\n");
printf("\t7 查找最高分\n");
printf("\t8 按總分排序\n");
printf("\t9 輸出所有記錄\n");
printf("\t10 讀取文件\n");
printf("\t11 按平均成績篩選\n");
printf("\t12 退出程序");
printf("\n\t 數字對應相應功能,請選擇1--12:");
for(;;)
{
gets(s);
cn = atoi(s);
/*處理鍵入的非數字鍵*/
if(cn<1||cn>12)
{
printf("\n\t輸入錯誤,請重新輸入!\n");
printf("\t0--12:");
}
else break;
}
return cn;
}
/*建立文件函數*/
int saveRecords()
{
FILE *fp;
char fname[30];
printf("\t您選擇的是:建立文件\n");
if(numStus == 0)
{
printf("沒有記錄可存!\n");
return -1;
}
printf("請輸入你要存入的文件名(直接回車選擇文件stu_info):");
gets(fname);
if(strlen(fname) == 0)
strcpy(fname,"stu_info");
if((fp = fopen(fname,"wb")) == NULL)
{
printf("不能存入文件!\n");
return -1;
}
printf("\n存文件......\n");
fwrite(records,sizeof(StuInfo)*numStus,1,fp);
fclose(fp);
printf("%d條記錄已經存入文件,請繼續操作。\n",numStus);
savedTag = 0; /*更新是否已保存的標記*/
return 0;
}
/*增加學生記錄*/
void addRecord()
{
char str[10];
int j;
float mark,sum;
printf("\t增加學生記錄\n");
if(numStus == 0)
printf("原來沒有記錄,現在建立新表\n");
else
printf("下面在當前的末尾增加新的信息\n");
while(1)
{
printf("您將要添加一組信息,確定嗎?(Y/N):");
gets(str);
if(str[0] == 'n'||str[0] == 'N') /*不再添加信息*/
break;
if(numStus>=arraySize) /*數組空間不足,需要重新申請空間*/
{
records = realloc(records,(arraySize+INCR_SIZE) *sizeof(StuInfo));
if(records == NULL)
{
printf("memory failed");
exit(-1);
}
arraySize = arraySize+INCR_SIZE;
}
printf("請輸入學號:");
gets(records[numStus].number);
printf("請輸入姓名:");
gets(records[numStus].name);
printf("請輸入性別(0為女,輸入其它為男):");
gets(str);
if(str[0] == '0')
strcpy(records[numStus].gender,"女");
else
strcpy(records[numStus].gender,"男");
sum = 0;
for(j=0;j<NUM_SUBJECT;j++)
{
printf("請輸入%s成績:",subject[j]);
gets(str);
mark = (float)atof(str);
records[numStus].score[j] = mark;
sum += mark;
}
records[numStus].sum = sum;
records[numStus].average = sum/NUM_SUBJECT;
records[numStus].index = getIndex(sum);
numStus++;
}
printf("現在一共有%d條信息",numStus);
savedTag = 1;
}
/*新建學生信息文件*/
void newRecord(void)
{
char str[5];
printf("新建學生信息文件\n");
if(numStus != 0)
{
if(savedTag == 1)
{
printf("現在已經有記錄,選擇處理已有記錄的方法。\n");
printf("是否保存原來的記錄?(Y/N):");
gets(str);
if(str[0]!='n'&&str[0]!='N')
saveRecords();
}
}
numStus = 0;
addRecord();
}
/*刪除學生記錄*/
void removeRecord()
{
char str[5];
char target[20];
int type;
int i,j;
int tmpi;
printf("刪除學生記錄\n");
if(numStus == 0)
{
printf("沒有可供刪除的記錄!");
return;
}
while(1)
{
printf("\t1 按學號\n");
printf("\t2 按姓名\n");
printf("\t3 按名次\n");
printf("\t數字對應刪除方式!\n");
printf("請輸入如何找到欲刪除的記錄的方式(直接輸入回車結束移除操作):");
gets(str);
if(strlen(str) == 0)
break;
if(str[0] == '1')
{
printf("請輸入該學生的學號:");
gets(target);
type = 0;
}
else if (str[0] == '2')
{
printf("請輸入該學生的姓名");
gets(target);
type = 1;
}
else
{
printf("請輸入該學生的名次:");
gets(target);
type = 2;
}
i = findRecord(target,type,0);
if(i == -1)
printf("沒有符合條件的學生!\n");
while(i != -1)
{
showTable();
printf("%s\t%s\t%s",records[i].number,records[i].name,records[i].gender);
for(j=0;j<NUM_SUBJECT;j++)
{
printf("\t%.1f",records[i].score[j]);
}
printf("\t%.1f\t%.1f\t%d\n",records[i].sum,records[i].average,records[i].index);
printf("確定要刪除這個學生的信息嗎?(Y/N):");
gets(str);
if(str[0] == 'Y'||str[0] == 'y')
{
numStus--;
tmpi = records[i].index;
/*將後面的記錄前移*/
for(j=1;j<numStus;j++)
Record(&records[j+1],&records[j]);
/*將名次排在被刪除記錄後面的記錄的名次減1*/
for(j=0;j<numStus;j++)
{
if(records[j].index > tmpi)
records[j].index--;
}
}
/*取下一個符合條件的記錄*/
i = findRecord(target,type,i+1);
}
}
savedTag = 1;
}
/*修改學生記錄*/
void modifyRecord()
{
char str[5];
char target[20];
int type;
int i,j;
int tmpi;
float sum,mark;
int count = 0; /*總分大於sum的人數*/
printf("修改學生記錄\n");
if(numStus == 0)
{
printf("沒有可供修改的記錄!");
return;
}
while(1)
{
printf("\t1 按學號\n");
printf("\t2 按姓名\n");
printf("\t3 按名次\n");
printf("\t數字對應修改方式!\n");
printf("請輸入如何找到欲修改的記錄的方式(直接輸入回車結束修改操作):");
gets(str);
if(strlen(str) == 0)
break;
if(str[0] == '1')
{
printf("請輸入該學生的學號:");
gets(target);
type = 0;
}
else if (str[0] == '2')
{
printf("請輸入該學生的姓名");
gets(target);
type = 1;
}
else
{
printf("請輸入該學生的名次:");
gets(target);
type = 2;
}
i = findRecord(target,type,0);
if(i == -1)
printf("沒有符合條件的學生!\n");
while(i != -1)
{
showTable();
printf("%s\t%s\t%s",records[i].number,records[i].name,records[i].gender);
for(j=0;j<NUM_SUBJECT;j++)
{
printf("\t%.1f",records[i].score[j]);
}
printf("\t%.1f\t%.1f\t%d\n",records[i].sum,records[i].average,records[i].index);
printf("確定要修改這個學生的信息嗎?(Y/N):");
gets(str);
if(str[0] == 'Y'||str[0] == 'y')
{
tmpi = records[i].index;
printf("下面請重新輸入該學生的信息:\n");
printf("請輸入學號:");
gets(records[numStus].number);
printf("請輸入姓名:");
gets(records[numStus].name);
printf("請輸入性別(0為女,輸入其它為男):");
gets(str);
if(str[0] == '0')
strcpy(records[numStus].gender,"女");
else
strcpy(records[numStus].gender,"男");
sum = 0;
for (j=0;j<NUM_SUBJECT;j++)
{
printf("請輸入%s成績:",subject[j]);
gets(str);
mark = (float)atof(str);
records[numStus].score[j] = mark;
sum += mark;
}
records[numStus].sum = sum;
records[numStus].average = sum/NUM_SUBJECT;
/*將原來名次排在被修改記錄之後,而其小於等於*/
/*修改後記錄的sum的記錄的名次減1*/
/*將原來名次排在被修改記錄之前或相同,而其*/
/*大於修改後記錄的sum的記錄的名次增1*/
count = 0;
for (j=0;j<numStus;j++ )
{
if(j == i)
continue;
if(records[j].index>tmpi&&records[j].sum>sum)
records[j].index--;
else if (records[j].index<=tmpi&&records[j].sum<sum)
records[j].index++;
if (records[j].sum>sum)
count++;
}
records[i].index = count+1;
}
i = findRecord(target,type,i+1);
}
}
savedTag = 1;
}
/*退出程序*/
void quit(void)
{
char str[5];
if (savedTag == 1)
{
printf("是否保存原來的記錄(Y/N)");
gets(str);
if (str[0] != 'n' && str[0] != 'N')
saveRecords();
}
free(records);
exit(0);
}
/*找出總分為sum在第0至numStus-1個記錄中按升序排序的位置*/
int getIndex(float sum)
{
int i;
int count = 0; /*總分大於sum的人數*/
for (i=0; i<numStus ;i++ )
{
if(records[i].sum<sum)
{
records[i].index++; /*總分小於sum的記錄名次加1*/
}
else if (records[i].sum > sum)
{
count++;
}
}
return count+1;
}
/*查找指明定的記錄*/
int findRecord(char *target,int targetType,int from)
{
int i;
for (i=from;i<numStus ;i++ )
{
if ((targetType==0 && strcmp(target,records[i].number)==0)||
(targetType==1 && strcmp(target,records[i].name)==0)||
(targetType==2 && atoi(target)==records[i].index))
return i;
}
return -1;
}
/*列印表頭*/
void showTable(void)
{
int j;
printf("學號\t姓名\t性別");
for (j=0; j<NUM_SUBJECT ;j++ )
printf("\t%s",subject[j]);
printf("\t總分\t平均分\t序號\n");
}
/*將scr指向的一條記錄復制給dest指明向的記錄*/
void Record(StuInfo *src,StuInfo *dest)
{
int j;
strcpy(dest->number,src->number);
strcpy(dest->name,src->name);
strcpy(dest->gender,src->gender);
for (j=0; j<NUM_SUBJECT ;j++ )
{
dest->score[j]=src->score[j];
}
dest->sum = src->sum;
dest->average = src->average;
dest->index = src->index;
}
/*求平均成績函數*/
void average()
{
int i,kemu;
float sum;
char str[5];
float average;
printf("\t1 高數\n");
printf("\t2 物理\n");
printf("\t3 英語\n");
printf("\t4 PC\n");
printf("請輸入您要計算平均成績的科目(數字代表相應科目):");
gets(str);
if(strlen(str) == 0)
exit (0);
for ( ; ; )
{
kemu = atoi(str);
if(kemu<1||kemu>4)
{
printf("您的輸入有誤,請重新輸入,1--4:");
gets(str);
if(strlen(str) == 0)
exit(0);
}
else
{
for(i=0;i<numStus;i++)
{
sum = sum + records[i].score[kemu-1];
}
average = sum/numStus;
break;
}
}
printf("平均分為%.1f",average);
}
/*查找最高分函數*/
void search()
{
int i,j=0,kemu,tag=0,ind[20];
int k;
char str[5];
float max;
printf("\t1 高數\n");
printf("\t2 物理\n");
printf("\t3 英語\n");
printf("\t4 PC\n");
printf("\t5 總分\n");
printf("請輸入你要查找的最高分的選項(數字代表相應選項,直接回車退出),1--5:");
for ( ; ; )
{
gets(str);
if(strlen(str) == 0)
exit (0);
kemu = atoi(str);
if(kemu<1||kemu>5)
printf("您的輸入有誤,請重新輸入,1--5:");
else
break;
}
if(kemu>=1&&kemu<=4)
{ max = 0;
for ( i=0 ; i< numStus ;i++ )
{
if(max < records[i].score[kemu-1])
{
max = records[i].score[kemu-1];
}
}
for ( i=0; i<numStus ;i++ )
{
if( (kemu==1 && max == records[i].score[0])||
(kemu==2 && max == records[i].score[1])||
(kemu==3 && max == records[i].score[2])||
(kemu==4 && max == records[i].score[3]) )
{
for( ;j<20;j++)
{
ind[j] = i;
tag++;
break;
}
}
}
showTable();
for(j=0;j<tag;j++)
{
printf("%s\t%s\t%s",records[ind[j]].number,records[ind[j]].name,records[ind[j]].gender);
for(k=0;k<NUM_SUBJECT;k++)
{
printf("\t%.1f",records[ind[j]].score[k]);
}
printf("\t%.1f\t%.1f\t%d\n",records[ind[j]].sum,records[ind[j]].average,records[ind[j]].index);
}
printf("\t這就是您要查找的信息\n");
}
else
{
max = 0;
for (i=0;i<numStus;i++)
{
if(max<records[i].sum)
max = records[i].sum;
}
for(i=0;i<numStus;i++)
{
if(records[i].sum == max)
for( ;j<20;j++)
{
ind[j] = i;
tag++;
break;
}
}
showTable();
for(j=0;j<tag;j++)
{
printf("%s\t%s\t%s",records[ind[j]].number,records[ind[j]].name,records[ind[j]].gender);
for(k=0;k<NUM_SUBJECT;k++)
{
printf("\t%.1f",records[ind[j]].score[k]);
}
printf("\t%.1f\t%.1f\t%d\n",records[ind[j]].sum,records[ind[j]].average,records[ind[j]].index);
}
printf("\t這就是您要查找的信息\n");
}
return;
}
/*按總分降序函數*/
void sortInfo(void)
{
int i,j;
StuInfo tmps;
if(numStus == 0)
{
printf("沒有可供查詢的記錄!");
return;
}
for(i=0;i<numStus;i++)
{
for(j=0;j<numStus-i;j++)
{
if( records[j].sum<records[j+1].sum)
{
Record(&records[j],&tmps);
Record(&records[j+1],&records[j]);
Record(&tmps,&records[j+1]);
}
}
}
printf("排序已完成!\n");
shuchu();
savedTag = 1;
}
/*輸出所有記錄*/
void shuchu(void)
{
int i,j;
showTable();
for(i=0;i<numStus;i++)
{
printf("%s\t%s\t%s",records[i].number,records[i].name,records[i].gender);
for(j=0;j<NUM_SUBJECT;j++)
{
printf("\t%.1f",records[i].score[j]);
}
printf("\t%.1f\t%.1f\t%d\n",records[i].sum,records[i].average,records[i].index);
}
}
/*文件讀取操作函數*/
int loadRecords()
{
FILE *fp;
char fname[30];
char str[5];
if(numStus!=0 && savedTag == 0)
{
printf("\t請選擇您是要覆蓋現有記錄(Y),還是要將\n");
printf("\t讀取的記錄添加到現有的記錄之後(N)\n");
printf("\t直接回車則覆蓋現有的記錄:");
gets(str);
if(str[0]=='n'||str[0]=='N')
{
savedTag = 1;
}
else
{
if(savedTag == 1)
{
/*覆蓋現有記錄*/
printf("\t讀取文件會更改原來的記錄\n");
printf("是否保存原來的記錄(Y/N):");
gets(str);
if(str[0]!='n'||str[0]!='N')
saveRecords();
}
numStus = 0;
}
}
printf("請輸入要讀取的文件名(直接回車選擇文件stu_info)");
gets(fname);
if(strlen(fname)==0)
strcpy(fname,"stu_info");
if((fp=fopen(fname,"rb"))==NULL)
{
printf("打不開文件!請重新選擇\n");
return -1;
}
printf("\t讀文件\n");
while(!feof(fp))
{
/*現在的空間不足,需要重新申請空間*/
if(numStus >= arraySize)
{
records = realloc(records,(arraySize+INCR_SIZE) *sizeof(StuInfo));
if(records == NULL)
{
printf("memory failed!");
exit(-1);
}
arraySize = arraySize+INCR_SIZE;
}
if(fread(&records[numStus],sizeof(StuInfo),1,fp) !=1)
break;
/*按照addRecord函數的方法,更新名次*/
records[numStus].index = getIndex(records[numStus].sum);
numStus++;
}
fclose(fp);
printf("現在共有%d條記錄。",numStus);
return 0;
}
/*平均分篩選*/
void shaixuan(void)
{
float average;
int i=0,numstus=0,j;
printf("本程序給出大於等於已知平均成績的學生的信息\n");
printf("請輸入你要篩選的下限平均分:");
scanf("%f",&average);
showTable();
for (i=0 ;i< numStus;i++ )
{
if(records[i].average>=average)
{
printf("%s\t%s\t%s",records[i].number,records[i].name,records[i].gender);
for(j=0;j<NUM_SUBJECT;j++)
{
printf("\t%.1f",records[i].score[j]);
}
printf("\t%.1f\t%.1f\t%d\n",records[i].sum,records[i].average,records[i].index);
numstus++;
}
}
printf("共有%d條記錄",numstus);
}

❺ 若有一個STUDENT表,它有幾個欄位,學號,姓名,性別,班級,請下面寫出創建該表的代碼。

一個STUDENT表,它有幾個欄位,學號,姓名,性別,班級create table sutdent (學號 c(n) , 姓名 C(8) , 性別 c(2) , 班級 C(N) )

❻ SQL創建學生表(Student)、課程表(Course)、班級表(Class)、選課表(XK),寫對的我可以獎勵QB

1,從學生SELECT DISTINCT Sdept;
2,SELECT COUNT(DISTINCT Cpno)
課程
WHERE CNAME ='英語';
3,CREATE TABLE Student2
(SNO CHAR(9)PRIMARY KEY,
SNAME CHAR(20)UNIQUE,
Ssex CHAR(2),
Sbirthday SMALLINT,
Sdept CHAR(20)
);

❼ 如何用sql來創建資料庫(我班同學資料庫)

一般是先創建好資料庫,然後用SQL語句去創建表格及對數據的CRUD(create、research、update、delete)操作. 創建資料庫: CREATE DATABASE `database_name`; 創建表格:
CREATE TABLE `student` (
`id` int(5) NOT NULL auto_increment,
`name` varchar(20) default NULL,
`sex` varchar(3) default NULL, `birthday` date default '0000-00-00', `age` int(2), PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

❽ 班級資料庫設計

--創建資料庫
create database 1班
go
use 1班
go
--創建宿舍表宿舍號主鍵 電話長度7隻能輸入數字
create table 宿舍表
(
宿舍號 int identity(1,1) primary key,
電話 varchar(7)
check(len(電話)=7 and 電話 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
)
go
--創建同學表
create table 同學表
(學號 varchar(8),
姓名 varchar(8) UNIQUE,
性別 varchar(8) check(性別='男' or 性別='女'),
民族 varchar (8),
身份證 varchar(20) UNIQUE,
宿舍號 int foreign key(宿舍號) REFERENCES 宿舍表(宿舍號)
)
insert into 宿舍表(電話) values('6333333')

insert into 同學表 values('123,''張三','女','漢','210106198107084018',1)

❾ 用SQL語句為班級信息管理系統資料庫創建同學表和宿舍表

Create table table1
(
欄位 -類型 -是否空 -默認值 -是否主鍵 -是否外鍵
)
不會就網路 sql語句建表,加主鍵,加默認值,加外鍵等等