數據庫的意義:數據存儲,數據管理
管理數據庫的話,我們會使用可視化數據庫軟件管理,比如SQLyog,
但通常我們會寫sql,所以有了DML語言:數據操縱語言 Manipulation
- insert
- update
- delete
一、之前,我們用的是填表,但不建議這麼使用,我們用insert插入語句
插入語句(添加)
insert into 表名([字段名1,字段2,字段3])values('值1'),('值2'),('值3'),(...)
1.新建年級表
CREATE TABLE `grade`(
`gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年級id',
`gradename` VARCHAR(50) NOT NULL COMMENT '年級名稱',
PRIMARY KEY (`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 ;
2.新建學生表
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '學號',
`name` VARCHAR(30)NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20)NOT NULL DEFAULT '123456' COMMENT '密碼',
`sex` VARCHAR(2)NOT NULL DEFAULT '女' COMMENT '性別',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`gradeid` INT(10) NOT NULL COMMENT '學生的年級',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 ;
3.測試
INSERT INTO `grade`(`gradename`) VALUES('大四')
-- 由於主鍵自增我們可以省略 (如果不寫表的字段,它就會一一匹配)
--INSERT INTO `grade`(`gradeid`,`gradename`) VALUES('大三','null')
-- 一般寫插入語句,我們一定要保證數據和字段一一對應!
-- 插入多個字段
INSERT INTO `grade`(`gradename`)
VALUES('大二'),('大一')
注意:
- 字段和字段之間使用 英文逗號 隔開
- 字段是可以省略的,但後邊的值必須要與表字段全部一一對應,不能少。
- 可以同時插入多條數據,VALUES後面的值需要使用,隔開,VALUES(),(),……
二、用update修改語句
update 修改誰 (條件) set 原來的值 = 新值
update 表名 set column_name = value,column_name = value,... where [條件]
-- 修改學員的名字,帶了條件
UPDATE `student` SET `name`='斷浮' WHERE id= 1;
-- 不指定條件的情況下,會改動所有的表!
UPDATE `student` SET `name`='嫦娥100號'
-- 修改多個屬性,逗號隔開
UPDATE `student` SET `name`='斷浮',`email`='[email protected]' WHERE id = 1;
-- 通過多個條件定位數據,無上限!&& ||
UPDATE `student` SET `name`='嫦娥' WHERE `name`='嫦娥100號' AND sex='男'
條件:where子句 運算符 id 等於某個值,大於某個值,在某個區間內修改...
操作符會返回 布爾值
操作符 |
含義 |
範圍 |
結果 |
= |
等於 |
5=6 |
flase |
<> != |
不等於 |
5<>6 |
true |
> |
|||
< |
|||
>= |
|||
<= |
|||
BETWEEN...AND... |
在...和...之間 |
[2,5] |
有2,5之間數據則true |
AND |
我和你 && |
兩個判斷條件都成立則true |
|
OR |
我或你 || |
兩個條件一個成立則true |
注意:
- column_name 是數據庫的列,儘量帶上 ``
- 條件,篩選的條件,如果沒有指定,則會修改所有的列
- value,是一個具體的值,也可以是一個變量
- 多個設置的屬性之間,使用英文逗號
UPDATE `student` SET `birthday`=CURRENT_DATE,`sex`='男' WHERE `name`='斷浮' AND sex='女'
三、用delete刪除語句
delete from 表名 [where 條件]
-- 刪除數據(避免這樣寫,會全部刪除)
DELETE FROM `student`
-- 刪除指定數據
DELETE FROM `student` WHERE id =4;
TRUNCATE 命令
作用:完全清空一個數據庫表,表的結構和索引約束不會變!
-- 清空 student表
TRUNCATE `student`