什么是MySQL

MySQL结构分为字段

简单打个比方

库 == 文件夹

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_入门教程


表 == Excel文件

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_字段_02


字段 == 列名称

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_入门教程_03


字段其实就是对某数据的概括,比如上面的idnameageschoolsex就是字段,其实字段还有一些约束(分类),

比如id是存序号的,那么id就是整型;name是存字符串的,那么name就是字符型;

数据库名字、表名字、字段名字可以随意改

由此我们可用知道

1. 一个数据库可以含有多个表
2. 一个表可以含有多个字段

怎么建立一个数据库

  1. 建立数据库首先要有需求
  2. 要先设计好表结构 下面我已多种软件(方式)演示一遍怎么建立一个简单学生信息数据库
    需求:存储学生基本信息
    表结构

字段名

存储内容

字段类型

id

学号

int(10)

name

姓名

varchar(10)

sex

性别

varchar(1)

school

学院

varchar(20)

字段类型就是约束,int代表整形varchar代表字符串(字)(10)代表数字最多是10位数

开始之前

1. 任何电脑有关的命令都要使用英文字符,切换点shift就可以了

字符

英文字符

中文字符

逗号

,


.

单引号

'

双引号

"

冒号

:

中英文字符看起来有点相似,但在电脑中是绝对不同的,写错就会报错

2. 基本命令的解释

操作

对应命令

解释

显示你的所有数据库

show databases;

加个S

创建一个新的数据库(创建空文件夹)

create database student;

加红的名字是可以改的

进入数据库(进入文件夹)

use student;

创建数据库表

create table info(id int(10) primary key , name varchar(10));

这条代码是可以分行写的,见下面git图

显示数据库表结构

desc info;

列出字段的约束

插入一条数据

insert into info (id,name,sex,school) values(17,"Lammu",,光电);

删除线的可以省略

显示数据库表的所有数据

select * from info;

Mysql 5.x Command Line 下 建数据库(sudent),表(info)

动图点击图片就能重头播放!!!

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_字段_04

如果开始菜单是win10风格的可以用小娜搜索mysql

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_Mysql_05

常见错误

1.中文乱码

数据库编码格式不是utf-8
查看编码格式,输入下面命令:

show variables like "character%";

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_字段_06

我在window下没遇到过这问题,据说改下文件参数就行了
2.Error

检查一下命令有没有输错,或者数据库或表本来都存在了,你再建一个同名的就会报错了,和建文件一个道理

Navicat for Mysql 下 建数据库(sudent),表(info)

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_字段_07

用Python 插入数据

需要一点编程基础

命令:

import random 
import pymysql.cursors
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='test;',   ##这里改成你们的密码
                             db='student',       ##改成你们对应的数据库名字
                             charset='utf8mb4',  ##这个一般不用改,可能会报错
                             cursorclass=pymysql.cursors.DictCursor)

id = 1815080188
name = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危', '江', '童', '颜', '郭', '梅', '盛', '林', '刁', '钟', '徐', '邱', '骆', '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍', '虞', '万', '支', '柯', '昝', '管', '卢', '莫', '经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '宣', '贲', '邓', '郁', '单', '杭', '洪', '包', '诸', '左', '石', '崔', '吉', '钮', '龚', '程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁', '荀', '羊', '於', '惠', '甄', '麴', '家', '封', '芮', '羿', '储', '靳', '汲', '邴', '糜', '松', '井', '段', '富', '巫', '乌', '焦', '巴', '弓', '牧', '隗', '山', '谷', '车', '侯', '宓', '蓬', '全', '郗', '班', '仰', '秋', '仲', '伊', '宫', '宁', '仇', '栾', '暴', '甘', '钭', '厉', '戎', '祖', '武', '符', '刘', '景', '詹', '束', '龙', '叶', '幸', '司', '韶', '郜', '黎', '蓟', '薄', '印', '宿', '白', '怀', '蒲', '邰', '从', '鄂', '索', '咸', '籍', '赖', '卓', '蔺', '屠', '蒙', '池', '乔', '阴', '郁', '胥', '能', '苍', '双', '闻', '莘', '党', '翟', '谭', '贡', '劳', '逄', '姬', '申', '扶', '堵', '冉', '宰', '郦', '雍', '舄', '璩', '桑', '桂', '濮', '牛', '寿', '通', '边', '扈', '燕', '冀', '郏', '浦', '尚', '农', '温', '别', '庄', '晏', '柴', '瞿', '阎', '充', '慕', '连', '茹', '习', '宦', '艾', '鱼', '容', '向', '古', '易', '慎', '戈', '廖', '庾', '终', '暨', '居', '衡', '步', '都', '耿', '满', '弘', '匡', '国', '文', '寇', '广', '禄', '阙', '东', '殴', '殳', '沃', '利', '蔚', '越', '夔', '隆', '师', '巩', '厍', '聂', '晁', '勾', '敖', '融', '冷', '訾', '辛', '阚', '那', '简', '饶', '空', '曾', '毋', '沙', '乜', '养', '鞠', '须', '丰', '巢', '关', '蒯', '相', '查', '後', '荆', '红']
school = ['光电信息与计算机工程学院','能源与动力工程学院 ','管理学院','机械工程学院','外语学院','环境与建筑学院','出版印刷与艺术设计学院','医疗器械与食品学院','理学院','材料科学与工程学院','音乐系']
sex = ['男','女']

R = random.randint

with connection.cursor() as cursor:
    for i in range(100):
        sql = "insert into info(id, name, sex, school)values(%s, %s, %s, %s)"
        cursor.execute(sql, (id, name[R(0,len(name)-1)], sex[R(0,1)], school[R(0,len(school)-1)]))
        connection.commit()
        id += 1
connection.close()

运行过程

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_mysql_08

常见问题

1.为什么我Spyder打开界面和你的不一样

这个界面是可调的

2.为什么我运行时会有很多窗口弹出来,和你的不一样?

这个软件我用很久了,一些窗口一次之后就不再显示了

2.为什么我运行时有一些红色的输出(Error)
  1. ModuleNotFoundError: No module named 'pymysql.cursors' 这个第三方库你没有,需要安装
pip install pymysql

mysql 一张表数量字段是另一张表数量的字段的和 mysql一个表有200个字段_数据库_09


2. Mysql连接出错 可能是密码、也可能是编码出现问题,这个不太好说