MySQL創(chuàng)建數(shù)據(jù)庫(kù)和創(chuàng)建數(shù)據(jù)表的操作過(guò)程
MySQL 創(chuàng)建數(shù)據(jù)庫(kù)和創(chuàng)建數(shù)據(jù)表
MySQL 是最常用的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)操作中,基本都是增刪改查操作,簡(jiǎn)稱(chēng)CRUD。
在這之前,需要先安裝好 MySQL ,然后創(chuàng)建好數(shù)據(jù)庫(kù)、數(shù)據(jù)表、操作用戶(hù)。
一、數(shù)據(jù)庫(kù)操作語(yǔ)言
數(shù)據(jù)庫(kù)在操作時(shí),需要使用專(zhuān)門(mén)的數(shù)據(jù)庫(kù)操作規(guī)則和語(yǔ)法,這個(gè)語(yǔ)法就是 SQL(Structured Query Language) 結(jié)構(gòu)化查詢(xún)語(yǔ)言。
SQL 的主要功能是和數(shù)據(jù)庫(kù)建立連接,進(jìn)行增刪改查的操作。SQL是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。
SQL 語(yǔ)言的作用:
1. 數(shù)據(jù)定義語(yǔ)言 DDL(Data Definition Language) 。用于創(chuàng)建數(shù)據(jù)庫(kù),數(shù)據(jù)表。
2. 數(shù)據(jù)操作語(yǔ)言 DML(Data Manipulation Language) 。用于從數(shù)據(jù)表中插入、修改、刪除數(shù)據(jù)。
3. 數(shù)據(jù)查詢(xún)語(yǔ)言 DQL(Data Query Language) 。用于從數(shù)據(jù)表中查詢(xún)數(shù)據(jù)。
4. 數(shù)據(jù)控制語(yǔ)言 DCL(Data Control Language) 。用來(lái)設(shè)置或修改數(shù)據(jù)庫(kù)用戶(hù)或角色的權(quán)限。
使用 SQL 操作數(shù)據(jù)庫(kù)時(shí),所有的 SQL 語(yǔ)句都以分號(hào)結(jié)束。(切換數(shù)據(jù)庫(kù)時(shí)可以不用分號(hào))
在 SQL 語(yǔ)句中,不區(qū)分大小寫(xiě),編寫(xiě) SQL 語(yǔ)句時(shí)可以根據(jù)情況用大小寫(xiě)的區(qū)別來(lái)增加可讀性。
二、創(chuàng)建數(shù)據(jù)庫(kù)
1. 連接 MySQL
輸入 mysql -u root -p 命令,回車(chē),然后輸入 MySQL 的密碼(不要忘記了密碼),再回車(chē),就連接上 MySQL 了。
mysql -u root -p

最初,都是使用 root 用戶(hù)登錄,工作中如果一直用 root 用戶(hù)登錄,因?yàn)闄?quán)限太大,風(fēng)險(xiǎn)是很大的,所以等創(chuàng)建好權(quán)限適合的用戶(hù)后,就不要經(jīng)常登錄 root 用戶(hù)了。
2. 查看當(dāng)前的數(shù)據(jù)庫(kù)
使用 show databases; 查看當(dāng)前安裝的 MySQL 中有哪些數(shù)據(jù)庫(kù)。
show databases;

剛安裝 MySQL 時(shí),默認(rèn)有四個(gè)數(shù)據(jù)庫(kù),information_schema,mysql,perfomance_schema,sys 。通常情況下,我們不會(huì)直接使用這四個(gè)數(shù)據(jù)庫(kù),但千萬(wàn)不要把這四個(gè)數(shù)據(jù)庫(kù)刪了,否則會(huì)帶來(lái)很多不必要的麻煩。如果不小心刪了,建議是重新安裝 MySQL ,在重裝之前把自己的數(shù)據(jù)遷移出來(lái)備份好,或者從其他服務(wù)器上遷移一個(gè)相同的數(shù)據(jù)庫(kù)過(guò)來(lái)。
3. 創(chuàng)建數(shù)據(jù)庫(kù)
使用 create database 數(shù)據(jù)庫(kù)名; 創(chuàng)建數(shù)據(jù)庫(kù)。
create database MyDB_one;

