1. 程式人生 > >小白入門Mysql----MySQL簡單操作

小白入門Mysql----MySQL簡單操作

什麼是MySQL

MySQL結構分為庫、表、欄位 簡單打個比方 == 資料夾 在這裡插入圖片描述 == Excel檔案 在這裡插入圖片描述 欄位 == 列名稱 在這裡插入圖片描述 欄位其實就是對某資料的概括,比如上面的id、name、age、school、sex就是欄位,其實欄位還有一些約束(分類), 比如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)

建表

如果開始選單是win10風格的可以用小娜搜尋mysql

在這裡插入圖片描述

常見錯誤

1.中文亂碼

資料庫編碼格式不是utf-8 檢視編碼格式,輸入下面命令:

show variables like "character%";

在這裡插入圖片描述

我在window下沒遇到過這問題,據說改下檔案引數就行了

2.Error

檢查一下命令有沒有輸錯,或者資料庫或表本來都存在了,你再建一個同名的就會報錯了,和建檔案一個道理

Navicat for Mysql 下 建資料庫(sudent),表(info)

在這裡插入圖片描述

用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;

執行過程 在這裡插入圖片描述

常見問題

1.為什麼我Spyder開啟介面和你的不一樣

這個介面是可調的

2.為什麼我執行時會有很多視窗彈出來,和你的不一樣?

這個軟體我用很久了,一些視窗一次之後就不再顯示了

2.為什麼我執行時有一些紅色的輸出(Error)

  1. ModuleNotFoundError: No module named 'pymysql.cursors' 這個第三方庫你沒有,需要安裝
pip install pymysql

在這裡插入圖片描述 2. Mysql連接出錯 可能時密碼、也可能是編碼出現問題,這個不太好說