目錄
前言
?開啟登錄數據庫
一、數據庫操作?
1.查詢所有數據庫
?2.切換使用數據庫
3.查詢當前使用的數據庫
4.創建數據庫?
創建一個hello數據庫, 使用數據庫默認的字符集。
?創建一個itheima數據庫,并且指定字符集
?5.刪除數據庫
?二、表操作
1.查詢當前數據庫所有表
2.查看指定表結構?
3.查詢指定表的建表語句
4.創建表-建表語句
?5.創建表-數據類型
數值類型?
字符串類型?
日期時間類型?
?6.表操作-修改
01.添加字段
02.修改數據類型?
03.修改字段名和字段類型
?04.刪除字段
05.修改表名
7.表操作-刪除
刪除表
刪除指定表, 并重新創建表
前言
? ? ? ? 上一期我們簡單介紹了MySQL數據庫的相關內容以及SQL語句的分類,那么本期我們開始學習SQL語句中的ddl語句部分,DDL語句即Data? Definition Language,數據定義語言,用來定義數據庫對象(數據庫,表,字段),下面我會通過數據庫和表的操作來演示。
?開啟登錄數據庫
? ? ? ? cmd 管理員進入,然后用指令開啟MySQL服務器net start?mysql??
? ? ? ? 然后就是登錄等等操作,在上一期就講解過了這里就不多說了(上一期鏈接:MySQL入門------數據庫與SQL概述-CSDN博客)。
一、數據庫操作?
1.查詢所有數據庫
show databases;?
?2.切換使用數據庫
我們要操作某一個數據庫下的表時,就需要通過該指令,切換到對應的數據庫下,否則是不能操作的。
use 數據庫名稱;
3.查詢當前使用的數據庫
select database();?
?
4.創建數據庫?
創建一個hello數據庫, 使用數據庫默認的字符集。
?create database hello;
?在同一個數據庫服務器中,不能創建兩個名稱相同的數據庫,否則將會報錯。
?可以通過if not exists 參數來解決這個問題,數據庫不存在, 則創建該數據庫,如果存在,則不創建。
?create database if not exists hello;
?創建一個itheima數據庫,并且指定字符集
create database itheima default charset utf8mb4;
?5.刪除數據庫
drop database [?if exists ] 數據庫名字;
如果刪除一個不存在的數據庫,將會報錯。此時,可以加上參數 if exists ,如果數據庫存在,再執行刪除,否則不執行刪除。?
?二、表操作
1.查詢當前數據庫所有表
show tables;?
比如,我們可以切換到sys這個系統數據庫,并查看系統數據庫中的所有表結構。?
use sys;
show tables;
2.查看指定表結構?
desc 表名;?
?通過這條指令,我們可以查看到指定表的字段,字段的類型、是否可以為NULL,是否存在默認值等信息。
3.查詢指定表的建表語句
show create table 表名;
通過這條指令,主要是用來查看建表語句的,而有部分參數我們在創建表的時候,并未指定也會查詢到,因為這部分是數據庫的默認值,如:存儲引擎、字符集等。?
4.創建表-建表語句
?create table 表名(
? ? ? ? 字段1 類型 [comment 注釋],
????????字段2?類型 [comment 注釋],
????????字段3?類型 [comment 注釋],
????????……
) [comment 注釋];
注意: [...] 內為可選參數, 后一個字段后面沒有逗號
?5.創建表-數據類型
在上述的建表語句中,我們在指定字段的數據類型時,用到了int ,varchar,那么在MySQL中除了以上的數據類型,還有哪些常見的數據類型呢? 接下來,我們就來詳細介紹一下MySQL的數據類型。
MySQL中的數據類型有很多,主要分為三類:數值類型、字符串類型、日期時間類型。
數值類型?
類型 | 大小 | 有符號(SIGNED)范圍 | 無符號(UNSIGNED)范圍 | 描述 |
TINYINT | 1byte | (-128,127) | (0,255) | 小整數值 |
SMALLINT | 2bytes | (-32768,32767) | (0,65535) | 大整數值 |
MEDIUMINT | 3bytes | (-8388608,8388607) | (0,16777215) | 大整數值 |
INT/INTEGER | 4bytes | (-2147483648, 2147483647) | (0,4294967295) | 大整數值 |
BIGINT | 8bytes | (-2^63,2^63-1) | (0,2^64-1) | 極大整數值 |
FLOAT | 4bytes | (-3.402823466 E+38, 3.402823466351 E+38) | 0 和 (1.175494351 E- 38,3.402823466 E+38) | 單精度浮點數值 |
DOUBLE | 8bytes | (-1.7976931348623157 E+308, 1.7976931348623157 E+308) | 0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308) | 雙精度浮點數值 |
DECIMAL | ? | 依賴于M(精度)和D(標度) 的值 | 依賴于M(精度)和D(標度)的值 | 小數 值(精 確定點數) |
要根據實際情況去選擇恰當的數據類型,比如年齡不會出現負數,所以要選擇無符號類型。
字符串類型?
類型 | 大小 | 描述 |
CHAR | 0-255 bytes | 定長字符串(需要指定長度) |
VARCHAR | 0-65535 bytes | 變長字符串(需要指定長度) |
TINYBLOB | 0-255 bytes | 不超過255個字符的二進制數據 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二進制形式的長文本數據 |
TEXT | 0-65 535 bytes | 長文本數據 |
MEDIUMBLOB | 0-16 777 215 bytes | 二進制形式的中等長度文本數據 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等長度文本數據 |
LONGBLOB | 0-4 294 967 295 bytes | 二進制形式的極大文本數據 |
LONGTEXT | 0-4 294 967 295 bytes | 極大文本數據 |
char 與 varchar 都可以描述字符串,char是定長字符串,指定長度多長,就占用多少個字符,和字段值的長度無關 。而varchar是變長字符串,指定的長度為 大占用長度 。相對來說,char的性能會更高些。?
日期時間類型?
類型 | 大小 | 范圍 | 格式 | 描述 |
DATE | 3 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | -838:59:59 至 838:59:59 | HH:MM:SS | 時間值或持續時間 |
YEAR | 1 | 1901 至 2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和時間值 |
TIMESTAMP | 4 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和時間值,時間戳 |
?下面創建一個emp員工表,要求如下:
- 編號(純數字)
- 員工工號 (字符串類型,長度不超過10位)
- 員工姓名(字符串類型,長度不超過10位)
- 性別(男/女,存儲一個漢字)
- 年齡(正常人年齡,不可能存儲負數)
- 身份證號(二代身份證號均為18位,身份證中有X這樣的字符)
- 入職時間(取值年月日即可)
建表語句如下:
create table emp(id int comment '編號',num varchar(10) comment '編號',name varchar(10) comment '名字',gender char(1) comment '性別',age tinyint unsigned comment '年齡',idcard char(18) comment '身份證',entrydate date comment '入職時間'
) comment '員工表';
SQL語句編寫完畢之后,就可以在MySQL的命令行中執行SQL,然后也可以通過 desc 指令查詢表結構信息:?
表結構創建好了,里面的name字段是varchar類型, 大長度為10,也就意味著如果超過10將會報錯,如果我們想修改這個字段的類型 或 修改字段的長度該如何操作呢?接下來再來講解DDL語句中,如何操作表字段。?
?6.表操作-修改
01.添加字段
alter table emp add 字段名?類型?[comment '注釋'];
案例:下面在上面emp表的基礎上添加一個老板名字的字段?
?alter table emp add emloyer varchar(10) comment '老板';
02.修改數據類型?
?alter table 表名 modify 字段名 新的數據類型;
案例:把上面老板的數據類型由varchar(10)改為varchar(20)
alter table emp modify emloyer varchar(20);
03.修改字段名和字段類型
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型 (長度) [ COMMENT 注釋 ] [ 約束 ];
alter table emp change emloyer username varchar(30) comment '昵稱';
?04.刪除字段
?ALTER TABLE 表名 DROP 字段名;
?alter table emp drop username;
05.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
?alter table emp rename to employee;
7.表操作-刪除
刪除表
DROP TABLE [ IF EXISTS ] 表名;

刪除指定表, 并重新創建表
其中的數據被全部刪除了,只保留下表結構
TRUNCATE TABLE 表名;
注意: 在刪除表的時候,表中的全部數據也都會被刪除。
以上就是本期的全部內容了,我們下次見!
?分享一張壁紙: