mysql資料庫是一個常用的關係型資料庫 關係型資料庫核心元素有哪些? 主鍵:特殊欄位,用來唯一標識記錄的唯一性 欄位:數據列 記錄:數據行 數據表:數據行的集合 資料庫:數據表的集合 安裝、啟動、停止、重啟mysql伺服器的命令 安裝:sudo apt-get install mysql-serv ...
mysql資料庫是一個常用的關係型資料庫
關係型資料庫核心元素有哪些?
主鍵:特殊欄位,用來唯一標識記錄的唯一性
欄位:數據列
記錄:數據行
數據表:數據行的集合
資料庫:數據表的集合
安裝、啟動、停止、重啟mysql伺服器的命令
安裝:sudo apt-get install mysql-server
啟動:sudo service mysql start
# 查看進程中是否存在mysql服務 ps ajx|grep mysql
停止:sudo service mysql stop
重啟:sudo service mysql restart
mysql 資料庫的操作
1.連接資料庫
mysql -u root -pmysql
不顯示密碼連接
python@ubuntu:~/Desktop$ mysql -u root -p
Enter password: mysql
退出資料庫
ctrl+l:清除命令屏幕
quit\exit
2.創建資料庫
create database 資料庫名 charset=utf8;
### 創建資料庫時一定要記得解決編碼問題
3.查看當前使用的資料庫: select database();
查看所以資料庫: show databases;
查看當前資料庫中所有表: show tabes;
查看當前表中所有的列: select * from 表名;
查看表結構: desc 表名;
4. 1)創建表需要用到的數據類型:
整數: int,bit #int unsigned:無符號整形 #tinyint unsigned:無符號整形(但範圍比較小,一般用於年齡) #.bit是位數據類型,長度為1位元組;int 是整型;bit 實際就是bool類型,只能是0和1,int的是4個位元組的整型
小數: decimal #decimal(5,2)表示五位數字,兩位小數點
字元串: varchar,char #varchar:可變字元串
日期時間: date, time, datetime
枚舉類型: enum
主鍵: primary key
自動增長(增加): atuo_increment
預設值: default
不能為空: not null
外鍵: foreign key
in
2)表格式:create table 數據表名字(id 無符號整形 主鍵 自動增長(增加) 不能為空; name 可變字元串(數字/範圍) 預設值'';age 無符號整形 預設值0;height 小數;gender 枚舉 預設值;foreign key 無符號整形 預設值);
例如:create table t_students(id int unsigned primary key auto_increment not null,name varchar(10) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男','女','中性','保密') default '保密',cls_id int unsigned default 0);
5.查看創建資料庫的語句: show create database 庫名
查看創建表的語句: show create table 表名
6.使用資料庫: use 資料庫名
刪除資料庫: drop database 資料庫名
刪除表: drop table 表名
刪除表--刪除欄位(列)alter table 表名 drop 列名
7.表的修改:
1) 修改表-添加欄位 kouhao (班級口號)
alter table 表名 add 列名 類型及約束;
alter table t_classes add kouhao varchar(20) not null default '人生苦短,我用Python';
2) 修改表-修改欄位:重命名版
alter table 表名 change 原名 新名 類型及約束;
alter table t_classes change kouhao logo varchar(20);
3) 修改表-修改欄位:不重命名版
alter table 表名 modify 列名 類型及約束;
alter table t_classes modify logo varchar(20) not null default '人生苦短,我用Python';
8.數據的增刪改查(curd)
curd的解釋: 代表創建(Create)、更新(Update)、讀取(Retrieve)和刪除(Delete)
1)增加
1.全列插入
insert [into] 表名 values(...) #into可用可不用
主鍵欄位 可以用 0 null default 來占位
如:向classes表中插入 一個班級
insert into t_classes values(0,'python02');
insert into t_classes values(0,'python01');
如:向students表插入一個學生信息(id,name,age,height,gender,cls_id)
insert t_students values(null,'大喬',23,165.12,'男',1);
insert t_students values(null,'李白',23,180.12,'女',1);
2.部分插入
insert into 表名(列1,...) values(值1,...)
insert into t_students(name,gender) values ('張飛',1); #這裡張飛後面的一是創建表時,列表性別列對象的枚舉參數順序
3.多行插入
insert into 表名(name,gender) values("小張1",1),("小張2",2);
insert into t_students(name,gender) values('小王',2),('大王',3);
2)修改
update 表名 set 列1=值1,列2=值2... where 條件;
1.全部修改
update t_students set height=188.88 ;
2.按條件修改
update t_students set gender='女' where id=1;
3.按條件修改多個值
update students set gender ="",name = "xxx" ;
update t_students set height=165.60,gender=1 where id=3;
3)查詢
1.查詢所有列
select * from 表名;
select * from t_students;
2.指定條件查詢
select * from t_students where name='李白';
3.查詢指定列
select 列1,列2,... from 表名;
select name,age from t_students;
4)刪除
1.物理刪除 #刪除後不可恢復
delete from 表名 where 條件
delete from t_students where id=4;
2.邏輯刪除 #對要刪除的對象做標記,可恢復(用一個欄位來表示 這條信息是否已經不能再使用了)
需要給students表添加一個 isdelete 欄位 bit 類型才能進行邏輯刪除
isdelete=1 就是代表刪除標記;is_delete=0 就是恢復 #用二進位0和1表示
update t_students set isdelete=1 where id=5 ;