精华内容
下载资源
问答
  • 实验楼之一个简单的课程数据库

    千次阅读 2017-10-18 21:03:53
    看这时候并不知道csv文件是什么,去百度了一下,顺便又搜了一下将这类文件导入mysql数据库方法。 这篇文章介绍了从linux和windows情况下分别导入情况:...

    看这个题的时候并不知道csv文件是什么,去百度了一下,顺便又搜了一下将这类文件导入mysql数据库中的方法。
    这篇文章介绍了从linux和windows情况下分别导入的情况:http://blog.chinaunix.net/uid-23284114-id-3196638.html,非常感谢这位博主的分享

    好了,开始做题。


    首先题目说明,服务器中的MySQL还未启动,同时告知了root账户的密码为空,所以第一要务先开启mysql服务

    service mysql start

    第二步当然就是就入到数据库中操作啦,不进去怎么往下进行呢,是吧。
    题目说啦,要先创建一个名称为实验楼的数据库

    create database shiyanlou;

    选择数据库,根据题目要求创建三个表(这里没有要求,属性相对设置简单点)

    create table `user`(
    `id` int primary key,
    `name` char(32) not null
    )charset=utf8;
    create table `course`(
    `id` int primary key,
    `name` char(32) not null
    )charset=utf8;

    咳咳,补充一下,这个地方我忘记直接加外键怎么弄得了,我做的时候是在外面弄得

    create table `usercourse`(
    `user_id` int not null,
    `course_id` int not null,
    `study_id` int not null
    )charset=utf8;

    添加外键

    语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

    alter table usercourse add constraint FK_1 foreign key(user_id) REFERENCES user(id)
    alter table usercourse add constraint FK_2 foreign key(course_id) REFERENCES course(id)

    其中constraint FK_1 也可以不写,会默认起一个名字

    表已经创建好了,下一步就是将提供的文件下载下来。命令已经给好,可以直接用。
    下载好了之后需要解压,因为是zip文件,所以使用unzip解压缩

    unzip loudatabase.zip

    哦,对,还有用户没添加,那就先添加用户吧,反正我是操作完表之后再添加的用户,应该差不太多吧。
    按照题目要求,添加一个用户名和密码都为shiyanlou的数据库

    create user 'shiyanlou'@'localhost' identified by 'shiyanlou';

    要求有可读可写权限,好吧

    grant all privileges on shiyanlou.* to 'shiyanlou'@'localhost';

    在此我是给了这个用户对于shiyanlou数据库的所有权限,all可以替换为select,update,insert,deleteshiyanlou.* 后面的.* 不能省略的,详情参考mysql手册

    下一步就是将csv文件导入数据库中所对应的表中
    再次感谢上面那位博主的分享。

    load data infile '/home/shiyanlou/loudatabase/shiyanlou_usercourse.csv'   --后面所导入的文件路径
    into table usercourse                                                     --选择表
    character set utf8                                                        --这个地方是防止中文乱码
    fields terminated by ','                                                  --以什么作为分割符
    enclosed by '"';                                                          --被什么包围

    三个表中的数据都是同一种导入方法,表名和路径名一一对应即可

    同时附带一下windows情况下的导入

    LOAD DATA INFILE "d:/insert_data.csv"
     REPLACE INTO TABLE DEMO
     CHARACTER SET gb2312
     FIELDS TERMINATED BY "," ENCLOSED BY ""
     LINES TERMINATED BY "\r\n";                                              --这个地方和linux不一样

    提交,game over!!!
    收官
    哈哈


    • 附加上在windows下将csv文件导入数据库
      1.首先我在任意D盘根目录创建一个文件,路径D:\test.csv
    $ touch test.csv
    $ vim test.csv
    1,aa,aa
    2,aa,aa
    3,bb,bb
    4,bb,bb

    2.开启MySQL服务,我用的是phpstudy,启动mysql服务就好了,之后ctrl+R->cmd,连接数据库:

    > mysql -u xxx -p xxx

    3.选择数据库,选择数据表,导入数据

    mysql>show databases;
    mysql>use test;
    mysql>show tables;
    mysql># csv文件中的值与表字段的类型应相同
    mysql>load data infile 'D:/test.csv'
    mysql>replace into user
    mysql>charscter set utf8
    mysql>fields terminated by ',' enclosed by ''
    mysql>lines terminated by '\r\n';
    

    执行结果:

    Query OK,4 rows affected(0.04sec)
    Records: 4  Deleted: 0  Skipped:  0  Warnings: 0

    执行的时候可能会报错:

    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

    这是权限问题,打开mysql的配置文件,mysql.ini,在最后一行添上secure_file_priv=D:/ #后面跟你允许的目录,之后重启mysql服务即可。

    /* 2017/12/9 16:46 */
    /* 等过两天我在补充如何将mysql数据表导出csv文件 */

    展开全文
  • 简单的图书管理系统,JAVA课程设计,数据库操作方面,带有简单的用户操作界面。
  • 数据库课程设计-一个简单的DBMS系统1 数据库课程设计-一个简单的DBMS系统1
  • 数据库课程设计-一个简单的DBMS系统2 数据库课程设计-一个简单的DBMS系统2
  • dbproject库 ZJU CS-DB课程中的一个简单的图书馆数据库系统项目
  • 一个简单数据库系统

    2014-01-13 10:22:40
    使用C++便也的简单数据库系统,是本、专科大学生及研究生学习数据库及计算机语言课程的实用参考范例
  • 自己做的一个超级简单的一个餐饮收费系统,压缩包里有数据库,有java源代码,有实验报告,有运行界面··有连接···功能主要有点菜,账单查询等等,总之是一个非常简单的系统,可以作为小型课程试验作业~~~~~
  • 简单数据库 此仓库中提供了所有6.830实验的代码。 设置好您的课程资料库后,您就可以从此处提取实验室代码了。 回购设置说明 方向可以在 实验室提交 有关实验室的说明(包括如何提交答案)在
  • 伯克利大学的数据库作业:实现一个简单的数据库管理系统 您可以在获得更多详细信息和我的博客(中文版): : (请参阅README中的英文版本) API变更 在Pro1中,我更改了几种方法的参数 在Pro3中,我更改了...
  • 这是一个完美课程设计做的一个简单的新闻发布系统,开发工具是VS2005,数据库采用的是Sql Server
  • 【Python】一个简单的爬取万方数据库的论文 源代码地址:点我进入GitHub项目网址. 因为课程需要,需要爬取某个领域文章的关键字以及作者等基础信息,因此写了一段简单的小爬虫来获取一些基础信息并存储在excel表格...

    【Python】一个简单的爬取万方数据库文章基础信息的爬虫

    源代码地址:点我进入GitHub项目网址.

    因为课程需要,需要爬取某个领域文章的关键字以及作者等基础信息,因此写了一段简单的小爬虫来获取一些基础信息并存储在excel表格中,由于懒得和知网的反爬周旋以及偶然发现万方并不限制爬虫(可能不是那么强),所以转战万方爬取。速度大概是2小时5万篇,接下来会进行改进,加快速度,希望大家支持~

    需要的库

    • pandas
    • numpy
    • bs4
    • urllib.request
    • csv,codecs
    • xlsxwriter
    • re
    • random
    • os
    • time

    分析网页

    首先打开万方知识库,随便搜索一个关键词,如互联网,进入搜索结果界面:

    可以看到这个页面包含我们想要获取的所有信息:作者、题目、关键字。 第一步,我们想知道翻页的机制,首先点击第二页,先看网页的url有没有变化,发现由http://s.wanfangdata.com.cn/Paper.aspx?q=%E4%BA%92%E8%81%94%E7%BD%91&f=top&p=变为http://s.wanfangdata.com.cn/Paper.aspx?q=%E4%BA%92%E8%81%94%E7%BD%91&f=top&p=2,也就是说万方的url的翻页机制的关键是p=‘num’,这个num就是对应的页码。
    了解了翻页机制后,我们就可以查看网页源代码,看看我们需要的信息在哪里:

    在知道了以上信息后就可以编写爬取的代码了。

    关键代码

    发送请求

            head = random.choice(user_agents) //随机选择user_agents
    				kv = {'User-Agent':head}
    				url = url_original+ str(i)
    				resp = urlrequest.Request(url,headers =kv)
    				urlrequest.install_opener(opener)
    				paper_content = urlrequest.urlopen(resp).read()
    

    BS

    然后使用BeautifulSoup对网页进行解析:

            			paper_html = paper_content.decode('utf-8')
    				paper_soup = BeautifulSoup(paper_html,'html.parser')
    				paper_title_list = []
    

    爬取

    		for paper in allpaper_list:
    					paper_data = paper.find(class_='record-title')
    					paper_title = paper_data.find('a',class_='title')
    					paper_title_str = str(paper_title)
    					paper_title_string = re.findall(re_words,paper_title_str)
    

    使用中间一段爬取title的过程为例,发现源代码中的标题放在<record-title>下的<title>标签下,于是采取find方法提取内容。

    反爬

    使用代理限制爬取频率这两种办法
    Python proxy = random.choice(proxy_list)构建一个代理池,每次爬取时随即使用一个ip,防止被反爬。
    Python time.sleep(3)每一次爬取时可以限制速率,每爬取一次暂停3秒钟,如果想获得更好的伪装,可以使用随机数暂停时间。

    这个是比较老的版本,更快的新版本再稍后上传,上课之前码字,比较仓促。

    展开全文
  • 数据库gradesystem分别有三张表分别用来记录学生信息(student)、课程信息(course)、成绩信息(mark)。 student包含3列:sid(主键)、sname、gender; course包含2列:cid(主键)、cname; mark包含4列:mid...

    数据库gradesystem分别有三张表分别用来记录学生信息(student)、课程信息(course)、成绩信息(mark)。

    • student包含3列:sid(主键)、sname、gender;
    • course包含2列:cid(主键)、cname;
    • mark包含4列:mid(主键)、sid、cid、score。

    首先创建数据库,前面已经说过了,不赘述。然后建表:

    //student
    CREATE TABLE student(
    sid int NOT NULL AUTO_INCREMENT,
    sname varchar(20) NOT NULL,
    gender varchar(10) NOT NULL,
    PRIMARY KEY(sid)
    );
    //course
    CREATE TABLE course(
    cid int NOT NULL AUTO_INCREMENT,
    cname varchar(20) NOT NULL,
    PRIMARY KEY(cid)
    );
    //mark
    CREATE TABLE mark(
    mid int NOT NULL AUTO_INCREMENT,
    sid int NOT NULL,
    cid int NOT NULL,
    score int NOT NULL,
    PRIMARY KEY(mid),
    FOREIGN KEY(sid) REFERENCES student(sid),
    FOREIGN KEY(cid) REFERENCES course(cid)
    );
    

    建表完成插入数据:

    INSERT INTO student VALUES(1,'Tom','male'),(2,'Jack','male'),(3,'Rose','female');
    
    INSERT INTO course VALUES(1,'math'),(2,'physics'),(3,'chemistry');
    
    INSERT INTO mark VALUES(1,1,1,80),(2,2,1,85),(3,3,1,90),(4,1,2,60),(5,2,2,90),(6,3,2,75),(7,1,3,95),(8,2,3,75),(9,3,3,85);
    

    这样一个简易的沉积管理系统数据库就搭建完成了,我们输入命令select * from mark查看表内容如下图所示:
    在这里插入图片描述

    展开全文
  • 一,系统功能结构分析 用户管理:可以对用户的...(其实就是一个树形结构的课程目录管理) 课程管理:可以对课程进行增删改查操作,并且只有拥有相关权限的人才可以进行管理。 系统公共信息:是用来让管理员发布通...

    一,系统功能结构分析

    在这里插入图片描述

    • 用户管理:可以对用户的基本信息进行维护。
    • 角色管理:可以将不同的用户分为不同的角色。
    • 权限管理:不同等级的角色会有不同的权限范围。
    • 课程目录管理:管理员为不同课程根据课程分类有效的组织课程,并可以对目录进行增删改查操作。(其实就是一个树形结构的课程目录管理)
    • 课程管理:可以对课程进行增删改查操作,并且只有拥有相关权限的人才可以进行管理。
    • 系统公共信息:是用来让管理员发布通知等。

    二,数据库的设计

    用户管理——>用户表 管理员——>管理员表
    角色管理——>角色表
    权限管理——>权限表 角色权限——>角色权限表
    课程目录管理——>课程目录表
    课程管理——>课程表
    课程类型——>课程类型表
    课程评论——>课程评论表

    根据上边的设计可以算是一个简单的网上课堂的数据库设计了

    1. 为什么还需要重新维护一个管理员表?
      因为管理员是由后台产生的,可以通过后台给某个用户管理员权限。通过管理员表来对管理员用户进行维护(增删改查)。
    2. 怎么解决课程嵌套问题?
      就是根据课程目录管理中的一个parentId来实现课程树
    3. 为什么不给用户表后直接加上应有的权限,反而多设计了一个角色表?
      如下图
      第一步猜想,直接给每个用户写下他们对应的权限
      在这里插入图片描述
      很明显,这样是行不通的,我又想到了Set集合,和Enum枚举
      在这里插入图片描述
      当然,使用枚举和集合会比那些一个一个的添加上去好的多,但是又没有想过如果某一类权限表发生了变化,那岂不是相关的用户都要进行修改权限,如果项目数据小还好,如果项目数据大就是一件很大的工程了。(比如我们新开发了一个功能——教师互评(此权限限制只能是教师才可以参与互评)这就得给教师这一类角色加上这个权限)

    在这里插入图片描述
    如果我们改为上表对应关系的话,是不是这个问题就迎刃而解了,至于要在角色权限表中加一条数据就ok了。

    其实再角色权限表用不用外键都行,因为这些都基本是长时间不会变动的一些属性。

    数据表的设计

    下边将以伪代码来写一写数据表的结构设计

    1. role表
    create table role(
    	     id int(5) unique not null auto)increment,
    	     name varchar(10),
    	     constraint pk_id primary key(id)
    );
    

    下表都是初始化数据

    id name
    1 普通用户
    2 老师
    3 管理员
    1. authority表
    create table authority (
    		id int(5) unique not null primary key auto_increment,
    		name varchar(20) not null
    
    );
    
    id name
    1 课程增加权限(管理)
    2 课程删除权限(管理)
    5 视频上传(管理,老师)
    6 目录修改(管理,老师)
    10 评论(本人,管理)
    11 删除评论(本人,管理)
    1. role_authority表
    create table role_authority(
    
    		id int(5) not null unique ,
    		rid int (5) not null ,
    		aids set not null,
    		constraint pk_id primary key(id)
    );
    

    初始化好role和authority的对应

    1. user表
    create table user(
    		id int(5) ...... pk,
    		name varchar(20) ....,
    		....
    		rid int(5) ,
    		#设置外键约束
    		constraint fk_rid foreign key(id) references role(id);
    
    );
    
    1. admin表
    create table admin(
    		id int(5) ... pk,
    		name....,
    		password ....,
    		userId int(5),
    		#设置外键约束
    		constraint fk_uid foreign key (userId)  references user(id);
    );
    
    1. courseCatalog表
    create table courseCatalog(
    		id ... pk,
    		name ...,
    		#用来记录分类关系是分类表的重点
    		parentId int(5),
    		description ....
    );
    
    

    上边的课程分类表的核心就是parnetId,可以利用parentId来进行课程的树状分类,当parentId为null时,那么它就是这个课程的最终的大分类。如下图
    在这里插入图片描述

    1. mediaType表
      描述的是那种格式的课程
    create table mediaType(
    		id int(5) .....pk,
    		name ....,
    		maxlength .....,
    		......
    );
    
    
    1. course表
      course的主要信息如下伪代码
    create table course (
    		id ....pk,
    		name ....,
    		......
    		mediaTypeId int(5),
    		date datetime,
    		userId int(5)
    		.....
    );
    
    1. comment表
      用户评论表
    create table comment(
    		id int(5) ...pk,
    		content varchar(100) ,
    		#记录那个用户的评论
    		userId int(5),
    		editTime datetime,
    		deleteTime datetime,
    		......
    
    );
    
    

    这样一个简单的网上课堂数据库系统就设计出来了,当然如果我们想要更好的使用的话,可以对数据库建立索引,建立视图,并且也可以对一些相关联的数据设计触发器,这些都很简单,根据需求来定。

    数据库优化策略

    1. 可以利用索引来加快查找速度
    2. 可以利用视图来限制访问信息
    3. 可以建立触发器来让数据完整性得到保证
    4. 当然有需要的话也可以设计函数和存储过程来简化我们的业务操作

    这就是对这个案例的简单设计,以后在实战项目中也会进行实战数据库分析!

    展开全文
  • 一个用于数据库课程设计的简单博客应用程序。 前端 HTML 基于 bootstrap v3。 大多数逻辑处理通过 jQuery 实现,并通过 AJAX 技术传递数据。 后台程序由Java servlet 实现。 这是一个使用 Java servlet 和 MySQL ...
  • 程序比较简单,从要求来看就是登录、查询、增、删、汇总等操作,数据库我熟悉只有SQL Express 2008,用CB2010来写,ADOQuery1的数据库连接里面设置服务器只能是:本机名\SQLExpress(如果我没记错话),用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,662
精华内容 664
关键字:

一个简单的课程数据库