一、資料庫基礎 表 table:數據是保存在表內,保存在一個表內的數據,應該具有相同的數據格式 行:行用於記錄數據 記錄:行內的數據 列:列用於規定數據格式 欄位:數據的某個列 主鍵:唯一地標識表中的某一條記錄,不能空,不能重覆 表 table:數據是保存在表內,保存在一個表內的數據,應該具有相同的 ...
一、資料庫基礎
-
- 表 table:數據是保存在表內,保存在一個表內的數據,應該具有相同的數據格式
- 行:行用於記錄數據
- 記錄:行內的數據
- 列:列用於規定數據格式
- 欄位:數據的某個列
- 主鍵:唯一地標識表中的某一條記錄,不能空,不能重覆
二、資料庫的數據類型
1、數字類型
整數: tinyint、smallint、mediumint、int、bigint
浮點數: float、double、real、decimal
日期和時間: date、time、datetime、timestamp、year
2、字元串類型
字元串: char、varchar
文本: tinytext、text、mediumtext、longtext
3、二進位
(可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob
4、列的約束:
三、資料庫連接
在關於資料庫的第一篇文章中就給大家講了使用Navicat連接資料庫的方法,那麼這裡再給大家講解一下使用命令連接資料庫的方式。
一般在公司開發中,可能會將資料庫統一搭建在一臺伺服器上,所有開發人員共用一個資料庫,而不是在自己的電腦中配置一個資料庫,遠程連接命令
mysql -h ip地址 -u root -p
- -h後面寫要連接的主機ip地址
- -u後面寫連接的用戶名
- -p回車後寫密碼
四、資料庫操作
1、創建資料庫
create database 資料庫名 charset=utf8;
2、刪除資料庫
drop database 資料庫名;
3、切換資料庫
use 資料庫名;
4、查看當前選擇的資料庫
select database();
5、查看目前所有的資料庫
show databases;
五、表操作
1、查看當前資料庫中所有表
show tables;
2、創建表
create table 表名(列及類型);
- 列名:id
- 類型:int unsigned
- 約束1:not null
- 約束2:primary key
- 約束3:auto_increment
列的格式:列的名稱 類型 約束
例如:
create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);
3、修改表
語法:
alter table 表名 add(添加)|modify(修改)|drop(刪除) 列名 類型;
添加列:h_skill 為字元類型
alter table hero add h_skill varchar(10);
修改列:h_skill修改本屬性不能為空
alter table hero modify h_skill varchar(10) not null;
4、刪除表
drop table 表名;
5、查看表結構
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)
6、更改表名稱
rename table 原表名 to 新表名;
7、查看邊的創建語句
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)
六、數據操作
1、增加數據
insert into 表名(列1,...) values(值1,...);
例如:
insert into hero(h_id,h_name,h_skill) values(1,'韓信','裂天爆斬');
主鍵列是自動增長,但是在全列插入時需要占位,通常使用0,插入成功後以實際數據為準
2、簡單查詢數據
select * from 表名
例如:
mysql> select * from hero; +------+--------+--------------+ | h_id | h_name | h_skill | +------+--------+--------------+ | 1 | 韓信 | 裂天爆斬 | +------+--------+--------------+ 1 row in set (0.00 sec)
3、修改數據
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)
4、物理刪除數據
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)
5、邏輯刪除,
本質就是修改操作update ,並沒有刪除,只有用isdelete去和其他沒有刪除的數據區別,所以叫做邏輯刪除,方便回覆誤刪數據
alter table hero add isdelete bit default 0; 在需要做邏輯刪除的時候寫上 update hero set isdelete=1 where h_id=5;