mysql建表和建數據庫語句


一、數據庫操作語言

 

數據庫在操作時,需要使用專門的數據庫操作規則和語法,這個語法就是 SQL(Structured Query Language) 結構化查詢語言。

 

SQL 的主要功能是和數據庫建立連接,進行增刪改查的操作。SQL是關系型數據庫管理系統的標准語言。

 

SQL 語言的作用:

 

1. 數據定義語言 DDL(Data Definition Language) 。用於創建數據庫,數據表。

 

2. 數據操作語言 DML(Data Manipulation Language) 。用於從數據表中插入、修改、刪除數據。

 

3. 數據查詢語言 DQL(Data Query Language) 。用於從數據表中查詢數據。

 

4. 數據控制語言 DCL(Data Control Language) 。用來設置或修改數據庫用戶或角色的權限。

 

使用 SQL 操作數據庫時,所有的 SQL 語句都以分號結束。(切換數據庫時可以不用分號)

 

在 SQL 語句中,不區分大小寫,編寫 SQL 語句時可以根據情況用大小寫的區別來增加可讀性。

 

二、創建數據庫

 

1. 連接 MySQL

 

輸入 mysql -u root -p 命令,回車,然后輸入 MySQL 的密碼(不要忘記了密碼),再回車,就連接上 MySQL 了。

mysql -u root -p

 

 

最初,都是使用 root 用戶登錄,工作中如果一直用 root 用戶登錄,因為權限太大,風險是很大的,所以等創建好權限適合的用戶后,就不要經常登錄 root 用戶了。
2. 查看當前的數據庫
使用 show databases; 查看當前安裝的 MySQL 中有哪些數據庫。

show databases;

 

 

剛安裝 MySQL 時,默認有四個數據庫,information_schema,mysql,perfomance_schema,sys 。通常情況下,我們不會直接使用這四個數據庫,但千萬不要把這四個數據庫刪了,否則會帶來很多不必要的麻煩。如果不小心刪了,建議是重新安裝 MySQL ,在重裝之前把自己的數據遷移出來備份好,或者從其他服務器上遷移一個相同的數據庫過來。

 

3. 創建數據庫

 

使用 create database 數據庫名; 創建數據庫。

create database MyDB_one;

 

 

創建數據庫成功后,數據庫的數量變成了5個,多了剛才創建的 MyDB_one 。
4. 創建數據庫時設置字符編碼
使用 create database 數據庫名 character set utf8; 創建數據庫並設置數據庫的字符編碼。

create database MyDB_two character set utf8;

 

 

直接創建的數據庫,數據庫的編碼方式是 MySQL 默認的編碼方式 latin1 (單字節編碼) ,通常我們會在數據庫中存放中文數據,所以最好把數據庫的編碼方式設置成 utf-8 ,這樣中文才能正常顯示。

create database MyDB_three charset utf8;

 

character set 可以縮寫成 charset ,效果是一樣的。

 

5. 查看和顯示數據庫的編碼方式

 

使用 show create database 數據庫名; 顯示數據庫的創建信息。

show create database MyDB_one;show create database MyDB_two;

 

 

如果不知道一個數據庫的編碼方式是什么,可以使用 show create database 數據庫名 來查看數據庫的編碼方式。可以看到剛才創建的 MyDB_one 的編碼方式是 MySQL 的默認編碼 latin1 ,MyDB_two 的編碼方式是 utf-8 。

 

當然,這種方式不能在創建的同時顯示,只能查看一個已經存在的數據庫的編碼方式。

 

6. 使用 alter database 數據庫名 character set utf8;修改數據庫編碼

alter database MyDB_one character set utf8;

 


如果一個數據庫的編碼方式不符合使用需求,可以進行修改。剛才創建的 MyDB_one 經過修改后,編碼方式也變成了 utf-8 。

 

7. 進入或切換數據庫

 

使用 use 數據庫名 進入或切換數據庫。

use MyDB_oneuse MyDB_two;

 

 

剛連接上 MySQL 時,沒有處於任何一個數據庫中,如果要使用某一個數據庫,就需要進入到這個數據庫中。use 數據庫名 這個命令后面的分號可以省略,這是 SQL 語句中唯一可以省略分號的語句。
8. 顯示當前數據庫 select database();

