zoukankan      html  css  js  c++  java
  • mysql 基础注意点

    cmd--mysql mysql/bin

    zerofill not null default xxxx

    unsigned not null default XXXX

    auto_increment primary key 

    show create table goods;查看见表语句

    c 终止命令

    create table test5 (
    -> ts timestamp default CURRENT_TIMESTAMP --当前时间 XXXX-XX-XX XX:XX:XX格式
    -> ,
    -> id int
    -> )engine myisam charset utf8;

    alter table XXX modify / change 的区别

    max,min,sum,avg,count 注意null列 null count(*)  count(id)注意null影响

    select goods_id,sum(goods_number) from goods; 错误的 goods_id是第一次粗线的值

    select name,count(score<60) as k,avg(score) from stu group by name; 错误

    select name,sum(score < 60) as gk ,avg(score) as pj from stu group by name having gk >=2

    取出点击量前三名到前5名的商品 select goods_id,goods_name,click_count from ecs_goods order by click_count desc limit 2,3;

    group by having 顺序注意

    注意聚合函数max min sum 之类如果连带查name 的附属列 ,注意name不一定是要的值

    例子 每个栏目下id最大的XXX

    select goods_id,goods_name from
    (select goods_id,cat_id,goods_name,shop_price,add_time from goods
    order by cat_id,goods_id desc) as tmp
    GROUP BY cat_id order by goods_id

    select goods_id,goods_name from goods where goods_id in (
    select max(goods_id) from goods GROUP BY cat_id
    )

    exists的用法 下面有内容的项目

    select cat_id,cat_name from category
    where exists (select * from goods where goods.cat_id=category.cat_id);

    null的判断方式注意!count(*) count(id) 对于 null值那一行的统计有什么不同

    select from table1,table2 并集  t1Xt2

    create table minigoods like goods; 创建某表像goods表的结构

    select 'A' = 'a';

    A left join B 以A为基准  A不会有null B则可能有null

    A right join B 以B为基准,A可能有null B不一定有null

    inner join 不允许有 null 包含行

     union 会去除相同的重复行,每个列 

    union all 则是并集 

    列名不同,列类型不同,可以union / union all

     create view viewname as

    select XXXXXXXXXXXXXX from XXX

    where XXXXXXXXXXXXXXXXXXXXX

    使用视图操作表数据

    (一)、通过视图添加表数据
    使用INSERT语句实现。 注意:视图是虚拟表,其本身不存储数据(来自其引用表),添加的数据是存储于视图参照的数据表中。
    条件分析:1)用户有向数据表插入数据的权限;2)视图只引用表中部分字段,插入数据时只能是明确其应用的字段取值;3)未引用的字段应具备下列条件之一: 允许空值;设有默认值;是标识字段;数据类型是timestamp或uniqueidentifer;4)视图不能包含多个字段的组合5)视图不能包含使用统计函数的结果;6)视图不能包含DISTINCT或GROUP BY子句;7)定义视图使用WITH CHECK OPTION,则插入数据应符合相应条件;8)若视图引用多个表,一条INSERT语句只能同一个基表表中数据;
    例:首先创建了一个新的视图:
    CREATE VIEW ygb_view AS SELECT * FROM 员工表 WHERE 员工表.性别=‘女’ with check option
    然后,通过执行以下语句使用该视图向基表添加一条新的数据记录:INSERT INTO ygb_view(姓名,性别,工资) values(‘李立平’,‘女’,2300)
    (二). 更新数据记录 使用视图可以更新基表数据记录(注意使用INSERT时的限制同样适用)。例子3:(1) update 项目_view set 项目负责人= ‘王大力’ where 项目负责人= ‘王立兵’(2) update 项目_view set 结束日期= DATEADD(day,50,结束日期) where 客户名称=‘CCH公司’
    (三)、删除数据记录  利用DELETE语句,使用视图删除记录,可以删除任何基表中的记录。 注意: 必须指定在视图中定义过的字段来删除记录; 视图引用多个表时,无法用DELETE命令删除数据。例子4:delete ygb_view where 员工工资<1500

     视图仅仅是一个虚拟表,本身不具有任何数据

  • 相关阅读:
    矩阵快速幂模板C++
    异或空间与高斯消元
    POJ2947解题报告
    Manacher算法笔记 C++
    Python(80)_使用selenium实现第一个web自动化程序
    Python(78)_认识selenium自动化测试
    111
    Python(60)_闭包
    Python(55)_默认参数的陷阱
    Python(53)_实现一个加法计数器
  • 原文地址:https://www.cnblogs.com/zy2012/p/3590969.html
Copyright © 2011-2022 走看看