創(chuàng)建數(shù)據(jù)庫(kù)成功后,數(shù)據(jù)庫(kù)的數(shù)量變成了5個(gè),多了剛才創(chuàng)建的 MyDB_one 。
4. 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)設(shè)置字符編碼
使用 create database 數(shù)據(jù)庫(kù)名 character set utf8; 創(chuàng)建數(shù)據(jù)庫(kù)并設(shè)置數(shù)據(jù)庫(kù)的字符編碼。
create database MyDB_two character set utf8;

直接創(chuàng)建的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的編碼方式是 MySQL 默認(rèn)的編碼方式 latin1 (單字節(jié)編碼) ,通常我們會(huì)在數(shù)據(jù)庫(kù)中存放中文數(shù)據(jù),所以最好把數(shù)據(jù)庫(kù)的編碼方式設(shè)置成 utf-8 ,這樣中文才能正常顯示。
create database MyDB_three charset utf8;
character set 可以縮寫(xiě)成 charset ,效果是一樣的。
5. 查看和顯示數(shù)據(jù)庫(kù)的編碼方式
使用 show create database 數(shù)據(jù)庫(kù)名; 顯示數(shù)據(jù)庫(kù)的創(chuàng)建信息。
show create database MyDB_one; show create database MyDB_two;

如果不知道一個(gè)數(shù)據(jù)庫(kù)的編碼方式是什么,可以使用 show create database 數(shù)據(jù)庫(kù)名 來(lái)查看數(shù)據(jù)庫(kù)的編碼方式??梢钥吹絼偛艅?chuàng)建的 MyDB_one 的編碼方式是 MySQL 的默認(rèn)編碼 latin1 ,MyDB_two 的編碼方式是 utf-8 。
當(dāng)然,這種方式不能在創(chuàng)建的同時(shí)顯示,只能查看一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)的編碼方式。
6. 使用 alter database 數(shù)據(jù)庫(kù)名 character set utf8; 修改數(shù)據(jù)庫(kù)編碼
alter database MyDB_one character set utf8;

如果一個(gè)數(shù)據(jù)庫(kù)的編碼方式不符合使用需求,可以進(jìn)行修改。剛才創(chuàng)建的 MyDB_one 經(jīng)過(guò)修改后,編碼方式也變成了 utf-8 。
7. 進(jìn)入或切換數(shù)據(jù)庫(kù)
使用 use 數(shù)據(jù)庫(kù)名 進(jìn)入或切換數(shù)據(jù)庫(kù)。
use MyDB_oneuse MyDB_two;

剛連接上 MySQL 時(shí),沒(méi)有處于任何一個(gè)數(shù)據(jù)庫(kù)中,如果要使用某一個(gè)數(shù)據(jù)庫(kù),就需要進(jìn)入到這個(gè)數(shù)據(jù)庫(kù)中。
use 數(shù)據(jù)庫(kù)名 這個(gè)命令后面的分號(hào)可以省略,這是 SQL 語(yǔ)句中唯一可以省略分號(hào)的語(yǔ)句。
8. 顯示當(dāng)前數(shù)據(jù)庫(kù) select database();
select database();

進(jìn)入數(shù)據(jù)庫(kù)中,可以使用 select database(); 來(lái)查看當(dāng)前處于哪個(gè)數(shù)據(jù)庫(kù)中。長(zhǎng)時(shí)間操作數(shù)據(jù)庫(kù)時(shí),在很多數(shù)據(jù)庫(kù)中來(lái)回切換后,查看當(dāng)前的數(shù)據(jù)庫(kù),避免操作錯(cuò)了數(shù)據(jù)庫(kù)。
三、創(chuàng)建數(shù)據(jù)表
1. 查看當(dāng)前數(shù)據(jù)庫(kù)中的表
使用 show tables;查看當(dāng)前數(shù)據(jù)庫(kù)中有哪些表。
show tables;

