WHCSRL 技术网

2021-11-01

MySQL 的数据管理

外键

--创建表的时候没有外键关系

ALTER TABLE student

ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid') REFERENCES grade(gradeid`);

1-- ALTER TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFERENCES 那个表 (哪个字段)

以上的操作都是物理外键,数据库级别的外键,我们不建议使用! (避免数据库过多造成困扰,这里了解即可-)

最佳实践

数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)

我们想使用多张表的数据,想使用外键(程序去实现)

DML语言(全部记住)

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

DML语言:数据操作语言

  • insert

  • update

  • delete

添加

插入语句(添加)

insert into 表名([字段名1,字段2,字段3])values('值1','值2’,'值3',......)

注意事项:1,字段和字段之间使用英文逗号隔开

2.字段是可以省略的,但是后面的值必须要要-对应,不能少

3,可以同时插入多条数据, VALUES后面的值,需要使用,隔开即可VALUES(),()

修改

修改学员名字,带了条件

UPDATE student' SET name='狂神, WHERE id =1;

--不指定条件的情况下,会改动所有表!

UPDATE 'student' SET name'='长江7号

条件: where子句运算符id等于某个值,大于某个值,在某个区间内修改...

操作符含义范围结果
=等于5=6false
<>或!=不等于
>
<
<=
>=
between..and..在某个范围内[2,5]
and我和你
or我或你

语法: UPDATE表名set colnum_name = value, [colnumname = value, ..] where [条件]

注意:

  • colnum_name是数据库的列,尽量带上``、

  • 条件,筛选的条件,如果没有指定,则会修改所有的列

  • value,是一个具体的值,也可以是一个变量

  • 多个设置的属性之间,使用英文逗号隔开1

  • UPDATE student SET `birthday'= CURRENT-TIME WHERE name'='长江7号' AND sex='女

删除

  • delete命令

语法:delete from 表名 [where 条件]

--删除数据(避免这样写,会全部删除)

DELETE FROM student

--删除指定数据

DELETE FROM STUDENT WHERE ID= 1;

  • truncate命令

作用:完全清空一个数据库表,表的结构和索引约束不会变

-- 清空 student表

TRUNCATE student

delete和truncate的区别

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

  • 不同点:

    truncate:重新设置,自增列,计算器会归零

    truncate: 不会影响事务

  • 了解即可: DELETE,重启数据库,现象

  • InnoDB 自增列会重1开始(存在内存当中的,断电即失).

  • MySAM继续从上一个自增量开始(存在文件中的,不会丢失)

推荐阅读