• 一次作业过程及其问题的记录: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/

    欢迎讨论和交流!


  • 相关阅读:
    Java Static Import的用法
    Java EE官方文档汇总
    JDK/Java SE官方文档汇总
    IntelliJ IDEA删除所有断点
    Java基础教程:tutorialspoint-junit
    Spring MVC中@RequestParam/@RequestBody/@RequestHeader的用法收集(转)
    SpringBoot中@EnableAutoConfiguration注解用法收集
    Spring Cloud ZooKeeper集成Feign的坑3,程序Run模式运行没事,Debug模式下报错
    Java中HashMap的初始容量设置
    win7下scheme环境配置
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/12634881.html
Copyright © 2020-2023  润新知