实验楼之一个简单的课程数据库
来源:互联网 发布:匕首cad图纸数据 编辑:程序博客网 时间:2024/05/16 11:56
看这个题的时候并不知道csv文件是什么,去百度了一下,顺便又搜了一下将这类文件导入mysql数据库中的方法。
这篇文章介绍了从linux和windows情况下分别导入的情况:http://blog.chinaunix.net/uid-23284114-id-3196638.html,非常感谢这位博主的分享
好了,开始做题。
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,delete
,shiyanlou.*
后面的.*
不能省略的,详情参考mysql手册
再次感谢上面那位博主的分享。
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.csv1,aa,aa2,aa,aa3,bb,bb4,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 usermysql>charscter set utf8mysql>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文件 */
- 实验楼之一个简单的课程数据库
- MySQL系列课程之一数据库的介绍
- javascript 之一个简单的画图demo
- kafka之一个简单的producer
- linux之一个简单的shell程序
- jsp之一个简单的计算器
- SpringMVC之一个简单的例子
- HTML5之一个简单的登录界面
- 实验楼课程列表
- 简单的shell实验(db2数据库)
- OpenGL编程轻松入门之一个简单的例子
- mysql存储过程之一个简单的存储过程
- EXTJS4.x之一个简单的主界面
- android博客开篇之一个简单的秒表
- Android之一个简单的进度条工具类
- EPICS之一个简单的设备支持程序
- JVMTI开发教程之一个简单的Agent
- Android开发之一个简单的通讯录实现(源码)
- 1035. Password (20)
- 基于51的1602时钟显示
- Spring boot打包部署
- effective java(13) 之使类和成员的可访问性最小化
- $.ajax()方法详解
- 实验楼之一个简单的课程数据库
- Oracle中before触发器中伪列的使用
- 数据类型
- Windows编程基础--第2节 win32程序资源管理
- shell编程学习(一)
- Java内省的学习
- Hdu 2053 Switch Game 推结论? 找规律?解题报告
- RxJava——第一个小程序HelloWorld
- Day2