欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《学习笔记40》—— # MySQL # 外键和DML的基本使用

程序员文章站 2022-03-03 19:20:43
...

1 外键(了解)

-- 方式一.在创建表时就添加外键
-- 步骤
-- 1.定义外键key
-- 2.为外键添加约束(执行引用references)
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
​
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` INT(50) NOT NULL COMMENT '密码',
`birthday` DATETIME COMMENT '出生日期',
`gradeid` INT(10) COMMENT '年级id',
`gender` VARCHAR(3) NOT NULL DEFAULT '男' COMMENT '性别',
`email` VARCHAR(50) NOT NULL COMMENT '邮箱',
PRIMARY KEY(`id`),
KEY  `FK_gradeid` (`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES grade(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-- 方式二、存在表的时候为表添加上外键
ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`)

以上操作都是在物理外键,数据库级别的外键,这里不推荐使用!(数据库过多,会引起删改操作上的困扰)


2 DML语言(熟悉)

2.1 添加

INSERT INTO `student` (`name`,`password`,`birthday`,`email`)
VALUES ('张三',123456,'2000-02-10','[email protected]')
语法:

INSERT INTO 表名 ([字段名1],[字段名2],[字段名3]……)
VALUES (值1,值2,值3……),(值1,值2,值3……)……

说明:

  • 字段和字段之间用英文逗号隔开

  • 字段可以省略,但是省略后,后面的值必须要表中的字段一一对应,一个不少!

  • 同时插入多条语句,在values后面的值中,需要使用(值1,值2,值3……),(值1,值2,值3……)……

2.2 修改

update

UPDATE `student` SET `name`='王五' WHERE id=4;
​
--不指定条件下,会修改所有的表!
UPDATE `student` SET `name`='二狗子';

语法:

-- column_name1:要修改的值所在的字段名
-- value1:修改后的新值
-- column_name3:要修改的值所在的字段名的其他字段名(定位条件)
-- value3:定位条件的值
UPDATE 表名 SET column_name1=value1,column_name2=value2 where column_name3 条件判断符 value3;
条件判断符 含义
= 等于
<>或!= 不等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
BETWEEN……AND…… 在某个范围内
AND
OR

说明:

  • 要修改多个值,要用英文逗号在中间隔开

  • 若省略了where,则表示修改表中的所有数据

2.3 删除

DELETE/TRUNCATE(删节:尤指掐头或去尾)

-- 删除指定内容
DELETE FROM `student` WHERE id=2;
​
-- 删除表中全部内容
-- 1.使用truncate
TRUNCATE `student`
-- 2.使用delete
DELETE `student`

语法:

DELETE FROM 表名 WHERE column_name1 条件判断符 value1;

说明:

  • 如果不添加where,则默认删除表中全部内容,但不会删除表头

truncate和delete的共同点:

  • 都能删除数据,且不会删除掉表头

truncate和delete的不同点:

  • TRUNCATE会重新设置自增列,计数器归零;而delete不会

  • TRUNCATE不会影响事务

上一篇: npm发布包

下一篇: mysql外键的使用