zoukankan      html  css  js  c++  java
  • 类和数据库的扫盲

    类图(Class Diagram):面向对象中最常用的图。功能:显示系统中的类、接口以及他们之间的静态结构和关系的一种静态模型。三个基本组件:类名、属性、方法
    UML:Unified Modeling Language 统一建模语言。类之间的关系有:泛化(Generalization),实现(Realization),依赖(Dependency),关联(Association)。
    其中,关联关系又分为聚合关系(Aggregation)和合成关系(Composition)
    泛化:是一种is-a的关系,对象间耦合度关系最大的一种关系,子类继承父类中的所有细节,使用继承来表达,子类指向父类,用带三角箭头的实线表示。
    实现:就是一种接口和实现的关系。用带三角箭头的虚线表示,由实现类指向接口。
    依赖:对象之间最弱的一种关联方式,是临时性的关联。代码中一般指的是由局部变量、函数参数、返回值建立的对于其他对象的调用关系。
    一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。使用带箭头的虚线表示,箭头从使用类指向被依赖类。
    关联:对象之间的一种引用关系,比如客户类和订单类之间的关系,用带箭头的实现表示。
    聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。
    如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司。在类图使用空心的菱形表示,菱形从局部指向整体。
    组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。
    如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。

    //字节流输出到中文,btye[]表示字节数组,将数据以字节的形式存储到数组中
    // 使用默认编码
    String data = "中文";
    ServletOutputStream sos = response.getOutputStream();
    byte[] b = data.getBytes();// 浏览器默认使用GBK编码
    sos.write(b);

    // 使用UTF-8编码
    String data = "中文";
    response.setContentType("text/html;charset=UTF-8");
    ServletOutputStream sos = response.getOutputStream();
    byte[] b = data.getBytes("UTF-8");// 告诉浏览器请使用UTF-8编码
    sos.write(b);

    //字符流输出到中文
    String data = "中文";
    PrintWriter out = response.getWriter();
    out.write(data);// 默认使用ISO8859-1

    DTD:Document Type Definition 文档类型定义,是为了程序间的数据交换而建立的关于标记符的语法规则。可以看作是一个或多个XML文档。
    TLD:Tag Lib Describe 标签库描述文件

    Java类和表结构是对应的
    Java对象和表中的一条记录是对应的
    数据库的操作包括---------库操作和----------表操作
    SELECT DATABASE();// 显示当前正在使用的数据库
    SHOW TABLES;// 显示表格
    ALTER TABLE employee ADD image blob; // 在上面基本表的基础上增加一个image列
    删除表中的字段使用DROP
    查看库中的所有表格
    SHOW TABLES;
    查看表的结构
    DESC employee;
    查看表的创建细节
    SHOW CREATE TABLE employee;
    在上面员工表的基本上增加一个image列。
    ALTER TABLE employee ADD image blob;
    修改job列,使其长度为60。
    ALTER TABLE employee MODIFY job varchar(60);
    删除image列。
    ALTER TABLE employee DROP image;
    表名改为user。
    RENAME TABLE employee TO user;
    修改表的字符集为utf8
    ALTER TABLE user CHARACTER SET utf8;
    列名name修改为username
    ALTER TABLE user CHANGE name username VARCHAR(10);

    水平线(前高、前低),分A,分B
    趋势线
    拐点线
    60日均线(股价的生命线)和30日均线系统
    黄金分割线
    斐波那契扩展线
    日内均线

    DDL:数据定义语言,描述数据库中要存储的现实世界实体的语言,数据库和表结构的创建
    DML:数据操作语言,对数据库中表的插入、修改和删除操作
    关键词:UPDATE,DELETE,INSERT。注意三个都有介词:insert into,update set, delete from
    在mysql数据库中,字符串和日期要包含在单引号中,只有字符和日期才有单引号包裹,其他的没有,空值为NULL
    想表中插入数据(一条记录,可以认为是一个对象):INSERT INTO user VALUES(1,'tom','12','male','1991-12-11');
    在进行数据修改时候,使用update,想一想要更新数据就是要设置某一字段的数值,那么必须要有set这个关键字才能重新确定数值,切记切记
    将所有员工薪水修改为5000元。
    UPDATE user SET salary=5000;
    将姓名为’zxn’的员工薪水修改为3000元。
    UPDATE user SET salary=3000 where name='zxn';
    将姓名为’lyx’的员工薪水修改为4000元,job改为ccc。
    UPDATE user SET salary=4000,jbb='ccc' where name='lyx';
    将杜小文的薪水在原有基础上增加1000元。
    UPDATE user SET salary=salary+1000 where name='杜晓雯';
    删除表中名称为’zxn’的记录。
    DELETE FROM user WHERE username='zxn';
    删除表中所有记录。一条一条的删除记录
    DELETE FROM user;
    使用truncate删除表中记录。撕掉整张表,重新建立表结构
    TRUNCATE TABLE user;

    DQL:数据查询语言,查询表中的数据,关键字:SELECT FROM
    查询表中所有学生的信息。
    SELECT * FORM student;
    查询表中所有学生的姓名和对应的英语成绩。
    SELECT name,english FROM student;
    过滤表中重复数据。
    SELECT name, DISTINCT english FROM student;

    在所有学生数学分数上加10分特长分。
    SELECT name, math+10 FROM student;
    统计每个学生的总分。
    SELECT name,english+chinese+math FROM student;
    使用别名表示学生分数
    SELECT name AS 姓名,english+chinese+math AS 总分 FROM student;

    查询姓名为王五的学生成绩
    SELECT * FROM student WHERE name='王五';
    查询英语成绩大于90分的同学
    SELECT * FROM student WHERE english>90;
    查询总分大于200分的所有同学
    SELECT * FROM stuent WHERE (english+chinese+math)>200;

    查询英语分数在 80-90之间的同学。
    SELECT * FROM student WHERE english BETWEEN 80 AND 90;
    查询数学分数为89,90,91的同学。
    SELECT * FROM student WHERE math IN(89,90,91);
    查询所有姓李的学生成绩。
    SELECT * FROM student WHERE name LIKE '李%';
    查询数学分>80,语文分>80的同学。
    SELECT * FORM student WHERE math>80 AND chinese>90;

    对数学成绩排序后输出。
    SELECT name,math FROM student ORDER BY math;
    对总分排序后输出,然后再按从高到低的顺序输出
    SELECT name,english+chinese+math AS 总分 FROM student ORDER BY 总分 DESC;
    对姓李的学生汉语成绩排序输出
    SELECT * FROM student WHERE name LIKE '李%'ORDER BY chinese;

    笛卡尔乘积:所有域的所有取值的一个组合,不能重复.表示所有的组合情况
    D1={张三,李四}
    D2={计算机专业,信息安全专业,通信专业}
    D3={张老师,李老师}
    则D1*D2*D3他们的笛卡尔积为:
    {(张三,计算机专业,张老师),
    (张三,计算机专业,李老师),
    (张三,信息安全专业,张老师),
    (张三,信息安全专业,李老师),
    (张三,通信专业,张老师),
    (张三,通信专业,李老师),
    ...
    }
    链接查询
    a.交叉连接:返回两个表的笛卡尔积
    b.内连接:表与表之间的连接,满足条件的数据将会重新组成新表返回过来
    SELECT * FROM customers c,orders o WHERE c.id=o.customer_id;
    或者
    SELECT * FROM customers c INNER JOIN orders o ON c.id=o.customer_id;
    c.外连接:努力了
    左外连接LEFT JOIN:左外连接的结果集包括左表的所有行,如果连接的左表的某行在右表中没有匹配,所选列均为
    SELECT * FROM customers c LEFT OUTER JOIN order o ON c.id=o.customer_id;
    右外连接RIGHT JOIN:左外连接的反响连接,右表的某行在左表中没有匹配,则返回左表所选数据的Null
    全连接FULL JOIN:返回左表和右表的所有行,没有的数据为

    例子:
    表a
    ----------------------------
    id name
    1 张三
    2 李四
    3 王五
    ----------------------------
    表b
    ----------------------------
    id job parent_id
    1 23 1
    2 32 2
    3 45 4
    ----------------------------
    a.id 和 b.parent_id存在关系

    1)内连接:SELECT a.*,b.* FROM a INNER JOIN b ON a.id=b.parent_id;
    结果:
    1 张三 1 23 1
    2 李四 2 32 2

    2)左外连接:SELECT a.*,b.* FROM a LEFT JOIN b ON a.id=b.parent_id;
    结果:
    1 张三 1 23 1
    2 李四 2 32 2
    3 王五 null
    3)右外连接:SELECT a.*,b.* FROM a RIGHT JOIN b ON a.id=b.parent_id;
    结果:
    1 张三 1 23 1
    2 李四 2 32 2
    null 3 45 4
    4)全连接:SELECT a.*,b.* FROM a FULL JOIN b ON a.id=b.parent_id;
    结果:
    1 张三 1 23 1
    2 李四 2 32 2
    null 3 45 4
    3 王五 null

  • 相关阅读:
    Oracle数据库的一些常用命令
    计算机网络:计算路由表下一跳
    怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结
    计算机网络-以太网,局域网,城域网,广域网,互联网,因特网,万维网的区分
    Apache与Tomcat有什么关系和区别
    Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
    使用Oracle的PROFILE对用户资源限制和密码限制
    通过修改profile 来修改账号的过期时间
    解决oracle用户过期问题
    【项目】项目36
  • 原文地址:https://www.cnblogs.com/demo-deng/p/8075047.html
Copyright © 2011-2022 走看看