MySQL数据管理

1.外键(了解即可)连了外键 在新增数据时候,有时候会出错,所以现在大多不练外键,都通过代码逻辑去限制

添加外键:
方式一,在创建表的时候,增加约束(麻烦,比较复杂)

--约束constraint
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`gradeid` INT(10) NOT NULL COMMENT '学生的年级',
`address` VARCHAR(50) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT 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);
--ALTER TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY (作为外键的列) REFERENCES 目标表(目标字段)

以上操作都是物理外键,不建议使用!(避免数据库过多造成困扰)

最佳实践

  • 数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)
  • 我们想使用多张表的数据,想使用外键(通过程序去实现)

2.DML语言(全部记住)

数据库意义:数据存储,数据管理
DML语言:数据操作语言

  • insert
  • update
  • delete

3.添加

-- 插入语句(添加)
-- 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`,`pwd`,`sex`) VALUES ('张三','123','男'),('李四','123','男');

语法:insert into 表名([字段名1,字段名2,字段名3]) values ('值1','值2','值3')

注意事项:
1.字段和字段之间使用英文逗号隔开
2.字段是可以省略的,但是后面的值必须要一一对应
3.可以同时插入多条数据,values 后面的值需要使用,隔开即可
INSERT

4.修改

-- 修改学员名字
UPDATE `student` SET `name` = 'ub' WHERE id = 1;

-- 不指定条件的情况下,会改动所有表
UPDATE `student` SET `name` = 'crs';

-- 语法:
-- UPDATE 表名 SET column_name = value where [条件]; 

-- 修改多个属性,逗号隔开
UPDATE `student` SET `name` = 'UB', `email` = '234234@qq.com' WHERE id = 1;

-- 语法:
-- UPDATE 表名 SET column_name = value, [column_name = value, ...] where [条件]; 

条件:where子句 运算符

操作符 意义 范围 结果
= 等于 5=6 false
< 小于 3<5 true
> 大于 4<2 false
<>或 != 不等于 2!=3 true
>= 大于等于
BETWEEN ... AND ... 在某个范围内 [2,3]
AND 我和你&& 5>1 AND 1 > 2 false
OR 我或你 5>1 OR 1>2 true

语法:UPDATE 表名 SET column_name=value, [column_name=value,...] WHERE [条件]
注意:

  • column_name 是数据库的列,尽量带``
  • 条件,筛选的条件如果没有指定,则会修改所有的列
  • value,是一个具体的值也可以是一个变量(大部分对于时间使用函数插入数据)UPDAET student SET birthday = CURRENT_TIME WHERE name = '张三' AND sex = '女';

5.删除

-- 删除数据
-- 语法:DELETE FROM 表名 [WHERE 条件]
DLETE FROM `student` WHERE id = 1;

-- 专业清空数据库命令	TRUNCATE	完全清空一个表的数据库
TRUNCATE `student`

DELETE 和 TRUNCATE的区别

  • 相同点:都能删除数据,都不会删除表结构
  • 不同点:
    • TRUNCATE 重新设置 自增列 计数器会归零
    • TRUNCATE 不会影响事务
posted @ 2021-03-17 11:26  UltraBlast  阅读(65)  评论(0)    收藏  举报