命令行客戶端MySQL的使用
學習目標
- 能夠知道使用命令行連接數據庫命令
- 能夠寫出增、刪、改、查的SQL語句
1. 登錄和登出數據庫
登錄數據庫:
輸入下面命令:
mysql -uroot -p
說明:
- -u 後面是登錄的用戶名
- -p 後面是登錄密碼, 如果不填寫, 回車之後會提示輸入密碼
登錄數據庫效果圖:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-reeSYHsH-1584018654647)(imgs/mysql%E8%BF%9E%E6%8E%A5%E6%93%8D%E4%BD%9C.png)]
登錄成功後, 輸入如下命令查看效果:
# 顯示當前時間
select now();
登出(退出)數據庫:
quit 或 exit 或 ctrl + d
2. 數據庫操作的SQL語句
-
查看所有數據庫
show databases;
-
創建數據庫
create database 數據庫名 charset=utf8; 例: create database python charset=utf8;
-
使用數據庫
use 數據庫名;
-
查看當前使用的數據庫
select database();
-
刪除數據庫-慎重
drop database 數據庫名; 例: drop database python;
3. 表結構操作的SQL語句
-
查看當前數據庫中所有表
show tables;
-
創建表
create table students( id int unsigned primary key auto_increment not null, name varchar(20) not null, age tinyint unsigned default 0, height decimal(5,2), gender enum('男','女','人妖','保密') );
說明:
create table 表名( 字段名稱 數據類型 可選的約束條件, column1 datatype contrai, ... );
-
修改表-添加字段
alter table 表名 add 列名 類型 約束; 例: alter table students add birthday datetime;
-
修改表-修改字段類型
alter table 表名 modify 列名 類型 約束; 例: alter table students modify birthday date not null;
說明:
- modify: 只能修改字段類型或者約束,不能修改字段名
-
修改表-修改字段名和字段類型
alter table 表名 change 原名 新名 類型及約束; 例: alter table students change birthday birth datetime not null;
說明:
- change: 既能對字段重命名又能修改字段類型還能修改約束
-
修改表-刪除字段
alter table 表名 drop 列名; 例: alter table students drop birthday;
-
查看創表SQL語句
show create table 表名; 例: show create table students;
-
查看創庫SQL語句
show create database 數據庫名; 例: show create database mytest;
-
刪除表
drop table 表名; 例: drop table students;
4. 表數據操作的SQL語句
-
查詢數據
-- 1. 查詢所有列 select * from 表名; 例: select * from students; -- 2. 查詢指定列 select 列1,列2,... from 表名; 例: select id,name from students;
-
添加數據
-- 1. 全列插入:值的順序與表結構字段的順序完全一一對應 insert into 表名 values (...) 例: insert into students values(0, 'xx', default, default, '男'); -- 2. 部分列插入:值的順序與給出的列順序對應 insert into 表名 (列1,...) values(值1,...) 例: insert into students(name, age) values('王二小', 15); -- 3. 全列多行插入 insert into 表名 values(...),(...)...; 例: insert into students values(0, '張飛', 55, 1.75, '男'),(0, '關羽', 58, 1.85, '男'); -- 4. 部分列多行插入 insert into 表名(列1,...) values(值1,...),(值1,...)...; 例: insert into students(name, height) values('劉備', 1.75),('曹操', 1.6);
說明:
- 主鍵列是自動增長,但是在全列插入時需要佔位,通常使用空值(0或者null或者default)
- 在全列插入時,如果字段列有默認值可以使用 default 來佔位,插入後的數據就是之前設置的默認值
-
修改數據
update 表名 set 列1=值1,列2=值2... where 條件 例: update students set age = 18, gender = '女' where id = 6;
-
刪除數據
delete from 表名 where 條件 例: delete from students where id=5;
問題:
上面的操作稱之爲物理刪除,一旦刪除就不容易恢復,我們可以使用邏輯刪除的方式來解決這個問題。
-- 添加刪除表示字段,0表示未刪除 1表示刪除 alter table students add isdelete bit default 0; -- 邏輯刪除數據 update students set isdelete = 1 where id = 8;
說明:
- 邏輯刪除,本質就是修改操作
5. 小結
- 登錄數據庫: mysql -uroot -p
- 退出數據庫: quit 或者 exit 或者 ctr + d
- 創建數據庫: create database 數據庫名 charset=utf8;
- 使用數據庫: use 數據庫名;
- 刪除數據庫: drop database 數據庫名;
- 創建表: create table 表名(字段名 字段類型 約束, …);
- 修改表-添加字段: alter table 表名 add 字段名 字段類型 約束
- 修改表-修改字段類型: alter table 表名 modify 字段名 字段類型 約束
- 修改表-修改字段名和字段類型: alter table 表名 change 原字段名 新字段名 字段類型 約束
- 修改表-刪除字段: alter table 表名 drop 字段名;
- 刪除表: drop table 表名;
- 查詢數據: select * from 表名; 或者 select 列1,列2,… from 表名;
- 插入數據: insert into 表名 values (…) 或者 insert into 表名 (列1,…) values(值1,…)
- 修改數據: update 表名 set 列1=值1,列2=值2… where 條件
- 刪除數據: delete from 表名 where 條件