zoukankan      html  css  js  c++  java
  • 遗忘的知识数据库表查询

    多表查询经典例子

    一对多或称为多对一
    三张表:出版社,作者信息,书
    
    一对多(或多对一):一个出版社可以出版多本书
    
    关联方式:foreign key
    create table press(
    id int primary key auto_increment,
    name varchar(20)
    );
    
    create table book(
    id int primary key auto_increment,
    name varchar(20),
    press_id int not null,
    foreign key(press_id) references press(id)
    on delete cascade
    on update cascade
    );
    
    
    insert into press(name) values
    ('北京工业地雷出版社'),
    ('人民音乐不好听出版社'),
    ('知识产权没有用出版社')
    ;
    
    insert into book(name,press_id) values
    ('九阳神功',1),
    ('九阴真经',2),
    ('九阴白骨爪',2),
    ('独孤九剑',3),
    ('降龙十巴掌',2),
    ('葵花宝典',3)

    #1 操作文件夹(库)
     增
      create database db1 charset utf8;

     查
      show databases;
      show create database db1;
     改
      alter database db1 charset gbk;
     删
      drop database db1;

    #2 操作文件(表)
     切换到文件夹下:use db1

     增
      create table t1(id int,name char(10))engine=innodb;
      create table t2(id int,name char(10))engine=innodb default charset utf8;
     查
      show tables;
      show create table t1;

      desc t1;#查看表结构
     改
      alter table t1 add age int;
      alter table t1 modify name char(12);

     删
      drop table t1;

    #3 操作文件的一行行内容(记录)
     增
      insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
      insert into db1.t1(name) values('egon1'),('egon2'),('egon3');
     查
      select * from t1;
      select name from t1;
      select name,id from t1;
     改
      update t1 set name='SB' where id=4;
      update t1 set name='SB' where name='alex';
     删
      delete from t1 where id=4;


      #对于清空表记录有两种方式,但是推荐后者
      delete from t1;
      truncate t1; #当数据量比较大的情况下,使用这种方式,删除速度快

     #自增id
     create table t5(id int primary key auto_increment,name char(10));
     create table t4(id int not null unique,name char(10));

    insert into t5(name) values
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    ('egon11'),
    ('egon12'),
    ('egon13');
    create table t7 select * from t5 where 1=2;
    alter table t7 modify id int primary key auto_increment;
    flush privileges;
    revoke select on db1.* from 'alex'@'%';

  • 相关阅读:
    ThinkPhp3.2.3缓存漏洞复现以及修复建议
    thinkphp3.2.3 缓存导致getshell终极解决办法
    phpstudy后门漏洞复现php5.2
    phpStudy后门漏洞利用复现
    SQL语句利用日志写shell拿权限
    针对phpstudy默认设置的利用
    黑暗世界的搜索引擎
    CVE-2019-0708—微软RDP远程桌面代码执行漏洞复现
    记一次渗透某XX站
    通过USB 2.0电缆手动设置内核模式调试
  • 原文地址:https://www.cnblogs.com/hanxiaofeicf/p/7738647.html
Copyright © 2011-2022 走看看