精华内容
下载资源
问答
  • CREATE TABLE 学生信息 ( 学号varchar(14) IDENTITY(1,1) PRIMARY KEY, 姓名varchar(8) UNIQUE NOT NULL, 班级编号varchar(14) REFERENCES '班级信息', 年级int null, 性别varchar(2) CHECK(性别in ('男’','女...
    1. 创建表
    CREATE TABLE 学生信息
    (
     学号varchar(14) IDENTITY(1,1) PRIMARY KEY,
     姓名varchar(8) UNIQUE NOT NULL,
     班级编号varchar(14) REFERENCES '班级信息',
     年级int null,
    性别varchar(2) CHECK(性别in ('男’','女’)),
     民族varchar(20) DEFAULT '未知该生民族',
     籍贯varchar(50)
    )
    2. 修改表
    1)重命名表:
    EXEC sp_rename ‘oldname’,’newname’
    2)修改列属性:
    ALTER TABLE 学生信息
    ALTER COLUMN 姓名varchar(20) NOT NULL
    3)添加列:
    ALTER TABLE 学生信息
    ADD 家庭住址nvarchar(20) NULL
    4)删除列:
    ALTER TABLE 学生信息
    DROP COLUMN 家庭住址CASCADE
     
    展开全文
  • 题目:采用两个结构体,一个结构体记录学生信息,一个记录年级信息。 情景:链表A,每个节点存放一个新链表,假设五个链表B1、B2、B3、B4、B5. 场景:一个年级,相当于链表A,该年级的五个班,相当于B1、B2、B3、B4、...

    题目:采用两个结构体,一个结构体记录学生信息,一个记录年级信息。
    情景:链表A,每个节点存放一个新链表,假设五个链表B1、B2、B3、B4、B5.
    场景:一个年级,相当于链表A,该年级的五个班,相当于B1、B2、B3、B4、B5,
    功能:录入成绩,语文、数学、英语,找出三科总分最高分、最低分,算出平均分。
    说明:本题主要考的是怎样才能在链表中插入链表
    动态创建链表只有怎样创建5个班每个班5个人,后面的功能录入成绩,语文、数学、英语,找出三科总分最高分、最低分,算出平均分,和静态链表是大同小异。
    动态创建链表

    #include<stdio.h>
    #include<stdlib.h>
    
    struct person *sd;
    struct person
    {
            char name[10];
            int chinese;
            int math;
            int english;
            int sum;
            struct person *next1;
    };
    
    struct class
    {
            struct class *next;
            struct person *stu;
    
    };
    
    
    struct class  *CreatLink(struct class *head)
    {	
    	struct class *new = (struct class *)malloc(sizeof(struct class));	
    		new->next = head;
    		head = new;
    
    		
    	return head;	
    }
    
    
    
    
    
    struct class *CreatMuch(int c,struct class *head)
    {
    	int i;
    	 for(i=0;i<c;i++)
                    {
                    head  =  CreatLink(head);
                    }
    
    
    	return head;
    
    }
    
    struct person *CreatLink1(struct  person *head)
    {
    	struct person *new = (struct person *)malloc(sizeof(struct class));
                    new->next1 = head;
                    head = new;
                    
    	return head;
    }
    struct person *CreatMuch1(int p,struct person *head)
    {
            int i;
             for(i=0;i<p;i++)
                    {
                    head  =  CreatLink1(head);
                    }
    
    
            return head;
    
    }
    
    
    
    
    void classconnectperson(int c,struct class *cs)
    {	
    	
    	int i;
    	int cnt ;
            int p;
    	struct class *change =  (struct class *)malloc(sizeof(struct class));
    
            sd =NULL;
            printf("input 1 class the number of student \n");
            scanf("%d",&p);
            sd = CreatMuch1(p,sd);
            cs->stu = sd;
    	
            printf("input 2 class the number of student \n");
            scanf("%d",&p);
            sd = CreatMuch1(p,sd);
            cs->next->stu = sd;
    	
    	printf("input 3 class the number of student \n");
            scanf("%d",&p);
            sd = CreatMuch1(p,sd);
            cs->next->next->stu = sd;
    
    	printf("input 4 class the number of student \n");
            scanf("%d",&p);
            sd = CreatMuch1(p,sd);
            cs->next->next->next->stu = sd;
    
    	printf("input 5 class the number of student \n");
            scanf("%d",&p);
            sd = CreatMuch1(p,sd);
            cs->next->next->next->next->stu = sd;
    	
    }
    
    
    
    
    
    void print(struct class *head)
    {
    		int cnt = 0;
    	while(head != NULL){
    
    				cnt++;
    				head = head->next;
    					
    				}
    
    		printf("class:%d\n",cnt);
    
    }
    
    
    void print1(struct person *head)
    {
                    int cnt = 0;
            while(head!= NULL){
    
                                    cnt++;
                                    head = head->next1;
    
                                    }
    
                    printf("person:%d\n",cnt);
    
    }
    
    int main()
    {		
    		int c;
    		struct class *cs;
    		cs = NULL;
                    printf("please input class\n");
                    scanf("%d",&c);
    
    		cs =CreatMuch(c,cs);		
    		print(cs);
    		classconnectperson(c,cs);
    		print1(sd);
    
    		printf("creat person successful\n");
    	return 0;
    }
    

    静态创建链表

    #include <stdio.h>
    
    struct person
    {
    	char name[10];
            int chinese;
            int math;
            int english;
    	int sum;
    	struct person *next;
    };
    
    struct class
    {	
    
    	struct class *next1;
    	struct person *head;
    };
    
    int getGrade(struct person *head,int cnt)
    {	
    	struct person *p;
    	int i = 0;
    	++cnt;
    	 p = head;
    	while(p != NULL){
    			++i;
    	 printf("please input b%d%d name:\n",cnt,i);
            scanf("%s",p->name);
            printf("please input b%d%d chinese:\n ",cnt,i);
            scanf("%d",&p->chinese);
             printf("please input b%d%d math:\n ",cnt,i);
            scanf("%d",&p->math);
             printf("please input b%d%d english:\n ",cnt,i);
            scanf("%d",&p->english);
    			p->sum = p->chinese + p->math + p->english;
    			p = p->next;
    				putchar('\n');
    				}
    		return cnt;
    }
    int prin(struct person *head,int cnt)
    {	
    	struct person *p;
    	p=head;
    	++cnt;
    	printf("##############################################%dclass#########################################\n",cnt);
    	while(p!=NULL){
    			printf("%s\n",p->name);
    			printf("chinese:%d math:%d english:%d\n sum:%d\n ",p->chinese,p->math,p->english,p->sum);
    					p=p->next;
    				}   
    
    
    					return cnt;
    }
    
    struct person *getmaxclass(struct person *head)
    {
    	struct person *p;
    		struct person *max;
    	
    		p = head;
    	        max=p;               
    	
    		while(p != NULL){
    				if(max->sum <= p->sum ){
    						max=p;
    						}
    						
    						p=p->next;
    					}
    		return max;
    		
    
    }
    
    struct person *getmax(struct class *head)
    {	
    	struct class *p;
    	p = head;
      	struct person* max1=getmaxclass(p->head);
    	struct person* max2 = getmaxclass(p->next1->head);
    	struct person* max3 = getmaxclass(p->next1->next1->head);
    	struct person* max4 = getmaxclass(p->next1->next1->next1->head);
    	struct person* max5 = getmaxclass(p->next1->next1->next1->next1->head);
    	
    
    	if(max1->sum<=max2->sum)
    	{
    		max1=max2;
    		}	
    	 if(max1->sum<=max3->sum)
    	{
    		max1=max3;
    		}
    		
    	 if(max1->sum<=max4->sum)
            {
                    max1=max4;
                    }
    	 if(max1->sum<=max5->sum)
            {
                    max1=max5;
                    }
    
    	return max1;
    
    
    
    
    }
    
    struct person *getminclass(struct person *head)
    {
            struct person *p;
                    struct person *min;
    
                    p = head;
                    min=p;
    
                    while(p != NULL){
                                    if(min->sum >= p->sum ){
                                                    min=p;
                                                    }
    
                                                    p=p->next;
                                            }
                    return min;
    
    
    }
    struct person *getmin(struct class *head)
    {
            struct class *p;
            p = head;
            struct person* min1=getminclass(p->head);
            struct person* min2 = getminclass(p->next1->head);
            struct person* min3 = getminclass(p->next1->next1->head);
            struct person* min4 = getminclass(p->next1->next1->next1->head);
            struct person* min5 = getminclass(p->next1->next1->next1->next1->head);
    
            if(min1->sum>=min2->sum)
            {
                    min1=min2;
                    }
             if(min1->sum>=min3->sum)
            {
                    min1=min3;
                    }
    
             if(min1->sum>=min4->sum)
            {
                    min1=min4;
            }
             if(min1->sum>=min5->sum)
            {
                    min1=min5;
                    }
    
            return min1;
    
    
    
    
    }
    
    float getave(struct class *head,int cnt)
    {
    		struct class* p;
    		   p=head;
    		int sum=0;
    		float ave;
    	while(p->head!= NULL)
    	{
    		sum+=p->head->sum;
    		p->head=p->head->next;
    			
    		}
    
    	 while(p->next1->head!= NULL)
            {
                    sum+=p->next1->head->sum;
                    p->next1->head=p->next1->head->next;
                    }
    
    	while(p->next1->next1->head!= NULL)
            {
                    sum+=p->next1->next1->head->sum;
                   p->next1->next1->head =p->next1->next1->head->next;
                    }
    
    	 while(p->next1->next1->next1->head!= NULL)
            {
                    sum+=p->next1->next1->next1->head->sum;
                    p->next1->next1->next1->head=p->next1->next1->next1->head->next;
                    }
    
    	while(p->next1->next1->next1->next1->head!= NULL)
            {
                    sum+=p->next1->next1->next1->next1->head->sum;
                    p->next1->next1->next1->next1->head=p->next1->next1->next1->next1->head->next;
                    }
    
    		ave =( (float)sum)/cnt;
    		
    		return ave;
    
    
    
    
    
    
    
    
    
    
    
    }
    
    
    
    int main()
    {	
    	   int cnt = 0;
                int i = 0;
    
    
             struct class B1;
            struct class B2;
            struct class B3;
            struct class B4;
            struct class B5;
    
    	struct person a1 = {"aa",0,0,0,0,NULL};
            struct person a2 = {"aa",0,0,0,0,NULL};
            struct person a3 = {"aa",0,0,0,0,NULL};
            struct person a4 = {"aa",0,0,0,0,NULL};
            struct person a5 = {"aa",0,0,0,0,NULL};
    	
    	struct person b1 = {"aa",0,0,0,0,NULL};
            struct person b2 = {"aa",0,0,0,0,NULL};
            struct person b3 = {"aa",0,0,0,0,NULL};
            struct person b4 = {"aa",0,0,0,0,NULL};
            struct person b5 = {"aa",0,0,0,0,NULL};
    	
    	 struct person c1 = {"aa",0,0,0,0,NULL};
            struct person c2 = {"aa",0,0,0,0,NULL};
            struct person c3 = {"aa",0,0,0,0,NULL};
            struct person c4 = {"aa",0,0,0,0,NULL};
            struct person c5 = {"aa",0,0,0,0,NULL};
    	
    	 struct person d1 = {"aa",0,0,0,0,NULL};
            struct person d2 = {"aa",0,0,0,0,NULL};
            struct person d3 = {"aa",0,0,0,0,NULL};
            struct person d4 = {"aa",0,0,0,0,NULL};
            struct person d5 = {"aa",0,0,0,0,NULL};
    
    	 struct person e1 = {"aa",0,0,0,0,NULL};
            struct person e2 = {"aa",0,0,0,0,NULL};
            struct person e3 = {"aa",0,0,0,0,NULL};
            struct person e4 = {"aa",0,0,0,0,NULL};
            struct person e5 = {"aa",0,0,0,0,NULL};
          		
    		 B1.next1=&B2;
           		 B2.next1=&B3;
           		 B3.next1=&B4;
           		 B4.next1=&B5;
    
    		
    
    		  B1.head = &a1;
    		 a1.next = &a2;
                     a2.next = &a3;
                     a3.next = &a4;
                     a4.next = &a5;
    
    		  B2.head = &b1;
                     b1.next = &b2;
                     b2.next = &b3;
                     b3.next = &b4;
                     b4.next = &b5;
    
    		 B3.head = &c1;
                     c1.next = &c2;
                     c2.next = &c3;
                     c3.next = &c4;
                     c4.next = &c5;
    
    		 B4.head = &d1;
                     d1.next = &d2;
                     d2.next = &d3;
                     d3.next = &d4;
                     d4.next = &d5;
    		 
    		B5.head = &e1;
                     e1.next = &e2;
                     e2.next = &e3;
                     e3.next = &e4;
                     e4.next = &e5;
    
    
    
    
    
    
    		
    
                    cnt=getGrade(B1.head,cnt);
                    cnt= getGrade(B2.head,cnt);
               	cnt= getGrade(B3.head,cnt);
                    cnt= getGrade(B4.head,cnt);
                    cnt= getGrade(B5.head,cnt);
                   
    	
              	i= prin(B1.head,i);
                  	i= prin(B1.next1->head,i);
    		i= prin(B1.next1->next1->head,i);
    		i= prin(B1.next1->next1->next1->head,i);
    		i= prin(B1.next1->next1->next1->next1->head,i);
      		 struct person* min=getmin(&B1);
    		struct person* max=getmax(&B1);
    		float ave=getave(&B1,25);
    	
    printf("max: %s\n  chinese:%d math:%d english:%d max:%d \n",max->name,max->chinese,max->math,max->english,max->sum);
    printf("min: %s\n  chinese:%d math:%d english:%d min:%d \n",min->name,min->chinese,min->math,min->english,min->sum);
    printf("ave:%f\n",ave);
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    	return 0;
    }
    
    展开全文
  • 目前,学校工作繁杂、资料重多,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。根据开发要求,它主要应用于...
  • 怎样在Qt下连接读写sqlite数据库

    千次阅读 2016-11-29 04:59:35
    这里以学生信息的录入与读取来作为演示,主要目的是演示数据库的操作,至于数据的显示等不在演示范围内,请您自行研究。 首先,在Qt中建立一个图形界面的程序项目。 然后,我们在命令行下用...
    1. 这里以学生信息的录入与读取来作为演示,主要目的是演示数据库的操作,至于数据的显示等不在演示范围内,请您自行研究。

      首先,在Qt中建立一个图形界面的程序项目。

      怎样在Qt下连接读写sqlite数据库
    2. 然后,我们在命令行下用sqlite命令创建了数据库 C:\StudentInfo\sutdentdata.db,并且建立了一个数据库表student,该表有四个字段ID、Name、Sex、Age,未向表中添加任何数据。

      关于sqlite的简单使用,可以参考我们的另一篇经验。

      怎样在Qt下连接读写sqlite数据库
    3. 在读写SQLite数据库中,我们最主要用到的是QSqlDatabase类及QSqlQuery类,前者负责创建数据库连接并打开数据库,后者负责执行查询操作。实际上前者也可以进行查询操作并将结果返回给QSqlQuery对象,但是Qt并不建议这么做。

      在干活前,依然是先看看Assitant,这是培养独立解决问题的一个好习惯。

      怎样在Qt下连接读写sqlite数据库
      怎样在Qt下连接读写sqlite数据库
    4. 好,下面给  录入  按钮的点击事件编写代码。关于如何给按钮的某一事件进行编码,可以参考我们另一篇经验。

      首先在.pro文件中加上sql,然后别忘了#include <QSqlDatabase>以及#include <QSqlQuery>。

      好了,下面在录入按钮的槽中加入如下代码:

      QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","wconntosqlite");

          mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

          if(mydb.open())

          {

              QSqlQuery query(mydb);

              QString sqlstr="insert into student (ID,Name,Sex,Age) values ('"

                      +ui->le_id->text()+"','"

                      +ui->le_name->text()+"','"

                      +ui->le_sex->text()+"',"

                      +ui->le_age->text()+")";

              bool isok=query.exec(sqlstr);

              if(isok)

                  qDebug()<<"数据写入成功";

          }

      上面我们先调用了QSqlDatabase的静态函数addDatabase创建了一个名为wconntosqlite的连接。然后给其传递数据库名称。

      如果数据库打开成功,就创建一个关联的QSqlQuery对象,最后由QSqlQuery来执行插入数据工作。

      特别注意:QSqlQuery对象的创建必须在mydb  open成功以后才行,否则会出错。

      我们来看看效果如何。

      怎样在Qt下连接读写sqlite数据库
    5. 我们接着来写查询按钮的代码,输入以下代码:

      QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntosqlite");

          mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");

          if(mydb.open())

          {

              QSqlQuery query(mydb);

              QString sqlstr="select * from student";

              bool isok=query.exec(sqlstr);

              if(isok)

                  qDebug()<<"数据读取成功";

              query.first();

              QString result="学号:"+query.value(0).toString()+"  "

                      +"姓名:"+query.value(1).toString()+"  "

                      +"性别:"+query.value(2).toString()+"  "

                      +"年龄:"+query.value(3).toString();

              ui->lbl_query->setText(result);

          }

      与写入数据基本差不多,这里需要特别注意的是query.first();。看看Assistant怎么说的就知道了。原来,query对象在执行完查询语句后,query的位置被置于一个不可用的位置,如果想从query中获取数据,需要设置query到一个可用的记录中才行。方法有好几种,这里我们用了first()成员函数。

      好,来看看运行结果。

      可以看到软件读取的数据与控制台窗口的数据是一致的。

      怎样在Qt下连接读写sqlite数据库
      怎样在Qt下连接读写sqlite数据库
    6. 我们来总结下Qt操作SQLite数据库的五步走法决:

      第一步,建立一个连接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");

      第二步,关联数据库文件:db.setDatabaseName("这里你的数据库文件路径")

      第三步,打开数据库:db.open()

      第四步,如果数据库打开成功,就建立一个相关联的QSqlQuery对象:QSqlQuery query(db)

      第五步,执行SQL语句:query.exec("你的SQL语句字符串")

    展开全文
  • /*读取telephone.txt文件中的内容创建学生链表*/ ID* create() { ID *head; ID *p1,*p2; p2 = (ID*)malloc(LENTEL); head = p2; FILE *fp; if((fp = fopen("telephone.txt","r")) == NULL) { printf("联系...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...

    索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针.

    数据库索引的设计原则:

    为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。

    那么索引设计原则又是怎样的?

    1.选择唯一性索引

    唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。

    例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。

    如果使用姓名的话,可能存在同名现象,从而降低查询速度。

    2.为经常需要排序、分组和联合操作的字段建立索引

    经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。

    如果为其建立索引,可以有效地避免排序操作。

    3.为常作为查询条件的字段建立索引

    如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,

    为这样的字段建立索引,可以提高整个表的查询速度。

    4.限制索引的数目

    索引的数目不是越多越好。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。

    修改表时,对索引的重构和更新很麻烦。越多的索引,会使更新表变得很浪费时间。

    5.尽量使用数据量少的索引

    如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文

    检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

    6.尽量使用前缀来索引

    如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索

    会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。

    7.删除不再使用或者很少使用的索引

    表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。数据库管理

    员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。

    8.小表不应建立索引;包含大量的列并且不需要搜索非空值的时候可以考虑不建索引

    ----------------------------------------------------------

    mysql索引相关小常识:

    一、 经常被用来过滤记录的字段。

    1. primary key 字段, 系统自动创建主键的索引;

    2. unique key 字段,系统自动创建对应的索引;

    3. foreign key 约束所定义的作为外键的字段;

    4. 在查询中用来连接表的字段;

    5. 经常用来作为排序(order by 的字段)基准的字段;

    二、索引会占用磁盘空间,创建不必要的索引只会形成浪费。

    三、索引的创建必须考虑数据的操作方式。

    1.内容很少变动,经常被查询,为它多创建几个索引無所谓;

    2.经常性,例行性变动的表而言,则需要谨慎地创建确实必要的索引;

    四、primary key 和 unique key的区别

    1. 作为Primary Key的域/域组不能为null。而Unique Key可以。

    2. 在一个表中只能有一个Primary Key,而多个Unique Key可以同时存在。

    更大的区别在逻辑设计上, Primary Key一般在逻辑设计中用作记录标识,这也是设置

    Primary Key的本来用意, 而Unique Key只是为了保证域/域组的唯一性。

    五、复合索引和单一索引

    复合索引是指多字段联合索引,查询时经常需要这几个字段组合一起为条件再查询

    唯一索引主要是用主键ID索引,存储结构顺序与物理结构一致

    如:create  index  idx  on  tbl(a,b)

    先按a排序, a相同的按b排序,所以当你查a或ab的时候,

    能够利用到这个索引.但当你只查b的时候,索引对你的帮助不大.可能可以跳跃查找.

    ---------------------------------------------

    添加和删除索引的情况:

    1、表的主键、外键必须有索引;

    2、数据量超过300w的表应该有索引;

    3、经常与其他表进行连接的表,在连接字段上应该建立索引;

    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

    5、索引应该建在选择性高的字段上;

    6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

    7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

    A、正确选择复合索引中的主列字段,一般是选择性较好的字段;

    B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;

    C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

    D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;

    E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

    8、频繁进行数据操作的表,不要建立太多的索引;

    9、删除无用的索引,避免对执行计划造成负面影响;

    展开全文
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段...为该字段建立唯一性索引可以很快的确定某个学生信息
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则...例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。...
  • 索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针....例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如...
  • 一、数据库索引的设计...例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。主键索引和唯一键索引,在查询中使...
  • SQL语言学习工作总结范文 ... 之后我们参照着原代码做了《学生信息管理系统》,大概用了七天的时间。刚开始做的时候,觉得这个工程肯定会挺复杂的。但是做着做着感觉也就是那么回事。无非就是对几张的操作。做?..
  • SQL语言学习总结.doc

    2020-12-27 10:15:09
     之后我们参照着原代码做了《学生信息管理系统》,大概用了七天的时间。刚开始做的时候,觉得这个工程肯定会挺复杂的。但是做着做着感觉也就是那么回事。无非就是对几张的操作。做这个工程最大的收获就是对刚学的...
  • 疯狂JAVA讲义

    2014-10-17 13:35:01
    学生提问:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 141 5.5.2 构造器的重载 142 学生提问:为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器...
  • MYSQL网络数据库PDF学习资源

    热门讨论 2009-08-09 19:56:31
    3.4 创建、删除、索引和更改 102 3.4.1 CREATE TABLE语句 102 3.4.2 DROP TABLE 语句 106 3.4.3 创建和删除索引 106 3.4.4 ALTER TABLE语句 109 3.5 获取数据库和的有关信息 111 3.6 检索记录 112 3.6.1 平凡...
  • 实例005 怎样在添加对话框资源时创建对话框类 实例006 在工作区中管理多个工程 实例007 创建MFC ActiveX工程 实例008 创建ATL工程 实例009 创建控制台应用程序 1.2 开发环境设置与使用 实例010 怎样定制自己...
  • 实例005 怎样在添加对话框资源时创建对话框类 实例006 在工作区中管理多个工程 实例007 创建MFC ActiveX工程 实例008 创建ATL工程 实例009 创建控制台应用程序 1.2 开发环境设置与使用 实例010 怎样定制自己...
  • 本书适合大学计算机专业的学生、研究生及相关人员参考。   “这本众人期待的确达到了预期的全部效果。该书云集了经过时间考验的可用设计。作者从多年的面向对象设计经验中精选了23个模式,这构成了该书的精华部份,...
  • UML数据库设计应用 pdf

    热门讨论 2010-06-03 16:19:55
    7.5.1 从类中创建表 95 7.5.2 背景信息 95 7.5.3 基本评估跟踪 95 7.5.4 完整评估数据 96 7.5.5 数据库视图 102 7.6 小结 104 第8章 数据库的物理实现 105 8.1 工作流程 105 8.1.1 使用先前创建的建模要素 106 8.1.2...
  • C#开发典型模块大全

    2014-03-12 18:11:22
    23.2.5 使用Hashtable(哈希)记录版本号及更新信息 614 23.3 类库设计过程 615 23.4 服务器端设计过程 621 23.4.1 服务器端主窗体预览 621 23.4.2 连接FTP服务器 622 23.4.3 向FTP服务器上传新版本 623...
  • 实例265 怎样调用外部的EXE文件 361 实例266 关闭外部已开启的程序 362 7.10 程序运行 363 实例267 防止程序多次运行 363 实例268 程序运行时禁止关机 364 实例269 获取任务栏尺寸大小 365 实例270 改变系统提示信息...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面...实例265 怎样调用外部的EXE文件 361 实例266 关闭外部已开启的程序 362 7.10 程序运行 363 实例267 防止程序多次运行 363 实例...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面...实例265 怎样调用外部的EXE文件 361 实例266 关闭外部已开启的程序 362 7.10 程序运行 363 实例267 防止程序多次运行 363 实例...
  • 一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面...实例265 怎样调用外部的EXE文件 361 实例266 关闭外部已开启的程序 362 7.10 程序运行 363 实例267 防止程序多次运行 363 实例...
  • 一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面...实例265 怎样调用外部的EXE文件 361 实例266 关闭外部已开启的程序 362 7.10 程序运行 363 实例267 防止程序多次运行 363 实例...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

怎样创建学生信息表