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'@'%';

  • 相关阅读:
    http statusCode(状态码) 200、300、400、500序列
    一行css代码调试中学到的javascript知识,很有意思
    jquery中的cookie
    图片预加载和AJAX的图片预加载
    关于图片懒加载
    iframe的自适应
    阻止微信端浏览器下滑出现空白条现象
    动态加载js文件
    kaldi 的安装和测试
    Python算法-排序
  • 原文地址:https://www.cnblogs.com/hanxiaofeicf/p/7738647.html
Copyright © 2011-2022 走看看