一次做业过程及其问题的记录:mysql创建数据库、建表、查询和插入等

前言

此次的做业须要我创建一个小的数据库。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表

执行以下命令,查看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条数据

执行以下命令,插入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/

欢迎讨论和交流!

相关文章
相关标签/搜索