美文网首页
MySQL数据管理

MySQL数据管理

作者: 奥利夫羊 | 来源:发表于2020-09-03 18:04 被阅读0次

MySQL数据管理(管理集体的数据,而不是表结构)

1. 外键

删除被引用的表前需要删除主表

创建带外键的表

CREATE TABLE IF NOT EXISTS `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 '学生id',
    `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    `gradeid` INT(10) NOT NULL COMMENT '年级',
    `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
    `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    `address` VARCHAR(100) 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;

修改表结构

CREATE TABLE IF NOT EXISTS `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 '学生id',
    `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    `gradeid` INT(10) NOT NULL COMMENT '年级',
    `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
    `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY(`id`)
)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
  • alter
  • delete

3. 添加

插入语句(添加)

INSERT INTO `grade`(`gradeid`,`gradename`) VALUES(1,'大四');
-- insert into 表名([字段1,字段2,字段3]) values('值1','值2','值3',...)
-- 添加自增属性的键可以省略,如果不写表的字段,默认一一匹配。
-- 插入多个字段: insert into 表名(字段1,字段2,字段3,...) values('值1','值2','值3',...), ('值1','值2','值3',...) ...

4. 修改

修改语句(更新)

UPDATE `student` SET `name`='NAME' WHERE id = 1;
-- 修改一个属性 UPDATE `表名` SET `column_name`='value' WHERE [条件];
-- 修改多个属性 UPDATE `表名` SET `column1`='value1'[`column2`='value2'] WHERE [条件];
-- 多个条件 通过条件和关系运算符

where字句(具体看后面查询)

操作符 含义
= 等于
<>或者!= 不等于
> 大于
< 小于
<= 大于等于
>= 小于等于
between and 在某个范围
and
or

5. 删除

删除命令

DELETE FROM `student` WHERE id = 1;
-- DELETE FROM `表名` WHERE [条件];

TRUNCATE 命令

TRUNCATE `student`;
-- TRUNCATE `表名`; 类似DELETE FROM `表名`

TRUNCATE、DELETE之间的区别

DELETE不会影响自增,TRUNCATE自增归零

DELETE在删除数据库重启之后

  • InnoDB 自增从1开始,存在内存里面的
  • MyISAM 继续上一个自增量,存在文件里面

相关文章

  • musql 04day

    数据管理技术的发展阶段 数据库的概念(DB) 数据管理系统(DBMS) MySQL安装配置

  • MYSQL

    MYSQL : Mysql是一种开源的关系型数据库MYSQL使用最常用的数据管理语言——结构化查询语言。具有速度...

  • MySQL数据管理

    MySQL数据管理(管理集体的数据,而不是表结构) 1. 外键 删除被引用的表前需要删除主表 创建带外键的表 修改...

  • MySQL之MySQL数据管理

    三、MySQL数据管理 1.外键 例:学生的grade列引用年级表的id(约束)。 方式一:在创建表的时候,增加约...

  • Superset_报错解决

    Superset_报错解决 No module named sqlite2由于元数据管理统一使用mysql,后面就...

  • mysql一章

    mysql简介概述 数据库技术的发展 数据库技术是应数据管理任务的需求而产生的,随着计算机技术的发展,对数据管理技...

  • note_21.4.2_DB

    mariadb(mysql): 数据管理模型:层次模型、网状模型、关系模型 数据分类:结构化数据、半结构化数据、非...

  • MySQL day7 (2019.5.14)

    一、回顾 视图外键事务数据管理用户管理 二、MySQL变量 MySQL的变量有两种,一种是系统变量,另一种是用户自...

  • 从零开始搭建hadoop集群

    本文主要记叙了如何在centos7.2上搭建cdh平台,使用mysql为元数据管理库(官方推荐),安装了Spark...

  • scadb系列--数据导入导出功能

    数据管理功能的重要性 MySQL可以支持多种数据备份和数据导出功能,其中mysqldump可以把数据导出到执行机器...

网友评论

      本文标题:MySQL数据管理

      本文链接:https://www.haomeiwen.com/subject/jrozdktx.html