在剛才創(chuàng)建的數(shù)據(jù)庫(kù) MyDB_one 中,還沒(méi)有創(chuàng)建任何表,所以當(dāng)前是空的。
2. 創(chuàng)建表
使用 create table 表名(字段1 字段類(lèi)型,字段2 字段類(lèi)型,字段3 字段類(lèi)型,…); 來(lái)創(chuàng)建一張表。
create table Phone_table(pid INT, name CHAR(20), price INT);

在 MyDB_one 中創(chuàng)建了一個(gè)叫 Phone_table 的數(shù)據(jù)表,這張表有三個(gè)字段 pid,name,price 。為了增加 SQL 的可讀性,字段名我用的是小寫(xiě),字段類(lèi)型用大寫(xiě)。
3. 顯示表信息
用 show create table 表名; 來(lái)顯示已創(chuàng)建的表的信息。
show create table Phone_table;

使用 show create table 表名; 可以顯示表的字段信息, MySQL 的引擎,和默認(rèn)的字符編碼等信息。與顯示數(shù)據(jù)庫(kù)信息一樣,show 只能顯示已經(jīng)創(chuàng)建了的數(shù)據(jù)表的信息,不能在創(chuàng)建的同時(shí)顯示信息。

如果想更好地展示表的字段信息,可以使用 desc 表名; 來(lái)顯示表的字段信息。
4. 給表增加字段
使用 alter table 表名 add 字段名 數(shù)據(jù)類(lèi)型; 為已存在的表添加一個(gè)新字段。
alter table Phone_table add color CHAR(20);

添加后,剛才的表中多了一個(gè)字段,新增成功。
5. 刪除表的字段
使用 alter table 表名 drop 字段名; 刪除一個(gè)表中已存在的字段。
alter table Phone_table drop price;

刪除字段后,表中不再有該字段。
6. 修改字段的數(shù)據(jù)類(lèi)型
使用 alter table 表名 modify 字段名 數(shù)據(jù)類(lèi)型; 修改表中現(xiàn)有字段的數(shù)據(jù)類(lèi)型。
alter table Phone_table modify name VARCHAR(12);

修改之后,該字段的數(shù)據(jù)類(lèi)型發(fā)生改變。
7. 修改字段的數(shù)據(jù)類(lèi)型并且改名
使用 alter table 表名 change 原字段名 新字段名 數(shù)據(jù)類(lèi)型; 修改表中現(xiàn)有字段的字段名和類(lèi)型。
alter table Phone_table change name pname CHAR(18);

