0
点赞
收藏
分享

微信扫一扫

阿昆同学的Java学习日记Day1

elvinyang 2022-04-22 阅读 98
mysql

学完了Java基础语法后,工作了一年的老哥准备把我搞到公司里头去,于是就让我看Javaweb的相关知识,跟着网课一步一步学到了开始需要实操的部分-Mysql数据库管理系统安装,别人偷懒说Mysql说成Mysql数据库,但是为了巩固上课内容,我还是叫Mysql数据库管理系统吧!

看着老师操作总是非常的简单,但是有了前面在Ideal中配置Maven和Tomcat的折磨经验后,我已经做好了配置Mysql继续受到折磨的心里准备,有空再回忆回忆配置Maven和Tomcat到底遭受了什么折磨。安装过程一切顺利,配置环境变量也一切顺利。一开始新建、选择、退出、查询数据库时都一切顺利,我逐渐放松下来,这玩意还挺简单的。直到老师开始讲起查询语句时,想查询语句时肯定要先有一个表嘛,于是乎我开始新建第一个表。当我一气呵成的打出

CREATE TABLE stu(
id int, -- 编号
name varchar(20), -- 姓名
age int, --年龄
sex varchar(5), -- 性别
address varchar(100), -- 地址
math double(5,2), --数学成绩
english double(5,2), --英语成绩
hire_data data --入学时间
);

并按下回车时:

ERROR 1046 (3D000): No database selected

?看到报错我就麻了,以为是我自己哪个地方中英文输入法没切换导致的输入错误(不会看报错提示真的笨),然后又在命令行重新输入了一遍,还是报错,我以为还是不对,于是在VScode里又手打了一遍复制进去还是报错。心态直接就崩了,这时候才想起来看错误提示,select?select啥意思来着?噢噢噢噢懂了,mdzz,我连进哪个库都没选创建个冒险表啊。然后打算新建一个数据库,还是一气呵成的输入

create databass if not exists study;

回车,回TMD

ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'databass if not exists 'study'' at line 1

心脏骤停,不过这次学乖了,知道看报错提示了,语法错误,仔细回头看看,噢噢噢噢懂了,database打成了databass,改完之后database这个单词又打错了三遍,我怀疑自己的键盘有问题,不过也有可能是我的手指身法太快,键盘还没识别我的纤纤玉指就离开了键盘。感受一下我的coding速度吧。

mysql> create databse db1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databse db1' at line 1
mysql> create databss tudy1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databss tudy1' at line 1
mysql> create database stud1;
Query OK, 1 row affected (0.00 sec)

当这个OK出现之后,时间已经过去半个小时了。学习真是让人身心愉悦,时间过得真的很快,接下来的就是创建表了,好嘛,吃一堑长一智,上次没选数据库直接创建表,这次选好数据库再创建,一气呵成的敲下代码

mysql> CREATE TABLE stu(
-> id int, -- 编号
-> name varchar(20), -- 姓名
-> age int, --年龄
-> sex varchar(5), -- 性别
-> address varchar(100), -- 地址
-> math double(5,2), --数学成绩
-> english double(5,2), --英语成绩
-> hire_data data --入学时间
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--年龄
sex varchar(5),
address varchar(100),
math double(5,2), -'
at line 4

??又是语法错误,第四行的“-”吗?删掉了所有注释再输一遍

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data

???data哪里错了?hire_data有什么毛病吗?删掉_data再试一遍还是同样的报错提示,再仔细检查一下,噢噢噢噢懂了,又是单词打错了,不是data是date。改掉创建表成功

下一步就是往表里面填数据了,一气呵成的输入

 insert into stu(id,name,age,sex,address,math,english,hire_data)
-> values
-> (1,'**',55,'男','杭州',66,78,'1995-09-01'),
-> (2,'***',45,'女','深圳',98,87,'1998-09-01'),
-> (2,'***',55,'男','香港',56,77,'1999-09-02'),
-> (2,'**',20,'女','湖南',76,65,'1997-09-05'),
-> (2,'**',20,'男','湖南',86,NULL,'1998-05-01'),
-> (2,'***',57,'男','香港',99,99,'1998-09-01'),
-> (2,'***',22,'女','香港',99,99,'1998-09-01'),
-> (2,'****',18,'男','南京',56,65,'1994-09-02');
ERROR 1366 (HY000): Incorrect string value: '\xC2\xED\xD4\xC6' for column 'name' at row 1

????不正确的字符串值?那里不正确了?汉字不是字符串了?这个属实整不会了,百度百度,噢噢噢噢懂了,原来是编码格式啊,看了一下编码格式,latine格式,配置文件改一改就行了,等等,我配置文件不是改过了吗?再重新改一下,重启Mysql,再填数据,还是报同样的错误。

打开CSDN,终于发现一位大佬的回答解决了这个问题,输入

mysql> show create table stu;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stu | CREATE TABLE `stu` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`sex` varchar(5) CHARACTER SET latin1 DEFAULT NULL,
`address` varchar(100) CHARACTER SET latin1 DEFAULT NULL,
`math` double(5,2) DEFAULT NULL,
`english` double(5,2) DEFAULT NULL,
`hire_data` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

原来是表的行和列字符串没有改编码格式,再输入:

alter table 表名称 列名称 列名称 数据类型 () character set utf8;

mysql> alter table stu change name name varchar(20) character set utf8;

后面需要改的都是这个格式,一气呵成输入数据,接着

mysql> select * from stu;
+------+--------------+------+------+---------+-------+---------+------------+
| id | name | age | sex | address | math | english | hire_data |
+------+--------------+------+------+---------+-------+---------+------------+
| 1 | ** | 55 || 杭州 | 66.00 | 78.00 | 1995-09-01 |
| 2 | *** | 45 || 深圳 | 98.00 | 87.00 | 1998-09-01 |
| 3 | *** | 55 || 香港 | 56.00 | 77.00 | 1999-09-02 |
| 4 | ** | 20 || 湖南 | 76.00 | 65.00 | 1997-09-05 |
| 5 | ** | 20 || 湖南 | 86.00 | NULL | 1998-05-01 |
| 6 | *** | 57 || 香港 | 99.00 | 99.00 | 1998-09-01 |
| 7 | *** | 22 || 香港 | 99.00 | 99.00 | 1998-09-01 |
| 8 | **** | 18 || 南京 | 56.00 | 65.00 | 1994-09-02 |
+------+--------------+------+------+---------+-------+---------+------------+
8 rows in set (0.00 sec)

泪目。这时间,已经过去一个小时的。不过万事开头难,往后越来越难,今天的学习就到这里了。

举报

相关推荐

0 条评论