• MySQL常用操作(一)


    最近实习做智能问答系统,需要收集一些问答对,于是写了爬虫爬数据,将爬下来的存入MySQL数据库,中间碰到一些问题,这里集中总结一下,方便日后回顾。

    数据库的简单操作无非就增删改查,本文按这个顺序总结一下工作中遇到的操作。

    1、增

    1.1 创建数据表

    CREATE TABLE IF NOT EXISTS `qa_law66_content`(
       `id` INT UNSIGNED AUTO_INCREMENT,
       `title` VARCHAR(100) NOT NULL,
       `question` VARCHAR(2000) NOT NULL,
       `answer` VARCHAR(15000) NOT NULL,
       `cate` VARCHAR(20) NOT NULL,
       `source` VARCHAR(40) NOT NULL,
       PRIMARY KEY ( `id` )
     )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    qa_law66_links为表名,有单引号的都是表中的字段。UNSIGNED AUTO_INCREMENT表示自动增加属性,在往数据表中写数据时可以不写这个字段的内容,它会按数字顺序自动添加。字段名称后面跟着的是字段类型,比如 VARCHAR(15000)表示字符型类型,括号离的长度表示设置该字段能存储内容的长度,如果存储内容长度大于设置的字段长度,将引发错误信息。
    所有字段如果都是VARCHAR类型,则它们的所有长度之和不能超过65533个字符。
    NOT NULL表示该字段非空。
    PRIMARY KEY ( `id` )表示将‘id’这个字段设置为主键,主键不能重复。
    ENGINE=InnoDB 表示创建表的存储引擎,详细介绍参考这篇博客
    DEFAULT CHARSET=utf8 表示数据表的默认编码格式,一般设置为utf8格式。

    1.2 增加表的字段
    alter table qa_law66_content add aid int;

    在表qa_law66_content 中增加了‘aid’字段,设置它的类型为int类型。

    2、改

    2.1 修改表字段的长度

    alter table qa_law66_content modify column title varchar(400);
    alter table qa_law66_content modify column source varchar(100);
    alter table qa_law66_content modify column question varchar(3500);

    2.2 修改字段的类型

    ALTER TABLE qa_law66_content CHANGE id id INT;

    2.3 修改主键,修改字段的顺序

    alter table qa_law66_content drop primary key;
    alter table qa_law66_content modify aid int(10) unsigned auto_increment first,add primary key (aid);

    要修改主键就要先将原来的主键删除主键属性,然后将另一个键设置为主键。

    first 表示将该键设置为第一列。

    2.4 修改字段的顺序

    alter table 表名
    change 字段名 新字段名 字段类型 默认值 after 字段名(跳到哪个字段之后)

    alter table qa_law66_content
    change id id int(11) 1 after aid;

    3、删

    3.1 删除整个表

    DROP TABLE lawfact;

    3.2 删除表里的所有数据

    
    
    DELETE FROMlawfact;

    3.3 按条件删除表里的数据

    DELETE FROM qa_law66_content WHERE title="None";

    4、查

    4.1 查询表里的数据有多少

    select count(*) from lawfact;

    4.2 查询表里所有数据

    select * from lawfact;

    4.3 按条件查询

    select * from lawfact where article = 'None';

    4.5 查询表里某字段的不重复的值

    SELECT DISTINCT(label) FROM lawfact;
  • 相关阅读:
    android灭屏后调用binder通讯竟然影响了socket的POLL_OUT事件,怪事。
    B0宏
    从surfaceflinger历史变更谈截屏
    arm下dlsym返回的符号地址居然不是偶对齐的。
    SIGCHLD waitpid, 小心子进程结束事件被偷了
    root权限后,不要忘了还有selinux
    shell命令管道未读完阻塞了子进程,与等待其结束的父进程死"锁"。
    我对BP网络的简单的理解
    python 中的字符串格式化
    阿里云深度学习采坑记
  • 原文地址:https://www.cnblogs.com/roadofstudy/p/7511699.html
Copyright © 2020-2023  润新知