🔥個人主頁🔥:孤寂大仙V
🌈收錄專欄🌈:MySQL
🌹往期回顧🌹:【MySQL】認識MySQL
🔖流水不爭,爭的是滔滔不
- 一、庫操作
- 1.1 顯示數據庫
- 1.2 創建數據庫
- 1.3 字符集和校驗規則
- 1.4 顯示創建語句
- 1.5 修改數據庫
- 1.6 數據庫刪除
- 1.7 備份與還原
- 1.8 查看連接情況
- 二、表操作
- 2.1 創建表
- 2.2 查看當前數據庫有哪些表
- 2.2 查看表結構
- 2.3 修改表
- 刪除表
- 修改表名字
- 向表中插入內容
- 查看表的內容
- 向表結構中新增行 表內容新增列
- 修改表結構中信息的存儲大小
- 刪除表結構中的行 表內容中的列
一、庫操作
1.1 顯示數據庫
show databases;
show databases;” 是 MySQL 中的一條 SQL 語句,用于顯示當前 MySQL 服務器上,當前用戶權限范圍內的所有可用數據庫。
語法格式為SHOW DATABASES (LIKE ‘數據庫名’);其中LIKE從句是可選項,用于匹配指定的數據庫名稱,支持部分匹配和完全匹配 。
1.2 創建數據庫
語法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
大寫的表示關鍵字
[] 是可選項
CHARACTER SET: 指定數據庫采用的字符集
COLLATE: 指定數據庫字符集的校驗規則
創建名為test1的數據庫
create database test;
1.3 字符集和校驗規則
創建數據庫的時候,有兩個編碼集:
1.數據庫編碼集——數據庫未來的存儲數據
2.數據庫效驗集——支持數據庫,進行字段比較使用的編碼,本質也是一種讀取數據庫中數據的采用的編碼格式。數據庫對數據進行任何操作,必須保證操作和編碼是一致的。
創建指定字符集與指定校對規則的數據庫
創建一個使用utf8字符集的數據庫
create database db2 charset=utf8;
創建一個使用utf字符集并帶校隊規則的數據庫
create database db3 charset=utf8 collate utf8_general_ci;
查看系統默認字符集以及校驗規則
當我們創建數據庫沒有指定字符集和校驗規則時,系統使用默認字符集:utf8,校驗規則是:utf8_ general_ ci
查看數據庫支持的字符集
show charset
字符集主要是控制用什么語言
查看數據庫支持的字符集校驗規則
show collation;
效驗數據對數據庫的影響
我們用能不能區分字母大小寫的效驗碼舉例
創建一個數據庫,效驗規則使用utf8_general_ci 不能區分大小寫
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
mysql> insert into person (name) values ('a');mysql> insert into person (name) values ('A');mysql> insert into person (name) values ('b');mysql> insert into person (name) values ('B');mysql> insert into person (name) values ('c');mysql> insert into person (name) values ('C');
select * from person;
創建一個數據庫,效驗規則使用utf8_bin 區分大小寫
create database test2 collate utf8_bin;
create table person(name varchar(20));
mysql> insert into person (name) values ('a');mysql> insert into person (name) values ('A');mysql> insert into person (name) values ('b');mysql> insert into person (name) values ('B');mysql> insert into person (name) values ('c');mysql> insert into person (name) values ('C');
select * from person;
校驗集是會影響我們的數據庫的結果的。
1.4 顯示創建語句
show create database 數據庫名;
MySQL 建議我們關鍵字使用大寫,但是不是必須的。
數據庫名字的反引號``,是為了防止使用的數據庫名剛好是關鍵字
/*!40100 default… */ 這個不是注釋,表示當前mysql版本大于4.01版本,就執行這句話
1.5 修改數據庫
語法
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
對數據庫的修改主要指的是修改數據庫的字符集,校驗規則
修改test1數據庫字符集改為gbk
alter database test1 charset=gbk;
1.6 數據庫刪除
DROP DATABASE [IF EXISTS] db_ name;
執行刪除之后的結果:
- 數據庫內部看不到對應的數據庫
- 對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪
注意:不要隨意刪除數據庫
刪除test2數據庫
drop database test2;
1.7 備份與還原
語法
# mysqldump -P3306 -u root -p 密碼 -B 數據庫名 > 數據庫備份存儲的文件路徑
將test1庫備份到文件(退出連接),在我們Linux想要下,你自己想要進行備份的路徑下進行備份。
mysqldump -P3306 -uroot -p -B test1> test_25_3_11
發現備份文件,在數據中做的有效操作都備份起來了。
如果把數據庫中的test1這一數據庫刪除,進行還原要進行一下操作
source后跟備份文件所在的路徑
source /root/learn/test_25_3_11/test_25_3_11;
如果備份的不是整個數據庫,而是其中的一張表,怎么做
# mysqldump -u root -p 數據庫名 表名1 表名2 > D:/mytest.sql
同時備份多個數據庫
# mysqldump -u root -p -B 數據庫名1 數據庫名2 ... > 數據庫存放路徑
如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據庫,再使用source來還原
1.8 查看連接情況
就是看當前有哪些人用這個數據庫
show processlist;
二、表操作
2.1 創建表
語法
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校驗規則 engine 存儲引擎;
- field 表示列名
- datatype 表示列的類型
- character set 字符集,如果沒有指定字符集,則以所在數據庫的字符集為準
- collate 校驗規則,如果沒有指定校驗規則,則以所在數據庫的校驗規則為準
創建表之前要有數據庫,表是存在數據庫里的。
mysql> create table if not exists user1(-> id int,-> name varchar(20) comment '用戶名',-> password char(32) comment '用戶的密碼',-> birthday date comment '用戶的生日'-> )character set utf8 collate utf8_general_ci engine MyIsam;
mysql> create table if not exists user2(-> id int,-> name varchar(20) comment '用戶名',-> password char(32) comment '用戶的密碼',-> birthday date comment '用戶的生日'-> )charset=utf8 collate=utf8_general_ci engine=InnoDB;
不同的存儲引擎,創建表的文件不一樣
users 表存儲引擎是 MyISAM ,在數據目中有三個不同的文件,分別是:
- users.frm:表結構
- users.MYD:表數據
- users.MYI:表索引
存儲引擎是 InnoDB,有兩個文件,分別是:
- user2.frm
- user2.ibd
2.2 查看當前數據庫有哪些表
show tables;
2.2 查看表結構
desc 表名;
查看更詳細信息
2.3 修改表
在項目實際開發中,經常修改某個表的結構,比如字段名字,字段大小,字段類型,表的字符集類型,表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表
刪除表
語法
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
把一個表刪除
drop table user2;
修改表名字
alter table 原來的名字 rename to 新名字;
向表中插入內容
insert into user values(1,'張三','12345','2005-10-1');
insert into user values (2,'李四','54321','2004-10-1');
查看表的內容
select * from 表名稱;
向表結構中新增行 表內容新增列
alter table 表名 add 新增的列的名稱 大小 comment 描述 after birthday
alter table user add image_path varchar(128) comment '這個是用戶的頭像路徑' after birthday;
新增后發現表結構中新增了一行,表內容中新增了一列。
修改表結構中信息的存儲大小
alter table 表名稱 modify name 新的字段
alter table user modify name varchar(60);
刪除表結構中的行 表內容中的列
alter table 表名稱 drop 想要刪除的內容;
alter table user drop password;