美文网首页
MySQL 示例

MySQL 示例

作者: 歌哥居士 | 来源:发表于2019-03-27 07:10 被阅读0次

测试用例

CREATE DATABASE db_test;
USE db_test;
CREATE TABLE `tbl_dept` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `deptName` VARCHAR(30) DEFAULT NULL,
  `locAdd` VARCHAR(40) DEFAULT NULL COMMENT '楼层',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE `tbl_emp`(
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(20) DEFAULT NULL,
  `deptId` INT(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_dept_id`(`deptId`)
  #CONSTRAINT `fk_dept_id` FOREIGN KEY (`deptId`) REFERENCES `tbl_dept` (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


INSERT INTO tbl_dept(deptName,locAdd) VALUES ('RD',11), ('HR',12), ('MK',13), ('MIS',14), ('FD',15);
INSERT INTO tbl_emp(name,deptId) VALUES('z3',1), ('z4',1), ('z5',1);
INSERT INTO tbl_emp(name,deptId) VALUES('w5',2), ('w6',2);
INSERT INTO tbl_emp(name,deptId) VALUES('s7',3);
INSERT INTO tbl_emp(name,deptId) VALUES('s8',4);
INSERT INTO tbl_emp(name,deptId) VALUES('s9',51);  # 故意错的51

select d.id deptId ,d.deptName,d.locAdd,e.id empId,e.name,e.deptId 
  from tbl_dept d, tbl_emp e 
  where d.id = e.deptId;

去重查询

SELECT DISTINCT NAME FROM courses;

删除重复的保留最大的

DELETE from courses WHERE id NOT IN (
SELECT maxid from (SELECT max(id) maxid FROM courses GROUP BY Name) temp
)

添加新字段

ALTER TABLE <tablename> ADD <columnname> <type> ...;
ALTER TABLE hotel_brand ADD C_VIP SMALLINT(6) comment '提供专属优待';

修改字段约束

ALTER TABLE <tablename> MODIFY <columnname> <type> NULL;
ALTER TABLE sys_region MODIFY C_AREA_ID BIGINT(20) NULL;

修改表存储引擎

ALTER TABLE 表名 ENGINE=InnoDB;

批量更新

方式一:case when then....

UPDATE yoiurtable
        SET dingdan = CASE id 
            WHEN 1 THEN 3 
            WHEN 2 THEN 4 
            WHEN 3 THEN 5 
        END
    WHERE id IN (1,2,3)


UPDATE categories      
        SET dingdan = CASE id 
            WHEN 1 THEN 3 
            WHEN 2 THEN 4 
            WHEN 3 THEN 5 
        END, 
        title = CASE id 
            WHEN 1 THEN 'New Title 1'
            WHEN 2 THEN 'New Title 2'
            WHEN 3 THEN 'New Title 3'
        END
    WHERE id IN (1,2,3)

方式二:insert into ... on duplicate key update

如果列不能为空或者没有默认值也许会报错:Field XXX doesn't have a default value,
insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr);

方式三:replace into

这种方式只有替换的字段(示例中ID,C_NAME_PINYIN)有值,其余都会被清空掉
REPLACE INTO sys_region_continents(ID,C_NAME_PINYIN) VALUES (1,'a'),(2,'b')...;

相关文章

  • scala操作外部数据

    读取文件 读取mysql中的数据 引入mysql的依赖 示例 读取xml文件 添加xml的依赖 示例

  • MYSQL常用指令 -- 准备工作

    此文档翻译自mysql官方示例 这是一些示例展示了如何使用MYSQL 处理常见的问题 有一些示例使用了表shop ...

  • MySQL 示例

    测试用例 去重查询 SELECT DISTINCT NAME FROM courses; 删除重复的保留最大的 D...

  • MySQL操作封装

    阅读原文 MySQL操作封装,示例代码参考mysql.class.php

  • tushare连接mysql问题

    tushare数据存储到mysql官方示例: 在把数据存储到mysql中,碰到python连接mysql问题: 解...

  • MySQL数据库root密码恢复

    停止MySQL服务 跳过授权表启动MySQL服务程序 修改root密码 以正常方式重启MySQL服务程序 示例:

  • MySQL-数据备份与恢复

    数据备份 示例 数据恢复 MySQL的用户账户管理 开启MySQL远程连接 添加授权用户

  • 3.MySQL的基本管理

    MySQL的基本管理 连接数据库语法mysql -uroot -p -h IP地址 -P 端口号示例mysql -...

  • mySql操作示例

    亲测有效! 一、连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1、 连接到本机上的M...

  • node.js操作mysql示例

    最好的学习文档就是官方文档,地址如下:mysql的github地址普通连接示例代码: 连接池示例(官方示例代码) ...

网友评论

      本文标题:MySQL 示例

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