python數據庫-MySQL數據庫的增刪改查基本操做(49)

 

1、數據庫基礎

    • 表 table:數據是保存在表內,保存在一個表內的數據,應該具備相同的數據格式
    • 行:行用於記錄數據
    • 記錄:行內的數據
    • 列:列用於規定數據格式
    • 字段:數據的某個列
    • 主鍵:惟一地標識表中的某一條記錄,不能空,不能重複

 

2、數據庫的數據類型

一、數字類型

整數: tinyint、smallint、mediumint、int、bigint
浮點數: float、double、real、decimal
日期和時間: date、time、datetime、timestamp、yearmysql

二、字符串類型

字符串: char、varchar
文本: tinytext、text、mediumtext、longtextsql

三、二進制

  (可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob數據庫

 

四、列的約束: 

  

 

3、數據庫鏈接

  在關於數據庫的第一篇文章中就給你們講了使用Navicat鏈接數據庫的方法,那麼這裏再給你們講解一下使用命令鏈接數據庫的方式。服務器

  通常在公司開發中,可能會將數據庫統一搭建在一臺服務器上,全部開發人員共用一個數據庫,而不是在本身的電腦中配置一個數據庫,遠程鏈接命令spa

mysql -h ip地址 -u root -p
  • -h後面寫要鏈接的主機ip地址
  • -u後面寫鏈接的用戶名
  • -p回車後寫密碼

 

4、數據庫操做

一、建立數據庫

create database 數據庫名 charset=utf8;

二、刪除數據庫

drop database 數據庫名;

三、切換數據庫

use 數據庫名;

四、查看當前選擇的數據庫

select database();

五、查看目前全部的數據庫

show databases;

 

5、表操做

一、查看當前數據庫中全部表

show tables; 

二、建立表

create table 表名(列及類型);
  • 列名:id
  • 類型:int unsigned
  • 約束1:not null
  • 約束2:primary key
  • 約束3:auto_increment

  列的格式:列的名稱 類型 約束3d

例如:code

create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);

三、修改表

語法:blog

alter table 表名 add(添加)|modify(修改)|drop(刪除) 列名 類型;

添加列:h_skill 爲字符類型圖片

alter table hero add h_skill varchar(10);

修改列:h_skill修改本屬性不能爲空ip

alter table hero modify h_skill varchar(10) not null;

四、刪除表

drop table 表名;

五、查看錶結構

desc 表名;

例如:

mysql> desc hero;
+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| h_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| h_name  | varchar(10) | NO   |     | NULL    |                |
| h_skill | varchar(10) | NO   |     | NULL    |                |
+---------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

六、更改表名稱

rename table 原表名 to 新表名;

 七、查看邊的建立語句

show create table 表名

例如:

mysql> show create table hero; +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                   |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hero  | CREATE TABLE `hero` ( `h_id` int(11) NOT NULL AUTO_INCREMENT, `h_name` varchar(10) NOT NULL, `h_skill` varchar(10) NOT NULL, PRIMARY KEY (`h_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

 

6、數據操做

一、增長數據

insert into 表名(列1,...) values(值1,...);

例如:

insert into hero(h_id,h_name,h_skill) values(1,'韓信','裂天爆斬');

  主鍵列是自動增加,可是在全列插入時須要佔位,一般使用0,插入成功後以實際數據爲準

二、簡單查詢數據

select * from 表名

例如:

mysql> select * from hero; +------+--------+--------------+
| h_id | h_name | h_skill      |
+------+--------+--------------+
|    1 | 韓信   | 裂天爆斬     |
+------+--------+--------------+
1 row in set (0.00 sec)

三、修改數據

update 表名 set 列1=值1,... where 條件

例如:

update hero set h_skill='真裂天爆斬' where h_id=1;
mysql> select * from hero;
+------+--------+-----------------+
| h_id | h_name | h_skill         |
+------+--------+-----------------+
|    1 | 韓信   | 真裂天爆斬      |
+------+--------+-----------------+
1 row in set (0.00 sec)

四、物理刪除數據

delete from 表名 where 條件

例如:

mysql> delete from hero where h_id=1;
Query OK, 1 row affected (0.01 sec)

mysql> select * from hero;
Empty set (0.00 sec)

五、邏輯刪除,

  本質就是修改操做update ,並無刪除,只有用isdelete去和其餘沒有刪除的數據區別,因此叫作邏輯刪除,方便回覆誤刪數據

alter table hero add isdelete bit default 0;
在須要作邏輯刪除的時候寫上
update hero set isdelete=1 where h_id=5;
相關文章
相關標籤/搜索