mysql 的常用sql

1. 新建索引

  alter table  'tab_yyy' add index 'IDX_Tab_ID'('id') using btree;

 

2.表中新增字段

  alter table 'table_xxx' add column 'id_customer' varchar(32) null comment '客户id'  after  'id_task';

 

3. 新建表结构

create table 'tab_sss'(

  'id' vachar(255) character set utf8 not null comment '主键',

  'task_id' vachar(32) character set utf8 default null comment '任务Id',

  'pay_amount' decimal(10,2) default null comment '支付金额',
  'created_by' vachar(100) character set utf8 not null default 'system' comment '创建人',   'created_date' datetime not null default current_timestamp comment '创建时间',   'updated_date' datetime not null default current_timestamp on update current_timestamp comment '更新时间',   primary key ('id'),   key 'IDX_task_id'('task_id') ) ENGINE = InnoDB DEFAULT CHARSET=UTF8 COLLATE=utf8_bin comment='操作记录表';

  

4. where 和 having 的区别?

-- 按照性别分组, 分别查询男、女同学的平均分、人数;

要求: 分数低于70分的人, 不参与分组

select   sex, AVG(math), count(id)  from student where math > 70 group by sex having count(id) > 2;

 

 

 

 

数据库设计

 

1. 多表之间的关系

  a. 分类

    (1)一对一

      如:人和身份证

 

    (2)一对多(多对一)

      如: 部门和员工 : 一个部门有多个员工, 一个员工只能对应一个部门

      

    (3)多对多

      如: 学生和课程: 一个学生可以选择多门课程, 一个课程也可以被多个学生选择

 

  b. 实现关系

    (1) 一对多(多对一)

      如: 部门和员工 

      实现方式: 在多的一方建立外键, 指向一的一方的主键

  

 

    (2) 多对多

      如: 学生和课程

      实现方式:多对多关系实现需要借助第三张中间表;中间表至少包含两个字段, 这两个字段作为第三张表的外键, 分别指向两张表的主键

  

 

    (3) 一对一

      如: 人和身份证

      实现方式:一对一的关系实现, 可以在任意的一方添加唯一外键(unique)指向另一方的主键

  

 

 

 

  

  c. 多对多的案例分析

    旅游线路分类、旅游线路、用户

  分析表之间的关系:

  

 

 

   创建表结构:

  1. 旅游线路分类表: tab_category

    --cid : 旅游线路分类主键,自动增长

    --cname: 旅游线路分类名称, 非空,唯一,字符串100

  create table  tab_category (

    cid int primary key auto_increment,

    cname varchar(100) not null unique

  )

 

  

  2. 旅游线路表: tab_route

    -- rid : 旅游线路主键,自动增长

    -- rname : 旅游线路名称, 非空,唯一,字符串100

    -- price : 价格

    -- rDate : 上架时间, 日期类型

    -- cid : 外键, 所属分类

  create table  tab_route(

    rid int primary key auto_increment,

    rname varchar(100) not null unique,

    price Double,

    rDate Date,

    cid int ,

    foreign key (cid) references tab_categroy(cid)

  )

 

  3. 用户表: tab_user

    -- uid: 用户主键,自动增长

    -- username : 用户名称, 非空,唯一,字符串100

    -- password : 密码, 字符串长度300, 非空

    -- name: 真实姓名

    -- birthday : 生日

    -- sex : 性别

    -- telephone : 手机号

    -- email : 邮箱, 字符串长度100

  create table  tab_user(

    uid int primary key auto_increment,

    username varchar(100) not null unique,

    password  varchar(300) not null,

    name   varchar(300),

    birthday Date,

    sex int ,

    telephone varchar(11),

    email varchar(100)

    foreign key (cid) references tab_categroy(cid)

  )

 

posted @ 2022-05-16 14:41  IT6889  阅读(39)  评论(0编辑  收藏  举报