前言

这次的作业需要我建立一个小的数据库。

这次作业我使用了mysql,进行了建库、建表、查询、插入等操作。

本文是对本次作业相关的mysql操作过程及过程中出现的问题的记录。

另一篇文章(详情请点击)介绍了如何使用pymysql连接该数据库并使用Flask搭建后端接口,响应前端的GET和POST请求。

正文

作业中对数据库的要求是:

  • 建立一个用户信息表,其包括用户名、密码、手机号、邮箱和手机号等属性,并向其中插入几条测试数据。

登录数据库

因为挺久没用数据库,就先测试下自己之前装的mysql还能不能用,于是打开CMD运行如下指令:

mysql

出现如下错误:

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/

欢迎讨论和交流!


一次作业过程及其问题的记录:mysql建立数据库、建表、查询和插入等的更多相关文章

  1. 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询

    MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...

  2. mysql 数据操作 单表查询 limit 限制查询的记录数

    mysql; +----+-----------+------+-----+------------+---------+--------------+------------+--------+-- ...

  3. 统计mysql某个数据库的表数量以及表记录数

        统计MySQL中某个数据库中有多少张表 SELECT count(*) TABLES, table_schema FROM information_schema.TABLES    where ...

  4. MySQL数据库 | 数据表-查询命令详细记录

    本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...

  5. mysql 一个典型的数据库建表建用户过程

    cmd 命令不接 ";" mysql 命令后接 ";" 1.以管理员身份登录mysql mysql -u root –p 2.选择mysql数据库 use my ...

  6. mysql/mariadb学习记录——创建删除数据库、表的基本命令

    查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...

  7. Kettle 实现mysql数据库不同表之间数据同步——实验过程

    下面是试验的主要步骤: 在上一篇文章中LZ已经介绍了,实验的环境和实验目的. 在本篇文章中主要介绍侧重于对Kettle ETL的相应使用方法, 在这里LZ需要说明一下,LZ成为了避免涉及索引和表连接等 ...

  8. 64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录

    64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接O ...

  9. 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

    关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...

随机推荐

  1. direction和writing-mode的介绍

    direction介绍 属性值和兼容都很好 CSSdirection属性简单好记,属性值少,兼容性好,关键时候省心省力,是时候给大家宣传宣传,不要埋没了人家的特殊技能. Chrome Safari F ...

  2. Keras深度神经网络算法模型构建【输入层、卷积层、池化层】

    一.输入层 1.用途 构建深度神经网络输入层,确定输入数据的类型和样式. 2.应用代码 input_data = Input(name='the_input', shape=(1600, 200, 1 ...

  3. ElasticSearch 6.2.4 实践

    参考资料 ElasticSearch 官网 ElasticSearch,Kibana,Asp.net Core with docker 示例 阮一峰 ElasticSearch 基础概念 索引(ind ...

  4. 将config从内部移动到外部 3部曲

    1 创建 public/config.js /* eslint-disable no-shadow-restricted-names */ // eslint-disable-next-line no ...

  5. oracle--触发器(转)

    转载自http://blog.csdn.net/indexman/article/details/8023740/ 触发器是许多关系数据库系统都提供的一项技术.在oracle系统里,触发器类似过程和函 ...

  6. 【MyBatis笔记】mapper文件的配置以及说明

    <!doctype html>[MyBatis笔记]mapper文件的配置以及说明 figure:last-child { margin-bottom: 0.5rem; } #write ...

  7. 免注册公众号的三种微信推送消息服务的C#代码实现

    有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如 ...

  8. 物联网时代-新基建-ThingsBoard调试环境搭建

    前言 2020开年之际,科比不幸离世.疫情当道.经济受到了严重的损失.人们都不幸的感慨: 2020年真是太不真实的一年,可以重新来过就好了!国家和政府出台了拯救经济和加速建设的利好消息.3月份最热的词 ...

  9. 如何使用Postman编写Testlink测试用例

    Postman2Testlink 通过Postman快速操作testlink测试用例.测试套件.测试计划.添加关键词.添加自定义字段等等. 工具地址 https://github.com/liyinc ...

  10. iOS开发:Swift/Objective-C高效生成随机字符串

    原文连接 Objective-C版 // 随机生成字符串(由大小写字母.数字组成) + (NSString *)random: (int)len { char ch[len]; for (int in ...