MySQL数据管理

前言

首先,新年快乐!牛年希望能更牛,学到更多知识~ 这一节接着上一节,了解的是MySQL的数据管理有关知识点 以下是个人码的笔记,供学习交流参考~

1、外键(了解即可)

自行百度,不建议使用

影响delete和update

2、DML语言(全部记住)

数据库意义:数据存储,数据管理

DML语言:数据操作语言

  • insert
  • update
  • delete

3、添加(insert)

--insert into 表名([字段名1,字段2,字段3]) values ('值1'),('值2'),('值3')
insert into `grade`(`gradename`) values ('大四')

--插入单个字段多个值
insert into `grade`(`gradename`) values ('大二'),('大一') 

--插入多个字段多个值
insert into `student`(`name`,`pwd`,`sex`) values ('张三','123456','男'),('李四','123456','男')

注意事项:

  • 字段和字段之间使用 英文逗号 隔开
  • 字段可以省略,只不过添加的值要一一对应
  • 可以同时插入多条数据,values后面的值,需要使用 英文逗号 隔开并用 英文括号 框住

4、修改(update)

--修改学员名字

--带where条件(id为1的同学姓名改为张三)
update `student` set `name` = '张三' where id = 1;

--不指定条件(所有的name都改为了李四)
update `student` set `name` = '李四';

--语法
--update 表名 set colnum_name = value , colnum_name = value...] where [条件]

--修改多个属性用 英文逗号 隔开
update `student` set `name` = '王五' , `Email` = '[email protected]' where id = 1;

--使用多个条件判断
update `student` set `name` = '李四' where `name`='李四' and sex = '男';

操作符会返回boolen值

操作符含义范围结果
=等于5=6false
<>或!=不等于5<>6true
>大于5>6false
<小于5<6true
>=大于等于5>=6false
<=小于等于5<=6true
between x and y在x和y之间(包含x和y)11 between 1 and 10flase
and&&5>1 and 1>2false
or||5>1 or 1>2true

语法:

update 表名 set colnum_name = value , colnum_name = value...] where [条件]

注意:

  • colnum_name 是数据库的列,尽量带上``(tab键上方)

  • 条件,筛选的条件,若无指定,则会修改所有的列

  • value,是一个具体的值,也可以是一个变量 current_time就是一个变量,表示当前时间

    update `student` set `birthday'`= current_time where `name` = '张三' and sex = '男'
    
  • 多个设置的属性之间,用英文逗号隔开

5、删除

delete 命令

--删除数据
--语法: delete from 表名 [where 条件]

--删除指定数据(删除id=1的学生数据)
delete from `stduent` where id = 1;

truncate 命令

作用:完全情况一个数据库表,表的结构和索引约束不会改变!

--完全清空一个表的数据
truncate `student`

delete 和 truncate 的区别

  • 相同点:都可以删除数据,都不会删除表结构

  • 不同点:

    • truncate 重新设置 自增列 计数器 会归零

    • truncate 不会影响事务

--测试delete和truncate的区别

--先创建test表
creat table `test`(
	`id` int(4) not null auto_increment,
    `coll` varchar(20) not null,
    primary key ('id')
)engine=INNODB default charset=utf8

--给test添加coll的值
insert into `test`(`coll`) values('1'),('2'),('3')

delete from `test`
--虽然数据删除,但不会影响自增

truncate from `test`
--不仅数据删除,而且自增和计数器都清零了

delete删除的问题:重启数据库的现象

  • InnoDB 自增会从1开始 (存在内存中,断电即失)
  • MyISAM 继续从上一个自增量开始(存在文件中,不会丢失)

后话

MySQL的学习仍在继续,新的一年更加努力! 有任何问题或者错误可以在评论区提出!我会和小伙伴们讨论的!