此次的做业须要我创建一个小的数据库。html
此次做业我使用了mysql,进行了建库、建表、查询、插入等操做。前端
本文是对本次做业相关的mysql操做过程及过程当中出现的问题的记录。mysql
另外一篇文章(详情请点击)介绍了如何使用pymysql链接该数据库并使用Flask搭建后端接口,响应前端的GET和POST请求。git
做业中对数据库的要求是:github
由于挺久没用数据库,就先测试下本身以前装的mysql还能不能用,因而打开CMD运行以下指令:sql
mysql
出现以下错误:shell
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
看起来是由于没输代码数据库
因此输入密码,运行以下指令:后端
mysql -u root -p
-u
参数是指username、user之类的,即用户名,个人用户名是root
;-p
参数是指password,运行下面这条指令后,会要求输入密码,输入正确密码即成功登陆。个人mysql环境还能够,直接登陆成功。测试
执行以下指令,建立名为shopdata的数据库,会获得Query OK, 1 row affected (x.xx sec)
。
create database shopdata;
执行以下指令后,会看到Database changed
的信息。
use shopdata;
执行以下指令,建立名为userinfo的表。
我这里对userinfo的定义是:
主键是用户名userid
password是非NULL的
phone和email是unique的
这5个属性的类型都是varchar(15)
最长15,对于email来讲不太够用
create table userinfo ( 'userid' varchar(15) primary key, 'password' varchar(15) not null, 'company' varchar(15), 'phone' varchar(15) unique, 'email' varchar(15) unique );
执行上边这条命令后,获得了一个错误:
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, 'password' varchar(15) not null, 'comp' at line 2
经查询,发现属性名应该用反引号**`而不是单引号'**,因此将单引号改为反引号,执行以下命令:
create table userinfo ( `userid` varchar(15) primary key, `password` varchar(15) not null, `company` varchar(15), `phone` varchar(15) unique, `email` varchar(15) unique );
这条命令执行成功,获得Query OK, 0 rows affected (x.xx sec)
。
执行以下命令,查看userinfo表的结构。
describe userinfo;
执行后,获得以下结果:
+----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | userid | varchar(15) | NO | PRI | NULL | | | password | varchar(15) | NO | | NULL | | | company | varchar(15) | YES | | NULL | | | phone | varchar(15) | YES | UNI | NULL | | | email | varchar(15) | YES | UNI | NULL | | +----------+-------------+------+-----+---------+-------+ 5 rows in set (0.57 sec)
执行以下命令,插入3条数据。
insert into userinfo values ('user1','0000','zstu','13777860000','7746@qq.com'), ('user2','0000','zstu','13777860001','7747@qq.com'), ('user3','0000','zstu','13777860002','7748@qq.com');
执行后,获得以下信息:
Query OK, 3 rows affected (0.11 sec) Records: 3 Duplicates: 0 Warnings: 0
执行以下语句,查询全部元组。
select * from userinfo;
执行后,获得以下结果(在我作好做业后、写这篇博客前,我已经插入了一些其余的数据,因此有9条记录):
+------------+----------+---------+-------------+--------------+ | userid | password | company | phone | email | +------------+----------+---------+-------------+--------------+ | 111 | 111 | 111 | 111 | 111 | | 112 | 000 | 111 | 000 | 000 | | aa | 111 | 11 | 11 | 11 | | test_1 | 00 | NULL | NULL | NULL | | user_test2 | 0000 | NULL | NULL | NULL | | user1 | 0000 | zstu | 13777860000 | 7746@qq.com | | user2 | 0000 | zstu | 13777860001 | 7747@qq.com | | user3 | 0000 | zstu | 13777860002 | 7748@qq.com | | 232222 | 0000 | 城站 | 12306 | 12306@qq.com | +------------+----------+---------+-------------+--------------+ 9 rows in set (0.00 sec)
做者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!