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` = 'xxxx@qq.com' 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的学习仍在继续,新的一年更加努力!

添加新评论