一次作业过程及其问题的记录:mysql建立数据库、建表、查询和插入等
前言
这次的作业需要我建立一个小的数据库。
这次作业我使用了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建立数据库、建表、查询和插入等的更多相关文章
- 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询
MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...
- mysql 数据操作 单表查询 limit 限制查询的记录数
mysql; +----+-----------+------+-----+------------+---------+--------------+------------+--------+-- ...
- 统计mysql某个数据库的表数量以及表记录数
统计MySQL中某个数据库中有多少张表 SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where ...
- MySQL数据库 | 数据表-查询命令详细记录
本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...
- mysql 一个典型的数据库建表建用户过程
cmd 命令不接 ";" mysql 命令后接 ";" 1.以管理员身份登录mysql mysql -u root –p 2.选择mysql数据库 use my ...
- mysql/mariadb学习记录——创建删除数据库、表的基本命令
查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...
- Kettle 实现mysql数据库不同表之间数据同步——实验过程
下面是试验的主要步骤: 在上一篇文章中LZ已经介绍了,实验的环境和实验目的. 在本篇文章中主要介绍侧重于对Kettle ETL的相应使用方法, 在这里LZ需要说明一下,LZ成为了避免涉及索引和表连接等 ...
- 64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录
64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接O ...
- 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)
关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录) 作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...
随机推荐
- 端口占用的一种形式 Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"] java.net.BindException: Address already in use: JVM_Bind <null>:8090
严重: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8090"]java.ne ...
- 移动端轮播图实现方法(dGun.js)
本文章介绍在移动端无缝隙轮播图实现的原理,这个轮子比较简单,但可以方便刚刚入门的同学参考.最终效果是在移动端无缝隙无限滑动,可以自定义轮播的速度.支持手势左右滑动.最后会放上源码. HTML部分 &l ...
- 授人以渔式解析原生JS写轮播图
需求与分析 需求:循环无缝自动轮播五张图,按左右箭头可以手动切换图片,鼠标点击轮播图下面按钮 1 2 3 4 5会跳转到对应的第1 2 3 4 5张图片.鼠标放到轮播图的图片上时不再自动轮播并且左右箭 ...
- angularV4+学习笔记
angular学习笔记之组件篇 1注解 1.1组件注解 @Component注解,对组件进行配置. 1.1.1注解@Component的元数据 selector template/templateUr ...
- 前端面试题(HTML、CSS部分)
HTML.CSS部分: 一.html5有哪些新特性.移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5? 新特性: HTML5 现在已经不是 SGML 的 ...
- Python正则表达式语法
单个字符匹配 字符 匹配 . 匹配任意字符(除了\n) [...] 匹配字符集 \d/\D 匹配数字/非数字 \s/\S 匹配空白/非空白字符 \w/\W 匹配单词字符[a-zA-A0-9] In [ ...
- UIButton左边图片右边文字的做法
UIImage *yuyinImage = [UIImage imageNamed:@"yuyin.png"]; [soundButton setImage:yuyinImage ...
- JDK14发布了,快来看看有什么新特性吧
序言
- Jmeter中使用MD5方法
在现在这家公司做测试的项目有用到鉴权,token的生成方式有使用到md5,具体的请求url和入参就不方便透露,讲一讲使用方法吧! 自带的Jmeter插件中是没有这个md5的所以,我们可以 (1)打开选 ...
- 欲善事先利器-IEAD插件篇
工欲善其事,必先利其器,好鞋踢好球是非常合乎逻辑的事情. --<长江七号> 同样的开场白,不一样的酒,不一样的故事. 上篇<欲善事先利器--系统篇>已经推荐了一些个人常用的效率 ...