MySQL数据管理

2020-09-03  本文已影响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:数据操作语言

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在删除数据库重启之后

上一篇下一篇

猜你喜欢

热点阅读