現(xiàn)在,將表的 name 改成了 pname ,同時(shí)修改了 pname 的數(shù)據(jù)類(lèi)型。
四、MySQL 常用字段類(lèi)型
一個(gè)數(shù)據(jù)表是由若干個(gè)字段組成的,一個(gè)表十幾個(gè)字段也很正常,每個(gè)字段表示不同的信息,需要使用不同類(lèi)型的數(shù)據(jù)。
所以在創(chuàng)建表的時(shí)候,要為每個(gè)字段指定適合的數(shù)據(jù)類(lèi)型。
MySQL 中常用的字段類(lèi)型有以下這些:
1. 整數(shù)類(lèi)型
| 數(shù)據(jù)類(lèi)型 | 數(shù)據(jù)范圍 |
| TINYINT | -128 -- 127 |
| SMALLINT | -32768 -- 32767 |
| MEDIUMINT | -2^23 -- 2^23-1 |
| INT | -2^31 -- 2^31-1 |
| BIGINT | -2^63 -- 2^63-1 |
2. 字符串類(lèi)型
| 數(shù)據(jù)類(lèi)型 | 字節(jié)范圍 | 用途 |
| CHAR(n) | 0 -- 255字節(jié) | 定長(zhǎng)字符串 |
| VARCHAR(n) | 0 -- 65535字節(jié) | 變長(zhǎng)字符串 |
| TEXT | 0 -- 65535字節(jié) | 長(zhǎng)文本數(shù)據(jù) |
| LONGTEXT | 0 -- 2^32-1字節(jié) | 極大文本數(shù)據(jù) |
| BLOB | 0 -- 65535字節(jié) | 二進(jìn)制長(zhǎng)文本數(shù)據(jù) |
| LONGBLOB | 0 -- 2^32-1字節(jié) | 二進(jìn)制極大文本數(shù)據(jù) |
3. 小數(shù)類(lèi)型
| 數(shù)據(jù)類(lèi)型 | 數(shù)據(jù)用法 | 數(shù)據(jù)范圍 |
| Float | Float(m,n) | 7位有效數(shù) |
| Double | Double(m,n) | 15位有效數(shù) |
| Decimal | Decimal(m,n) | 28位有效數(shù) |
4. 時(shí)間類(lèi)型
| 數(shù)據(jù)類(lèi)型 | 格式 | 用途 |
| DATE | YYYY-MM-DD | 日期 |
| TIME | HH:MM:SS | 時(shí)間 |
| YEAR | YYYY | 年份 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 日期和時(shí)間 |
| TIMESTAMP | 10位或13位整數(shù)(秒數(shù)) | 時(shí)間戳 |
5. 枚舉類(lèi)型
enum(枚舉值1,枚舉值2,...)
枚舉類(lèi)型只能在列出的值中選擇一個(gè),如性別。
到此這篇關(guān)于MySQL創(chuàng)建數(shù)據(jù)庫(kù)和創(chuàng)建數(shù)據(jù)表的操作過(guò)程的文章就介紹到這了,更多相關(guān)mysql創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql中整數(shù)數(shù)據(jù)類(lèi)型tinyint詳解
大家好,本篇文章主要講的是mysql中整數(shù)數(shù)據(jù)類(lèi)型tinyint詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12
mysql實(shí)現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫(xiě)法
這篇文章主要介紹了mysql實(shí)現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫(xiě)法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-03-03
MYSQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的方法
在本篇文章里小編給大家整理的是關(guān)于MYSQL開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限的方法,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。2020-02-02
Mysql報(bào)錯(cuò)1292:Incorrect datetime value for 
本文主要介紹了Mysql報(bào)錯(cuò)1292:Incorrect datetime value for column create_time at row 1 解決方案,1292 是指插入或更新操作時(shí),日期或時(shí)間值不正確引起的錯(cuò)誤,下面就來(lái)介紹一下2024-02-02
提高M(jìn)ySQL 查詢(xún)效率的三個(gè)技巧
MySQL由于它本身的小巧和操作的高效, 在數(shù)據(jù)庫(kù)應(yīng)用中越來(lái)越多的被采用.我在開(kāi)發(fā)一個(gè)P2P應(yīng)用的時(shí)候曾經(jīng)使用MySQL來(lái)保存P2P節(jié)點(diǎn),由于P2P的應(yīng)用中,結(jié)點(diǎn)數(shù)動(dòng)輒上萬(wàn)個(gè),而且節(jié)點(diǎn)變化頻繁,因此一定要保持查詢(xún)和插入的高效.以下是我在使用過(guò)程中做的提高效率的三個(gè)有效的嘗試. 1. 使用statement進(jìn)行綁定查詢(xún) 2. 隨機(jī)的獲取記錄 3. 使用連接池管理連接.2008-04-04
mysql 批處理文件出錯(cuò)后繼續(xù)執(zhí)行的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇mysql 批處理文件出錯(cuò)后繼續(xù)執(zhí)行的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
一步步帶你學(xué)習(xí)設(shè)計(jì)MySQL索引數(shù)據(jù)結(jié)構(gòu)
索引是存儲(chǔ)索引用于快速找到數(shù)據(jù)記錄的一種數(shù)據(jù)結(jié)構(gòu),就好比一本書(shū)的目錄部分,通過(guò)目錄中對(duì)應(yīng)的文章的頁(yè)碼,便可以快速定位到需要的文章,下面這篇文章主要給大家介紹了關(guān)于MySQL索引數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2022-11-11
mysql 啟動(dòng)錯(cuò)誤1067 問(wèn)題及解決方法
這篇文章主要介紹了mysql 啟動(dòng)錯(cuò)誤1067 問(wèn)題及解決方法的相關(guān)資料,需要的朋友可以參考下2016-11-11

