Linux-based Essential Bioinformatics
Linux生物信息技术基础
北京大学本研合上课

第10讲 MySQL数据库实例

实例1: 最简单的数据表

实例2:LEB25选课名单

实例3:脊椎动物珠蛋白

  • 数据准备
    1. 数据下载:从UniProt数据库中下载977个脊椎动物珠蛋白的基本信息
    2. 数据格式:登录号、序列名、基因名、蛋白名、分类号、物种名、序列长、收录日
  • 创建数据表
  • (见服务器public/mysql/目录)
    1. CREATE TABLE 数据表名 (
    2. 编号no INT AUTO_INCREMENT PRIMARY KEY,
    3. 登录号id 数据类型,
    4. 序列名entry 数据类型,
    5. 基因名gene 数据类型,
    6. 蛋白名protein 数据类型,
    7. 分类号taxon 数据类型,
    8. 物种名species 数据类型,
    9. 序列长length 数据类型,
    10. 收录日date 数据类型
    11. ):
  • 导入数据: LOAD DATA LOCAL INFILE '数据文件名' INTO 数据表名;
  • 查看数据
    1. 按序列长度从小到大查看若干个序列:SELECT * FROM 数据表名 ORDER BY 序列长 LIMIT 序列个数;
    2. 查看基因名为MB*或mb*的肌红蛋白:SELECT * FROM 数据表名 WHERE gene LIKE 'MB%'; (127个)
    3. 查看序列长度超过1000的序列:SELECT * FROM 数据表名 WHERE length > 1000; (2个)
    4. 查看人类珠蛋白:SELECT * FROM 数据表名 WHERE taxon = 9606; (13个)
    5. 查看小鼠和大鼠珠蛋白:SELECT * FROM 数据表名 WHERE species LIKE 'Mouse' OR Species LIKE 'Rat'; (17个)
    6. 查看蛋白名Gamma珠蛋白:SELECT * FROM 数据表名 WHERE protein LIKE 'gamma%'; (39个)
    7. 查看1986年Swiss-Prot创建时收录的数据:SELECT * FROM 数据表名 WHERE date LIKE '1986%'; (330个)
    8. 查看物种名含Monkey(猴)的数据:SELECT * FROM 数据表 WHERE speicies LIKE '%monkey%'; (37个)
    9. 查看收录日期并计算收录年数,按从小到大显示前30个序列:
      SELECT id, date, CURDATE(), TIMESTAMPDIFF(YEAR, date, CURDATE()) AS years FROM 数据表名 ORDER BY years LIMIT 30;