select database();

 

 

進入數據庫中,可以使用 select database(); 來查看當前處於哪個數據庫中。長時間操作數據庫時,在很多數據庫中來回切換后,查看當前的數據庫,避免操作錯了數據庫。

 

三、創建數據表

 

1. 查看當前數據庫中的表

 

使用 show tables;查看當前數據庫中有哪些表。

show tables;

 

 

在剛才創建的數據庫 MyDB_one 中,還沒有創建任何表,所以當前是空的。2. 創建表使用 create table 表名(字段1 字段類型,字段2 字段類型,字段3 字段類型,…); 來創建一張表。

create table Phone_table(pid INT, name CHAR(20), price INT);

 

 

在 MyDB_one 中創建了一個叫 Phone_table 的數據表,這張表有三個字段 pid,name,price 。為了增加 SQL 的可讀性,字段名我用的是小寫,字段類型用大寫。

 

3. 顯示表信息

 

用 show create table 表名; 來顯示已創建的表的信息。

show create table Phone_table;

 

 

使用 show create table 表名;  可以顯示表的字段信息, MySQL 的引擎和默認的字符編碼等信息。與顯示數據庫信息一樣,show 只能顯示已經創建了的數據表的信息,不能在創建的同時顯示信息。

 

如果想更好地展示表的字段信息,可以使用 desc 表名; 來顯示表的字段信息。
4. 給表增加字段
使用 alter table 表名 add 字段名 數據類型; 為已存在的表添加一個新字段。

alter table Phone_table add color CHAR(20);

 

 

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

alter table Phone_table drop price;

 

 

刪除字段后,表中不再有該字段。
6. 修改字段的數據類型
使用 alter table 表名 modify 字段名 數據類型; 修改表中現有字段的數據類型。

alter table Phone_table modify name VARCHAR(12)

 


修改之后,該字段的數據類型發生改變。
7. 修改字段的數據類型並且改名
使用 alter table 表名 change 原字段名 新字段名 數據類型; 修改表中現有字段的字段名和類型。

alter table Phone_table change name pname CHAR(18);

 

 

現在,將表的 name 改成了 pname ,同時修改了 pname 的數據類型。

 

四、MySQL 常用字段類型

 

一個數據表是由若干個字段組成的,一個表十幾個字段也很正常,每個字段表示不同的信息,需要使用不同類型的數據。

 

所以在創建表的時候,要為每個字段指定適合的數據類型。

 

MySQL 中常用的字段類型有以下這些:

 

1. 整數類型

 

數據類型 數據范圍
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. 字符串類型

 

數據類型 字節范圍 用途
CHAR(n) 0 -- 255字節 定長字符串
VARCHAR(n) 0 -- 65535字節 變長字符串
TEXT 0 -- 65535字節 長文本數據
LONGTEXT 0 -- 2^32-1字節 極大文本數據
BLOB 0 -- 65535字節 二進制長文本數據
LONGBLOB 0 -- 2^32-1字節 二進制極大文本數據

 

3. 小數類型

 

數據類型 數據用法 數據范圍
Float Float(m,n) 7位有效數
Double Double(m,n) 15位有效數
Decimal Decimal(m,n) 28位有效數

m 表示浮點數的總長度,n 表示小數點后有效位數。

 

4. 時間類型

 

數據類型 格式 用途
DATE YYYY-MM-DD 日期
TIME HH:MM:SS 時間
YEAR YYYY 年份
DATETIME YYYY-MM-DD HH:MM:SS 日期和時間
TIMESTAMP 10位或13位整數(秒數) 時間戳

 

5. 枚舉類型enum(枚舉值1,枚舉值2,...)枚舉類型只能在列出的值中選擇一個,如性別。

原鏈接:https://mp.weixin.qq.com/s?src=11&timestamp=1585827260&ver=2254&signature=pRm5qnX*jifNu6OCobzSVtmKB6PbY2f33sG63*MQPN-qcgduY1WFNS6sm4bq7X3m9Thx6*f3vQ9sUfO*VCV6UJN0KKzFu3cYlQcgbGC*FCcP21cJSygIcUo6cAQqPMJU&new=1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM