--01 mysql 數據庫的操作
-- 鏈接數據庫
mysql -uroot -pmysql
-- 不顯示密碼
mysql -uroot -p
-- 退出數據庫
--quit/exit/ctrl + d
exit
-- sql語句最後需要有分號;結尾
-- 顯示數據庫版本 version
select version();
-- 顯示時間 now
select now();
-- 查看當前使用的數據庫
select database();
-- 查看所有數據庫
show databases;
-- 創建數據庫
-- create database 數據庫名 charset=utf8;
create database collection charset=utf8;
-- 查看創建數據庫的語句
-- show create database 數據庫名
# (可以查看編碼)
show create database collection;
-- 使用數據庫
-- use 數據庫的名字
use collection;
-- 刪除數據庫
-- drop database 數據庫名;
drop database collection;
--02 數據表的操作
-- 查看當前數據庫中所有表
show tables;
-- 創建表
-- int unsigned 無符號整形
-- auto_increment 表示自動增長
-- not null 表示不能爲空
-- primary key 表示主鍵
-- default 默認值
-- create table 數據表名字 (字段 類型 約束[, 字段 類型 約束]);
create table test(name varchar(30) not null,age int unsigned);
-- 查看錶結構
-- desc 數據表的名字;
# (可以看類型和約束)
desc test;
-- 創建 classes 表(id、name)
create table classes(id int unsigned primary key auto_increment,name varchar(50) not null);
-- 創建 students 表(id、name、age、high (decimal)、
--gender (enum)、cls_id)
create table students(id int unsigned primary key auto_increment,name varchar(50) not null,
age int(10) unsigned,high decimal(3,2),gender enum('男','女','中性','保密') default '保密',cls_id int unsigned);
-- 查看錶的創建語句
-- show create table 表名字;
show create table students;
-- 修改表-添加字段 mascot (吉祥物)
-- alter table 表名 add 列名 類型;
alter table classes add mascot varchar(50);
-- 修改表-修改字段:不重命名版
-- alter table 表名 modify 列名 類型及約束;
alter table classes modify mascot varchar(100);
-- 修改表-修改字段:重命名版
-- alter table 表名 change 原名 新名 類型及約束;
alter table classes change mascot jxw int unsigned;
-- 修改表-刪除字段
-- alter table 表名 drop 列名;
alter table classes drop jxw;
-- 刪除表
-- drop table 表名;
-- drop database 數據庫;
drop table test;
drop database python20;
--03 增刪改查(curd)
-- 增加
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
-- 全列插入
-- insert [into] 表名 values(...)
-- 主鍵字段 可以用 0 null default 來佔位
-- 向classes表中插入 一個班級
insert into classes(id,name) values(1,'python1');
insert into classes(name) values('python2');
# id主鍵,每個值是唯一的。可以省略,自增長。從0開始,寫0相當於沒寫。只是自增長,不一定等差
-- 向students表插入 一個學生信息
+--------+-------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------------------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | NULL | |
| age | int(10) unsigned | YES | | NULL | |
| high | decimal(5,2) | YES | | NULL | |
| gender | enum('男','女','中性','保密') | YES | | 保密 | |
| cls_id | int(11) | YES | | NULL | |
+--------+-------------------------------------+------+-----+---------+----------------+
-- 全部插入
insert into students(id,name,age,high,gender,cls_id) values(0,'zs',18,179,'男',1);
-- 部分插入
-- insert into 表名(列1,...) values(值1,...)
insert into students(name) values('ls');
insert into students(name,gender) values('aa',1);
# enum也可以用數字來選擇,從1開始
-- 多行插入
insert into students(name) values('bb'),('cc');
-- 修改
-- update 表名 set 列1=值1,列2=值2... where 條件;
-- 全部修改
update students set age=20;
-- 按條件修改
update students set age=10 where id=5;
-- 按條件修改多個值
-- update students set gender ="",name = "xxx" where ;
update students set gender='女',name='pp' where id=4;
-- 查詢基本使用
-- 查詢所有列
-- select * from 表名;
select * from students;
---定條件查詢
select * from students where id=5;
-- 查詢指定列
-- select 列1,列2,... from 表名;
select name,age from students;
-- 可以使用as爲列或表指定別名
-- select 字段[as 別名] , 字段[as 別名] from 數據表;
select name as name2 from students;
select name as name2,age from students;
-- 字段的順序
select age,name from students;
-- 刪除
-- 物理刪除
-- delete from 表名 where 條件
delete from students where id=5;
-- 邏輯刪除
-- 用一個字段來表示 這條信息是否已經不能再使用了
-- 給students表添加一個 is_delete 字段 bit 類型
--alter table 表名 add 字段 類型 default 默認值;
alter table students add is_delete bit default 0;
-- 數據庫備份與恢復(瞭解)
-- mysqldump –uroot –p 數據庫名 > python.sql;
-- mysql -uroot –p 新數據庫名 < python.sql; # 注意導入的時候需要先要創建數據庫
# 在ubuntu終端下輸入,備份的不是數據,是命令操作過程
mysqldump -uroot -p collection > python.sql;
mysql -uroot -p test2 < python.sql;