mysql增刪改查等基本操作
–01 mysql 資料庫的操作 ctrl + a 快速回到行首 ctrl + e 回到行末 ctrl + l 清屏 ctrl + c + 回車 結束
-- 連結資料庫 mysql -uroot -pmysql -- 不顯示密碼 mysql -uroot -p mysql -- 退出資料庫 quit/exit/ctrl + d -- sql語句最後需要有分號;結尾 -- 顯示資料庫版本 version select version(); -- 顯示時間 select now(); -- 檢視當前使用的資料庫 select database(); -- 檢視所有資料庫 show databases; -- 建立資料庫 -- create database 資料庫名 charset=utf8; create database python16; create database python16 charset=utf8;(注意) -- 檢視建立資料庫的語句 -- show create database .... show create database python16; -- 使用資料庫 -- use 資料庫的名字 use python16; -- 刪除資料庫 -- drop database 資料庫名; drop database python16;
–02 資料表的操作
-- 檢視當前資料庫中所有表 show tables; -- 建立表 -- int unsigned 無符號整形 -- auto_increment 表示自動增長 -- not null 表示不能為空 -- primary key 表示主鍵 -- default 預設值 -- create table 資料表名字 (欄位 型別 約束[, 欄位 型別 約束]); create table xxxx ( id int unsigned primary key not null auto_increment, name varchar(20) ); -- 查看錶結構 -- desc 資料表的名字; desc xxxx; -- 建立 classes 表(id、name) create table classes( id int unsigned primary key not null auto_increment, name varchar(20) ); -- 建立 students 表(id、name、age、high (decimal)、gender (enum)、cls_id) create table students( id int unsigned primary key not null auto_increment, name varchar(20), age int unsigned, high decimal(5,2), gender enum("男","女","中性","保密") default "保密", cls_id int ); -- 查看錶的建立語句 -- show create table 表名字; show create table students; -- 修改表-新增欄位 mascot (吉祥物) -- alter table 表名 add 列名 型別; alter table classes add jixiangwu varchar(20); -- 修改表-修改欄位:不重新命名版 -- alter table 表名 modify 列名 型別及約束; alter table classes modify jixiangwu varchar(30); -- 修改表-修改欄位:重新命名版 -- alter table 表名 change 原名 新名 型別及約束; alter table classes change jixiangwu mascot varchar(20); -- 修改表-刪除欄位 -- alter table 表名 drop 列名; alter table classes drop mascot; -- 刪除表 -- drop table 表名; -- drop database 資料庫; drop table xxxx;
–03 增刪改查(curd)(重點–記憶)
-- 增加
±------±-----------------±-----±----±--------±---------------+ | Field | Type | Null | Key | Default | Extra | ±------±-----------------±-----±----±--------±---------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | ±------±-----------------±-----±----±--------±---------------+
-- 全列插入
-- insert [into] 表名 values(...)
-- 主鍵欄位 可以用 0 null default 來佔位
-- 向classes表中插入 一個班級
insert into classes values(1,"python16");
±-------±------------------------------------±-----±----±--------±---------------+ | Field | Type | Null | Key | Default | Extra | ±-------±------------------------------------±-----±----±--------±---------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | | age | int(10) unsigned | YES | | NULL | | | high | decimal(5,2) | YES | | NULL | | | gender | enum(‘男’,‘女’,‘中性’,‘保密’) | YES | | 保密 | | | cls_id | int(11) | YES | | NULL | | ±-------±------------------------------------±-----±----±--------±---------------+
-- 向students表插入 一個學生資訊
insert into students values(1,"班主任",18,172.66,default,111);
-- 部分插入
-- insert into 表名(列1,...) values(值1,...)
insert into students(name,high,gender) values("吳彥祖",188.88,1);
-- 多行插入
insert into students values(0,"老謝",28,188.88,1,111),(0,"老王",28,155.55,1,111);
-- 修改
-- update 表名 set 列1=值1,列2=值2... where 條件;
-- 全部修改
update students set high=170.00;
-- 按條件修改
update students set high=188.88 where id=2;
-- 查詢基本使用
-- 查詢所有列
-- select * from 表名;
select * from students;
---定條件查詢
select * from students where id=2;
-- 查詢指定列
-- select 列1,列2,... from 表名;
select name,gender from students;
-- 可以使用as為列或表指定別名
-- select 欄位[as 別名] , 欄位[as 別名] from 資料表;
select name as "姓名",gender as "性別" from students;
-- 欄位的順序
select gender as "性別",name as "姓名" from students;
-- 刪除
-- 物理刪除
-- delete from 表名 where 條件
delete from students where id=2;
-- 邏輯刪除
-- 用一個欄位來表示 這條資訊是否已經不能再使用了
-- 給students表新增一個 is_delete 欄位 bit 型別
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=4;
-- 資料庫備份與恢復(瞭解)
-- mysqldump –uroot –p 資料庫名 > python.sql;
-- mysql -uroot –p 新資料庫名 < python.sql;