一、修改删除表
-- 修改表名: ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段: ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
-- 修改表的字段 (重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher1 CHANGE age age1 INT(1) --字段重名名
-- 删除表的字段: ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
--删除表(如果表存在再删除)
DROP TABLE IF EXISTs teacher1
-- 所有的创建和删除操作尽量加上判断,以免报错~
- 注意点:
1.字段名,使用这个包裹
2.注释 – /**/
3.sql关键字大小写不敏感,建议小写
二、DML语言
数据库意义 :数据存储,数据管理
- DML语言: 数据操作语言
lnsert 插入
update 更新
delete 删除
1、添加
-- 插入语句(添加)
-- insert into 表名([字段名1,字段2,字段3])values('值1'),('值2'),('值3'....)
INSERT INTO `grade`(`gradename`) VALUES(`大四`)
-- 由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)
INSERT INTO `grade` VALUES(`大三`)
-- 一般写插入语句,我们一定要数据和字段一一对应!
-- 插入多个字段
INSERT INTO `grade` (`gradename`)
VALUES(`大二`),(`大一`)
INSERT INTO `student`(`name`) VALUES(`张三`)
INSERT INTO `student`( `name`, `pwd` , `sex`) VALUES(`张三` , `aaaaa`,`男`)
INSERT INTO `student`(`name`, `pwd`, `sex`)
VALUES (`李四`, `aaaaaa`,`男`),(`王五`,`aaaaaa`,`男`)
- 语法: insert into 表名([字段名1,字段2,字段3])values(‘值1’),(‘值2’),("值3’,…)
- 注意事项:
1.字段和字段之间使用 英文逗号 隔开
2.字段是可以省略的,但是后面的值必须要要——对应,不能少
3.可以同时插入多条数据,VALUES后面的值,需要使用,隔开即可VALUE(),()…
2.修改(update)
update 修改谁 (条件) set原来的值 = 新值
--修改学员名字,带了简介
UPDATE `student` SET `name`=`狂神` WHERE id = 1;
--不指定条件的情况下,会改动所有表!
UPDATE `student` SET `name` = `长江7号`
--修改多个属性,逗号隔开
UPDATE `student` SET `name` = `狂神`, `email` = `247367@qq.com` WHERE id = 1;
-- 通过多个条件定位数据 trim
UPDATE `student` SET `birthday`= CURRENT_TIME WHERE `name`=`长江7号` AND sex=`女`
-- 语法:
-- UPDATE 表名 set colnum_name = value,[colnum_name = value,. . . .] where [条件]
- 注意:
1.colnum_name是数据库的列,尽量带上
2.条件,筛选的条件,如果没有指定,则会修改所有的列.
3.value,是一个具体的值,也可以是一个变量
4.多个设置的属性之间,使用英文逗号隔开
3.删除
- delete命令
语法: delete from 表名 [where条件]
-- 删除数据(避免这样写,会全部删除)
DELETE FROM `student`
--删除指定数据
DELETE FROMstudent^wHERE id = 1;
- TRUNCATE命令
作用: 完全清空一个数据库表,表的结构和索引约束不会变
-- 清空student表
TRUNCATE `student`
- delete 和 TRUNCATE 区别
相同点: 都能删除数据,都不会删除表结构
不同:
1.TRUNCATE 重新设置 自增列 计数器会归零
2.TRUNCATE 不会影响事务
-- 测试delete 和 TRUNCATE 区别
CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `test` (`coll`) VALUES (`1`),(`2`),(`3`)
DELETE FROM `test` --不会影响自增
TRUNCATE TABLE `test` --自增会归零