MySQL創(chuàng)建數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)表的操作過程
MySQL 創(chuàng)建數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)表
MySQL 是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD。
在這之前,需要先安裝好 MySQL ,然后創(chuàng)建好數(shù)據(jù)庫、數(shù)據(jù)表、操作用戶。
一、數(shù)據(jù)庫操作語言
數(shù)據(jù)庫在操作時,需要使用專門的數(shù)據(jù)庫操作規(guī)則和語法,這個語法就是 SQL(Structured Query Language) 結構化查詢語言。
SQL 的主要功能是和數(shù)據(jù)庫建立連接,進行增刪改查的操作。SQL是關系型數(shù)據(jù)庫管理系統(tǒng)的標準語言。
SQL 語言的作用:
1. 數(shù)據(jù)定義語言 DDL(Data Definition Language) 。用于創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)表。
2. 數(shù)據(jù)操作語言 DML(Data Manipulation Language) 。用于從數(shù)據(jù)表中插入、修改、刪除數(shù)據(jù)。
3. 數(shù)據(jù)查詢語言 DQL(Data Query Language) 。用于從數(shù)據(jù)表中查詢數(shù)據(jù)。
4. 數(shù)據(jù)控制語言 DCL(Data Control Language) 。用來設置或修改數(shù)據(jù)庫用戶或角色的權限。
使用 SQL 操作數(shù)據(jù)庫時,所有的 SQL 語句都以分號結束。(切換數(shù)據(jù)庫時可以不用分號)
在 SQL 語句中,不區(qū)分大小寫,編寫 SQL 語句時可以根據(jù)情況用大小寫的區(qū)別來增加可讀性。
二、創(chuàng)建數(shù)據(jù)庫
1. 連接 MySQL
輸入 mysql -u root -p 命令,回車,然后輸入 MySQL 的密碼(不要忘記了密碼),再回車,就連接上 MySQL 了。
mysql -u root -p
最初,都是使用 root 用戶登錄,工作中如果一直用 root 用戶登錄,因為權限太大,風險是很大的,所以等創(chuàng)建好權限適合的用戶后,就不要經常登錄 root 用戶了。
2. 查看當前的數(shù)據(jù)庫
使用 show databases; 查看當前安裝的 MySQL 中有哪些數(shù)據(jù)庫。
show databases;
剛安裝 MySQL 時,默認有四個數(shù)據(jù)庫,information_schema,mysql,perfomance_schema,sys 。通常情況下,我們不會直接使用這四個數(shù)據(jù)庫,但千萬不要把這四個數(shù)據(jù)庫刪了,否則會帶來很多不必要的麻煩。如果不小心刪了,建議是重新安裝 MySQL ,在重裝之前把自己的數(shù)據(jù)遷移出來備份好,或者從其他服務器上遷移一個相同的數(shù)據(jù)庫過來。
3. 創(chuàng)建數(shù)據(jù)庫
使用 create database 數(shù)據(jù)庫名; 創(chuàng)建數(shù)據(jù)庫。
create database MyDB_one;
創(chuàng)建數(shù)據(jù)庫成功后,數(shù)據(jù)庫的數(shù)量變成了5個,多了剛才創(chuàng)建的 MyDB_one 。
4. 創(chuàng)建數(shù)據(jù)庫時設置字符編碼
使用 create database 數(shù)據(jù)庫名 character set utf8; 創(chuàng)建數(shù)據(jù)庫并設置數(shù)據(jù)庫的字符編碼。
create database MyDB_two character set utf8;
直接創(chuàng)建的數(shù)據(jù)庫,數(shù)據(jù)庫的編碼方式是 MySQL 默認的編碼方式 latin1 (單字節(jié)編碼) ,通常我們會在數(shù)據(jù)庫中存放中文數(shù)據(jù),所以最好把數(shù)據(jù)庫的編碼方式設置成 utf-8 ,這樣中文才能正常顯示。
create database MyDB_three charset utf8;
character set 可以縮寫成 charset ,效果是一樣的。
5. 查看和顯示數(shù)據(jù)庫的編碼方式
使用 show create database 數(shù)據(jù)庫名; 顯示數(shù)據(jù)庫的創(chuàng)建信息。
show create database MyDB_one; show create database MyDB_two;
如果不知道一個數(shù)據(jù)庫的編碼方式是什么,可以使用 show create database 數(shù)據(jù)庫名 來查看數(shù)據(jù)庫的編碼方式??梢钥吹絼偛艅?chuàng)建的 MyDB_one 的編碼方式是 MySQL 的默認編碼 latin1 ,MyDB_two 的編碼方式是 utf-8 。
當然,這種方式不能在創(chuàng)建的同時顯示,只能查看一個已經存在的數(shù)據(jù)庫的編碼方式。
6. 使用 alter database 數(shù)據(jù)庫名 character set utf8; 修改數(shù)據(jù)庫編碼
alter database MyDB_one character set utf8;
如果一個數(shù)據(jù)庫的編碼方式不符合使用需求,可以進行修改。剛才創(chuàng)建的 MyDB_one 經過修改后,編碼方式也變成了 utf-8 。
7. 進入或切換數(shù)據(jù)庫
使用 use 數(shù)據(jù)庫名 進入或切換數(shù)據(jù)庫。
use MyDB_oneuse MyDB_two;
剛連接上 MySQL 時,沒有處于任何一個數(shù)據(jù)庫中,如果要使用某一個數(shù)據(jù)庫,就需要進入到這個數(shù)據(jù)庫中。
use 數(shù)據(jù)庫名 這個命令后面的分號可以省略,這是 SQL 語句中唯一可以省略分號的語句。
8. 顯示當前數(shù)據(jù)庫 select database();
select database();
進入數(shù)據(jù)庫中,可以使用 select database(); 來查看當前處于哪個數(shù)據(jù)庫中。長時間操作數(shù)據(jù)庫時,在很多數(shù)據(jù)庫中來回切換后,查看當前的數(shù)據(jù)庫,避免操作錯了數(shù)據(jù)庫。
三、創(chuàng)建數(shù)據(jù)表
1. 查看當前數(shù)據(jù)庫中的表
使用 show tables;查看當前數(shù)據(jù)庫中有哪些表。
show tables;
在剛才創(chuàng)建的數(shù)據(jù)庫 MyDB_one 中,還沒有創(chuàng)建任何表,所以當前是空的。
2. 創(chuàng)建表
使用 create table 表名(字段1 字段類型,字段2 字段類型,字段3 字段類型,…); 來創(chuàng)建一張表。
create table Phone_table(pid INT, name CHAR(20), price INT);
在 MyDB_one 中創(chuàng)建了一個叫 Phone_table 的數(shù)據(jù)表,這張表有三個字段 pid,name,price 。為了增加 SQL 的可讀性,字段名我用的是小寫,字段類型用大寫。
3. 顯示表信息
用 show create table 表名; 來顯示已創(chuàng)建的表的信息。
show create table Phone_table;
使用 show create table 表名; 可以顯示表的字段信息, MySQL 的引擎,和默認的字符編碼等信息。與顯示數(shù)據(jù)庫信息一樣,show 只能顯示已經創(chuàng)建了的數(shù)據(jù)表的信息,不能在創(chuàng)建的同時顯示信息。
如果想更好地展示表的字段信息,可以使用 desc 表名; 來顯示表的字段信息。
4. 給表增加字段
使用 alter table 表名 add 字段名 數(shù)據(jù)類型; 為已存在的表添加一個新字段。
alter table Phone_table add color CHAR(20);
添加后,剛才的表中多了一個字段,新增成功。
5. 刪除表的字段
使用 alter table 表名 drop 字段名; 刪除一個表中已存在的字段。
alter table Phone_table drop price;
刪除字段后,表中不再有該字段。
6. 修改字段的數(shù)據(jù)類型
使用 alter table 表名 modify 字段名 數(shù)據(jù)類型; 修改表中現(xiàn)有字段的數(shù)據(jù)類型。
alter table Phone_table modify name VARCHAR(12);
修改之后,該字段的數(shù)據(jù)類型發(fā)生改變。
7. 修改字段的數(shù)據(jù)類型并且改名
使用 alter table 表名 change 原字段名 新字段名 數(shù)據(jù)類型; 修改表中現(xiàn)有字段的字段名和類型。
alter table Phone_table change name pname CHAR(18);
現(xiàn)在,將表的 name 改成了 pname ,同時修改了 pname 的數(shù)據(jù)類型。
四、MySQL 常用字段類型
一個數(shù)據(jù)表是由若干個字段組成的,一個表十幾個字段也很正常,每個字段表示不同的信息,需要使用不同類型的數(shù)據(jù)。
所以在創(chuàng)建表的時候,要為每個字段指定適合的數(shù)據(jù)類型。
MySQL 中常用的字段類型有以下這些:
1. 整數(shù)類型
數(shù)據(jù)類型 | 數(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. 字符串類型
數(shù)據(jù)類型 | 字節(jié)范圍 | 用途 |
CHAR(n) | 0 -- 255字節(jié) | 定長字符串 |
VARCHAR(n) | 0 -- 65535字節(jié) | 變長字符串 |
TEXT | 0 -- 65535字節(jié) | 長文本數(shù)據(jù) |
LONGTEXT | 0 -- 2^32-1字節(jié) | 極大文本數(shù)據(jù) |
BLOB | 0 -- 65535字節(jié) | 二進制長文本數(shù)據(jù) |
LONGBLOB | 0 -- 2^32-1字節(jié) | 二進制極大文本數(shù)據(jù) |
3. 小數(shù)類型
數(shù)據(jù)類型 | 數(shù)據(jù)用法 | 數(shù)據(jù)范圍 |
Float | Float(m,n) | 7位有效數(shù) |
Double | Double(m,n) | 15位有效數(shù) |
Decimal | Decimal(m,n) | 28位有效數(shù) |
4. 時間類型
數(shù)據(jù)類型 | 格式 | 用途 |
DATE | YYYY-MM-DD | 日期 |
TIME | HH:MM:SS | 時間 |
YEAR | YYYY | 年份 |
DATETIME | YYYY-MM-DD HH:MM:SS | 日期和時間 |
TIMESTAMP | 10位或13位整數(shù)(秒數(shù)) | 時間戳 |
5. 枚舉類型
enum(枚舉值1,枚舉值2,...)
枚舉類型只能在列出的值中選擇一個,如性別。
到此這篇關于MySQL創(chuàng)建數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)表的操作過程的文章就介紹到這了,更多相關mysql創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql中整數(shù)數(shù)據(jù)類型tinyint詳解
大家好,本篇文章主要講的是mysql中整數(shù)數(shù)據(jù)類型tinyint詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12mysql實現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫法
這篇文章主要介紹了mysql實現(xiàn)按組區(qū)分后獲取每組前幾名的sql寫法,具有很好的參考價值,希望對大家有所幫助。2023-03-03Mysql報錯1292:Incorrect datetime value for 
本文主要介紹了Mysql報錯1292:Incorrect datetime value for column create_time at row 1 解決方案,1292 是指插入或更新操作時,日期或時間值不正確引起的錯誤,下面就來介紹一下2024-02-02mysql 批處理文件出錯后繼續(xù)執(zhí)行的實現(xiàn)方法
下面小編就為大家?guī)硪黄猰ysql 批處理文件出錯后繼續(xù)執(zhí)行的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10