发表于: 2017-03-28 22:39:01
6 1330
一、今日完成事项:
1.画UML图

2.命令行查看mysql版本号.
$ mysql -V
V要大写

// 可见当前mysql版本是5.6.24
2.1 解决: [-bash: mysql: command not found]
2.2 解决: Linux命令"Permission denied"
此类问题出现原因:
因为系统会默认查找"/usr/bin"下的命令, 若该命令不在此目录下, 自然就会报command not found错误.
解决方案: 创建一个软链接, 将命令的路径映射到"/usr/bin"下.
$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
sudo的作用是使当前命令获取管理员权限, 因为之前执行此命令时提示"permission denied".
3.下载Navicat for mysql, 并连接mysql.

同eclipse内的连接方法相同, 这里就不赘述了.
4.创建业务表
4.1 创建学员表student
CREATE TABLE student (
/*学员id*/
stu_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
stu_name VARCHAR (10),
/*毕业院校*/
school VARCHAR (50),
/*所在班级*/
class INT,
/*学员来源*/
source VARCHAR (50),
qq_num LONG
);
4.1.1 解决: [there can be only one auto column and it must be defined as a key]
错误成因:
建表时某列设置为非空自增, 却没有设置为主键(primary key).
解决办法:
将其设置为主键即可.
4.2 创建报名表enrollment
CREATE TABLE enrollment (
/*报名表id*/
form_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
/*学员id*/
stu_id INT,
/*报名期数*/
entry_num INT,
/*预计入学时间*/
enroll_date DATE,
/*日报链接*/
link VARCHAR(100),
/*立愿*/
desire VARCHAR(100),
/*引荐人*/
recommender VARCHAR(10),
/*缴费与否*/
pay_or_not TINYINT(1)
);
注: mysql中的boolean类型实际为tinyint(1)型的.
4.3 创建审核人表verifier
略, 同上.
5.使用Navicat创建表, 并添加字段.
用navicat设计mysql数据库,数据库要有三个基本的字段,ID(自增Long),create_at,update_at(所有的时间都用Long).
5.1 问题: [数据库的基本字段? 是不是说表的基本字段呢?]
这里不太理解, 经过查询依旧一头雾水...没看到有数据库的基本字段这种概念啊, 我印象中只有表有字段这个概念啊?
不懂, 希望有前辈可以帮忙点拨一下.
5.2 使用Navicat建个表, 并为其添加三个字段, ID(自增Long), create_at, update_at(所有时间都用Long).

注:
mysql中Long型即为bigint型.
图中"1"处可为字段添加自增功能.
图中"2"处可以删除字段.
6.插入记录 - Insert.
6.1 在"报名表"enrollment中插入记录.
INSERT INTO enrollment(stu_id, entry_num, enroll_date, link, desire, recommender, pay_or_not) VALUES(9391, 21, "2017-3-20", "http://www.jnshu.com/daily/16899?uid=9391", "如果我不能在IT特训营拼尽全力,为自己以后的修行路上打好基础,让别人踩一辈子!", "xx", 0);

6.1.1 解决: [如何使用Navicat查询字段类型?]
选中表后, 点击"文件" -> "设计表..." 即可.
6.1.2 解决: [Incorrect string value: '\xE9\xAB\x98\xE9\xAB\x98']

发现只要是有汉字的字段都会报这个错, 估计是编码问题...
将数据库的编码方式修改为"utf-8"后, 重新建了表, 问题解决.
6.2 在"学员表"student中插入记录.
INSERT INTO student VALUES(9391, "李博文", "吉林化工学院", 26, "知乎", 187003594);

6.3 根据姓名查询学员记录.
select s.stu_name, s.school, s.qq_num, e.enroll_date, e.link, e.desire from student s, enrollment e where s.stu_id = e.stu_id;

6.3.1 关联查询 - 等值连接
SELECT b.book_id, b.book_title, p.book_price FROM t_books b, t_price p WHERE b.book_title = p.book_title;
7.分别使用SQL语句和Navicat修改记录.
// update语句修改记录
update enrollment set desire = "老大最帅!" where form_id = 1;
Navicat直接在表上该即可.
8.导出表, 并分别使用SQL语句和Navicat删除记录.
8.1 如何导出表?
Navicat:
在表上右键选择 "转储SQL文件" -> "结构+数据..." 即可导出该表的SQL文件.
8.2 使用SQL语句删除记录
delete from enrollment where stu_id = 9391;
8.3 使用Navicat删除记录

二、明日计划:
任务1.9~1.15, 大概是学习数据库索引、配置Maven和IDEA, 并创建一个Maven工程.
三、遇到的问题:
1. [-bash: mysql: command not found]
2. [Linux命令"Permission denied"]
以上均通过百度解决.
四、收获:
1. 对类图增加了些了解;
2. 了解了些Linux命令, 如: 通过命令行查看mysql版本; 获取管理员权限.
3. mysql基本语法: 创建表、插入\删除记录、修改记录; 部分了解关联查询.
4. 对Navicat有了初步的熟悉.
评论