前言
这次的作业需要我建立一个小的数据库。
这次作业我使用了mysql,进行了建库、建表、查询、插入等操作。
本文是对本次作业相关的mysql操作过程及过程中出现的问题的记录。
另一篇文章(详情请点击)介绍了如何使用pymysql连接该数据库并使用Flask搭建后端接口,响应前端的GET和POST请求。
正文
作业中对数据库的要求是:
- 建立一个用户信息表,其包括用户名、密码、手机号、邮箱和手机号等属性,并向其中插入几条测试数据。
登录数据库
因为挺久没用数据库,就先测试下自己之前装的mysql还能不能用,于是打开CMD运行如下指令:
1 | mysql |
出现如下错误:
1 | ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) |
看起来是因为没输密码
所以输入密码,运行如下指令:
1 | mysql -u root -p |
-u
参数是指username、user之类的,即用户名,我的用户名是root
;-p
参数是指password,运行下面这条指令后,会要求输入密码,输入正确密码即成功登录。
我的mysql环境还可以,直接登录成功。
建库
执行如下指令,创建名为shopdata的数据库,会得到Query OK, 1 row affected (x.xx sec)
。
1 | create database shopdata; |
进入/选择数据库
执行如下指令后,会看到Database changed
的信息。
1 | use shopdata; |
建表
执行如下指令,创建名为userinfo的表。
我这里对userinfo的定义是:
主键是用户名userid
password是非NULL的
phone和email是unique的
这5个属性的类型都是varchar(15)
最长15,对于email来说不太够用
1 | create table userinfo ( |
执行上边这条命令后,得到了一个错误:
1 | 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 ''userid' varchar(15) primary key, |
经查询,发现属性名应该用反引号`而不是单引号‘,所以将单引号改成反引号,执行如下命令:
1 | create table userinfo ( |
这条命令执行成功,得到Query OK, 0 rows affected (x.xx sec)
。
查看userinfo表
执行如下命令,查看userinfo表的结构。
1 | describe userinfo; |
执行后,得到如下结果:
1 | +----------+-------------+------+-----+---------+-------+ |
插入3条数据
执行如下命令,插入3条数据。
1 | insert into userinfo values |
执行后,得到如下信息:
1 | Query OK, 3 rows affected (0.11 sec) |
查询数据
执行如下语句,查询所有元组。
1 | select * from userinfo; |
执行后,得到如下结果(在我做好作业后、写这篇博客前,我已经插入了一些其他的数据,所以有9条记录):
1 | +------------+----------+---------+-------------+--------------+ |
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!