当前位置:文档之家› Mysql笔记

Mysql笔记

Mysql笔记
Mysql笔记

安装;基本命令

create table class (

stu int,

name varchar(20),

age int,

area varchar(20)

);

create database

show databases

drop database test

desc tables test //查看表结构

drop table test

desc test

rename table a to b //重命名表

库名不能改

insert into test

(id,age,name) //指定列

values

(1,10,'zhang3'); //单引号

set names gbk; //解决字符编码问题

insert into test

(age,name)

values

(10,'张三');

update test

set age=111,

name='liujichai'

where id=3;

列的默认值:

alter table test add age3 tinyint not null default 0;//取消null

删除

delete from test

where id=2;

alter table y drop column 列名//删除列

select id,name from test where id>3; //select,列,where,行

添加列

alter table test add age1 tinyint(3) zerofill;

create table class (

id int primary key auto_increment,

age tinyint

)charset utf8;

insert into test

(age,name,age1)

values

(20,'小王',3);

整形

tinyint 1字节

smallint 2

mediumint 3

int 4

bigint 8

tinyint(M) unsigned zerofill// 零填充,无符号

浮点型

float(M,D)//m总位数,d小数位占用4或者8个字节

create table goods (

name varchar(10) not null default ' ',

price float(6,2) not null default 0.00

)charset utf8;

定点型

alter table goods add max float(9,2) not null default 0.0;

alter table goods add min decimal(9,2) not null default 0.0;//定点型

insert into goods

(min,max)

values

(12.1111111111,13.222222222);

字符型

create table stu(

name char(8) not null default '', //定长,8个UTF-8字符,不够用空格补齐

aihao varchar(10) not null default ''//变长,用1-2个字节来记录占用了多少个字节

)charset utf8;

速度上,定长速度快char

text 型字符不能创建索引

日期类型

date 日期

time 时间

datetime 日期时间类型

year 年类型1901-2155

create table y (

ya year(4)

);

insert into y //不指定表,默认插入所有列values

('1901');

year类型,输入一位

输入两位

‘00-69’表示2000-2069

‘70-99’表示1970-1999

date型

1992-08-12

日期时间日期

create table d (

dt data);

time类型hh:mm:ss

insert into y (tm) values ('12:10:23'); datetime类型1989-05-06 14:32:05

时间戳

enum 枚举型

set 集合性

create table t2 (

gender enum('man','girl')

)charset utf8;

char set

例题:

name: char(3)

age: tinyint unsigned

email: varchar(30)

tel: char(11)

intro: varchar(100)

salary: decimal(7,2)

riqi: date

create table wolf (

id int primary key auto_increment,

name char(3) not null default '',

age tinyint unsigned not null default 0, email varchar(30) not null default '',

tel char(11) not null default '',

salary decimal(7,2) not null default '2000-01-01',

riqi date not null default '2012-01-01'

)charset utf8;

增删改查:案例分析

增:哪张表,哪列,值

insert into wolf (name,age,email,tel,riqi) values (---);

主键值不能重复

insert into wolf

(name,age,tel)

values

('张飞',79,'66011123'),

('关羽',88,'66011124'),

('曹操',89,'66011125'); //一次可以插入多行

update wolf set id=2 name='wolf' where ** //修该多个值

select * from wolf where 1; //这个1为逻辑值’真‘

删:delete 只能删除行,alter可以drop列delete from wolf where ** //

查:

安装ecshop 保留upload,重命名为ecshop 浏览器输入路径

localhost/ecshop

E:\MySql\ECSHop\upload

localhost/E:/MySql/Enviroment/PHPnow-1.5. 4/MySQL-5.0.83/data/test

E:\MySql\Enviroment\PHPnow-1.5.4\MySQL-5.0.83\data\test

列类型

数值型

整形tinyint,smallint,mediumint,intbigint

M,unsigned,zerofill

浮点型定点型float(m,d) unsigned,M 精度,d小数位

decimal 比float更精确

字符型

char(M) 定长型,可存储的字符数

varchar(M),

日期时间类型

year 1901-2155,两位数输入法,

date yy-mm-dd ,范围1000-1-1》》9999-12-31

time HH:mm:ss 范围-838:59:59->838:59:59

datetime YY-MM-DD HH:ii:ss 1000-01-01

开发中的问题

时间戳,方便计算,格式成不同的样式

建表语句

create table 表名(

列名称列类型【列属性】【默认值】

)engine 引擎名charset 字符集;增:

insert into 表名

(列1,列2,列3)

values

(值1,值2,值3);

//如果不声明插入的列,则默认插入所有列

改:update 表名set 列1=值1,列2=值2 where 表达式;//表达式

删:delete from 表名where 表达式

查:select * from 表明

查询的5种子句:

where 条件查询

group by 分组

having 筛选

order,by 排序

limit 限制结果条数

一:where

select 列名from 表名where 行;

运算符

< 小于|=或者<> 不等于

in 在某集合内between 在某范围内

逻辑运算符

NOT或!逻辑非OR或|| 逻辑或AND或&&逻辑与

select id,name from wolf where id in (4,7,8); select id,name from wolf where id between 1 and 3;

select id,name,tel from wolf where id >= 6 || id=1;

select id,name,tel from wolf where id>2 && id<5;

select * from wolf where id!=4 && id!=5;

select * from wolf where id not in (4,5);

模糊查询

select * from wolf where name like 'te%';

通配符:%任意字符

_ 单个字符

二:group by

max:求最大min:求最小sum:求总和avg:求平均count:求总行数

select max(id) from wolf;

select id,name,max(price) from wolf group by age;//分组

select id,name,count(*) from wolf group by age; //统计重复的行

要把列名当作变量名来看——# select id,price-age,name from wolf;

# select id,name,sum(age*price) from wolf group by age;//分别统计各个分组内的信息select id,name,market_price - shop_price as sheng from goods;

三:having(筛选)

select *,age - id as tt from wolf where class='A' havint tt > 10 //统计A类,

select *,sum(age) as hk from wolf group by class having hk > 30;//

查询两门及两门以上不及格同学的平均分select name,count

select 姓名,avg(分数) from stu group by 姓名;//列名不要用单引号,会出错

select *,sum(分数< 60) from stu group by 姓名;

select *,sum(分数< 60)as gk,avg(分数) from stu group by 姓名having gk >=2

四:order by

select *,age from wolf order by age;

select * from wolf where class='A' order by age;//默认升序排列,

select * from wolf where class='A' order by age desc; //desc说明,用倒叙排列

select * from wolf where class='A' order by age asc; //指明升序排列

select * from wolf where class='A' order by age,id desc; //第一排序标准,第二排序标准

五:limit

取价格最高的三个商品

limit放在最后有限制的作用,limit[offset],[N] //偏移量,取出条目

select * from wolf order by age desc limit 3,3;//排序向后偏移3位,取三个数

六i:附加:

物种子句的使用陷阱

组内排序和组代表排序

如果有多种语句,按where,group by,having,order by,limit 顺序写,否则语法错误

create table goods like wolf;//表的列复制insert into goods select * from wolf order by age desc;//内容的传递

truncate goods //清空表

良好的理解模型

where 表达式,把表达式放在行中,看表达式是否为真

列,理解成变量,可以运算

取出结果,可以理解成一张临时表

select *,age from wolf group by class order by age desc;//错误,代表进行排序

select id,name,max(age) from wolf group by class;

七.子查询

where型子查询

from型子查询

exsts型子查询

1.where 型(把内层的查询结果作为外层查询的比较条件)

select * from wolf order by age desc limit 1;//求最大age

select id,name,class from wolf where age=(select max(age) from wolf);

2.from 型:把内层的查询结果当成临时表,供外层再次查询

select id,name,age from wolf where age in (select max(age) from wolf group by class); select max(id),age from (select id,name,age from wolf where age in (select max(age) from wolf group by class)) as tmp;//把()内当作一张表

select 姓名,count(*) from stu where '分数'<60 group by 姓名;

select 姓名from (select 姓名,count(*) as gk from stu where '分数'<60 group by 姓名having gk >=2) as tmp;

3.exists型把外层的查询结果拿到内层,看内层是否成立

mysql> select id,name,age from wolf where exists (select * from wolf where age >

20 );

链接:union

一.select union 用法union联合

合并查询结果

链接查询

左链接

右链接

内链接

列的增加与删除与修改

select * from wolf where age>60 or age <30; select * from wolf where age>60 union select * from wolf where age <30;//功能一样

union 语法要求:

两次查询的列数一致(只要求列数一致)union 用的时候会自动合并重复的行(完全相同)

union all;

如果union后句有order by 或limit 用括号,否则会出错(句一)union (句2)order by,limit 放在最后表示,及对最终结果做排序

在子句中order by 配合limit 使用才有意义

create table ta(

id char(1),

num int

);

create table tb(

id char(1),

num int

);

insert into ta

values

('a',5),

('b',10),

('c',15),

('d',10);

insert into tb

values

('b',5),

('c',10),

('d',20),

('e',99);

mysql> select id,num from (select * from ta union select * from tb) as tmp group by id; union 用的时候会自动合并重复的行mysql> select * from ta union all select * from tb;//同样的行也会显示

mysql> (select * from wolf where class='A' order by age desc limit 2) union (select * from wolf order by id desc limit 2);

mysql> (select * from wolf where class='A' order by age desc limit 2) union (select * from wolf order by id desc limit 2) order by id;

mysql> (select * from wolf where class='A' order by age desc limit 2) union (select * from wolf order by id desc limit 2) order by id desc limit 2;

在子句中order by 配合limit 使用才有意义,如果order by 不配合limit使用,会被语法分析器分析时去掉

二.链接查询

左链接右链接

集合set 集合的特性:无序性、唯一性、

理论上讲:不可能存在完全相同的两个行,但是表中可以有完全相同的两行

因为,表内部有一个rowid (不可能重复)select * from ta,tb;//ta和tb的排列组合

1.连接接上表

2.连接条件on join

如果字段名重复,添加表前缀

select ta.id,ta.num from tb left join ta on ta.id=tb.id;

create table boy (

name char(3),

flower char(5)

);

insert into boy

values

('林书豪','玫瑰'),

('刘翔','桃花'),

('周杰伦','茉莉花'),

('犀利哥','荷花');

('刘德华','狗尾巴花');

create table girl(

name char(3),

flower char(5)

);

insert into girl

values

('艾薇儿','玫瑰'),

('居里','桃花'),

('芙蓉','茉莉花'),

('凤姐','茉莉花'),

('林志玲','荷花');

找女友的活动

select boy.*,girl.* from boy left join girl on boy.flower = girl.flower;

左链接:

以左表为准,去右表中找匹配数据,找不到用null补齐

右链接:

以右表为准,去左表中找匹配数据,找不到

用null补齐

boy left jion girl <===> girl right join boy;

推荐使用左链接代替使用右链接

三:内链接(排除单身)

查询左右表都有的数据

select boy.*,girl.* from boy inner join girl on boy.flower = girl.flower;

左链接和右链接的交集(内链接)

左链接和右链接的并集(mysql不能)外链接

三表链接查询

select boy.*,girl.* from

boy inner join girl on boy.flower = girl.flower left join wolf wolf.id= tb.id

(有共同项目,才能链接)

create table m(

mid int primary key auto_increment,

hid int,

gid int,

mres varchar(5),

matime date

)charset utf8;

insert into m

(hid,gid,mres,matime)

values

(1,2,'2:0','2006-05-21'),

(2,3,'1:2','2006-06-21'),

(3,1,'2:5','2006-06-25'),

(2,1,'3:2','2006-07-21');

create table t (

tid int,

tname varchar(10)

)charset utf8;

insert into t

values

(1,'国安'),

(2,'申花'),

(3,'传智'); t

+------+-------+

| tid | tname |

+------+-------+

| 1 | 国安|

| 2 | 申花|

| 3 | 传智|

+------+-------+

m

+-----+------+------+------+------------+

| mid | hid | gid | mres | matime | +-----+------+------+------+------------+

| 1 | 1 | 2 | 2:0 | 2006-05-21 | | 2 | 2 | 3 | 1:2 | 2006-06-21 | | 3 | 3 | 1 | 2:5 | 2006-06-25 | | 4 | 2 | 1 | 3:2 | 2006-07-21 | +-----+------+------+------+------------+

select hid,mres,gid,matime from m;

select hid,tname,mres,gid,matime from m left join t on m.hid = t.tid;

select hid,t1.tname as hname,mres,gid,t2.tname as gname,matime from

m left join t as t1

on m.hid=t1.tid

left join t as t2

on m.gid=t2.tid

where matime between '2006-06-01' and '2006-07-01';

附加:列的增加和修改

charset = utf8/gbk/

增加的列默认在最后面

一:增加列

可以用after 声明在哪一列后面

alter table boy add age tinyint unsigned not

null default 0 after name;

如果新增的列,放在最前面

alter table boy add id tinyint unsigned not null default 2 first;

二:修改列

alter table boy change 被改变的列名新的列声明;

alter table boy change heigh shengao smallint not null default 180;//已经存在的数据不会变

三:删除列

alter table boy drop 列名

如果一个查询结果比较频繁的,拿这个结果进行子查询出现的非常频繁

把查询结果,当成一张表看

视图就是一张虚拟表

视图

1.视图的创建

create view vv as select id,name,age,class from wolf;

show tables; //查看view

2.视图删除

drop view name//

3.可以进行权限控制

create view vt as sleect id,name,age,class from goods

把表的权限开启,但是封锁相应的视图权限,视图里只开放部分数据

4.大数据分表格时可以用到

比如表的行数超过200万时,就会变慢。

可以把一张表的数据,拆成多张表

拆分方法

最长用可以用id取模来计算

id%/4+1=[1,2,3,4]

比如$_GET['id']=17 17%4+1=2,$stableName='news'.'2'

select * from news where id=17

还可以用视图,把四张表形成一张视图create view newsas select from n1 union select from n2 union ...

5.视图修改

alter view vt as select xx xx xx

6.视图与表的关系

表的内容改变,则视图的内容也会改变(视图是表的查询结果)

视图改变了,表的内容不一定改变。

如果视图和表一一对应时可以修改

对于insert 应注意视图必须包含,所有表中没有默认值得列

7.视图的algorithm(算法)

algorithm=merge/temptable/undefined merge //当引用视图时,应用视图的语句与定义视图的语句合并

temptable //当应用视图时,根据视图的建立语句建立一个临时表

undefined //自动,让系统帮你选

merge:只是逻辑表,或者语句temptable :一张临时表,真的有一张表存在,

show create view vv//查看创建的视图mysql> create algorithm=temptable view tutu as select id,name,class from wolf; temptable取数据,放入临时表,然后从临时表中查数据

字符集与校对集

可以设置服务器莫人字符集

数据库默认字符集

表默认字符集

列字符集

以表utf8为例

存储的数据在表中,最终是utf8

字符集转换器://负责服务器与客户端之间的字符转换

utf8->utf8

gbk->utf8

1.告诉字符转换器,我给你发送的数据是什么编码的

2.告诉转换器,转换成什么编码

3.查询的结果用什么编码,

1. set character_set_client=gbk;//设置客户端编码(告诉转换器)

2. set character_set_connection=gbk;//中转的时候是gbk

3. set character_set_results=gbk;//返回的也是gbk

mysql> select * from tmp;

+------+

| name |

+------+

| 中国|

+------+

1 row in set (0.00 sec)

mysql> set character_set_results=utf8;//设置服务器端编码为utf8

Query OK, 0 rows affected (0.00 sec)

mysql> select * from tmp;

+--------+

| name |

+--------+

| 涓?浗|

+--------+

1 row in set (0.00 sec)

如果1,2,3都为gbk

可以简写为set names gbk;

connection和服务器的字符集比client小时——会发生丢失数据gbk的字符集大于utf8

校对集

排序必须按某种规则排,这个规则就是‘校对集’

truncat tmp //清空表

insert into tmp values ('a'),('B'),('c'),('D'); select * from tmp order by name asc;

+------+

| name |

+------+

| a |

| B |

| c |

| D |

+------+

校对规则

create table tmp2(

name varchar(10)

)charset utf8 collate utf8_bin;

insert into tmp2 values ('a'),('B'),('c'),('D');

mysql> select * from tmp2 order by name asc;//按照二进制排序

按照ASCII排序

+------+

| name |

+------+

| B |

| D |

| a |

| c |

+------+

校对集:指字符集的排序规则

一种字符集可以有一个或多个排序规则

一utf8为例,我们默认使的utf8_general_ci 规则也可以按utf8_bin

声明校对集

create table mm() charset utf8 utf8_general-ci

我的MYSQL学习心得

我的MYSQL学习心得 一、使用视图的理由是什么? 1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2.查询性能提高。 3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 例子:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c。最后a表与b表都不会存在了。而由于原来程序中编 写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据)。而通过视图就可以做到不修改。定义两个视图名字还是原来的表名a和b。a、b视图完成从c表中取出内容。

说明:使用这样的解决方式,基于对视图的细节了解越详细越好。因为使用视图还是与使用表的语法上没区别。比如视图名a,那么查询还是"select * from a"。 4.复杂的查询需求。可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。 视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。 二、通过更新视图实现更新真实表 看到很多例子,更新视图可以更新真实表。原因,我是这样理解的:视图并没有保存内容。只是引用数据。那么,更新视图,其实就是以引用的方式操作了真实表

Enterprise-Architect-中文经典教程

Enterprise Architect 中文经典教程 一、Enterprise Architect简介 Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。可以让系统开发中各个角色都获得最好的开发效率。 二、创建新项目 安装好了EA汉化版后,启动软件。点击“创建新的项目”,打开创建新项目对话框。 【图1】 这里可以选择各种的初始的模板包。 【图2】

我们选择了其中几个,然后确定打开了项目浏览器。我们的项目将从这里开始了。 【图3】 三、EA软件配置 在使用软件之前,我们先来对它进行配置。打开“工具”–>“选项”。 【图4】 常规配置中,比较重要的是作者这项。因为在EA项目的团队协作中,作者是每个人的身份标识。 在代码工程中,最好把文件编码设置成UTF8或者是GB中文。 其他方面的配置,因为都是中文的,也比较容易理解。有些不明的地方,可以多琢磨。 另外对于最下面的十种编程语言,可以根据自己的需要,进行一些配置。比如PHP,可以配置PHP4或者是PHP5,那么生成的代码也是有些不同的。还可以隐藏其他没有用到的语言。 四、用例图,类图的使用

用例图(use case) 用例图是我们做系统分析的通常第一步,是非常重要的。毕竟大部分的开发流程,都将需求分析作为首要步骤,也是必要步骤。将系统需求化作图型表达出来。首先是在项目浏览器中,右键“添加”–>“新建图表”。 【图5】 然后可以加入一些角色和用例,在每次在工具箱里面拉出一个元件,都将打开这个元件的设置对话框,在对话框内填入元件的名称等信息。现在我们是表达一个用户注册和登录的场景:

传智播客mybatis课堂笔记

mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1

1.2创建mysql数据 导入下边的脚本: sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于

完整Mysql燕十八学习笔记

Mysql 三大列类型 1. 数值型 整型 Tinyint 、Smallint、Mediumint 、Int、Bigint 小数型 Float(D,M),Decimal(D,M) 2. 字符串型 Char(M) Varchar(M) Text 文本类型 3. 日期时间类型 Date 日期 Time 时间 Datetime 时间类型 Year年类型 一.整型列的字节与存储范围 从数学上讨论tinyint ,建表时既能足够存放,又不浪费空间。 即: (1). 占据空间

(2). 存储范围

通过占用字节和所存范围分关系合理的选择类型例:Tinyint

经测试,Tinyint 的默认为有符号-128~127之间,当越界时自动取相应 的边界值。若要存 0~255无符号时: 列的可选属性: Tinyin t (M ) un sig ned zerofill. M :宽度(在0填充的时候才有意义) Un sig ned:无符号类型(非负),影响存储范围 Zerofill : 0填充(默认无符号)

1> insert into test -> (name,age3) -> ualu&s ->「赵六'/S'); u QIC, 1 row aff?et&d (0.00 soc) 箕from t&st; I id I name I age I agel I age2 I age3 I 卜--------- + ------------- + --------------- + -------------- + --------------- + ----------------- + rows in at (0.07 SEC) 列可以声明默认值,而且推荐声明默认值not null default 0; ysql> alter table test add tinyint(3j not null default 0; uery 0IC, 9 rows affected (0.13 $ec) ecords: 9 Duplicates: 0 Uarnings: O 小数型/浮点型、定点型 Float(M,D):M代表总位数,D代表小数位 (6,2)为例:-9999.99 ->9999.99 12345G789一一一一张张张张 李 张 李 王 制 L L u N i NULL L L u N L L J N I NULL NULL L L u N 三 四 三 四 五 六 6 NULL NULL I NULL I L L u N NULL | 2G0 | NULL | NULL ! NULL I 0 I NULL I NULL | NULL I NULL I 127 I NULL I y$ql> t M from 七。兮七; ------ - -------------------------- + ----- ------ I id I name I age I agel I age2 I age3 I age4 I I 25 I NULL I I 127 I NULL I I -128 I NULL I I 127 I NULL I I -100 | NULL I I NULL I 200 I I NULL I 0 I I NULL I NULL I I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I NULL I 127 I NULL I NULL I 00005 I NULL I 06305 I 123456T89三三三 _: 一 四 三 四 五 六 张 张 张 张 李 张 李 王 赵

Mysql数据库学习心得

Mysql数据库学习心得(1) 由于工作中需要使用mysql,笔者通过网上学习,动手实践,终于从一个"数据库菜鸟"变成了能熟练操作mysql的"准大虾"了,:)。现将学习心得整理如下。 MySQL是完全网络化的跨平台关系型数据库系统,一个真正的多用户、多线程SQL数据库服务器,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使 用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,对于中、小型应用系统是非常理想的。除了支持标准的ANSI SQL语句,更重要的是,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。而在Unix/Linux系统上,MySQL支持多线程运行方式,从而能获得相当好的性能,而且它是属于开放源代码软。 MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成,MySQL的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。MySQL的官方发音是"My Ess Que Ell"(不是MY-SEQUEL )。 一.获得MySQL 首先必须下载MySQL。Mysql的官方网站是:,在中国的镜像是:或者:,可以下载MySQL的稳定版本截止到笔者发稿为止)。其版本名称是,不但免费而且没有所谓的"30天使用期限"。 二.MySQL的安装 (一)在Win98/Winnt下的安装 到一个目录,运行Setup程序,会提示整个安装的过程。它默认安装到c:mysql下,如果要安装到其它目录下还有改动一些东西,作为初学者,可以先不管,以默认的目录安装。好了,安装后,进入c:mysql in 目录下,运行文件在Win98下直接运行,正常情况下,没有什么提示信息。 1。将下载后的文件解压解压到一个临时目录。 2。点击安装到c:mysql(默认)。 3。将拷贝到c:,把文件中的#basedir=d:/mysql/改为basedir=c:mysql。 4。进入msdos,到目录c:mysql in。 5。输入mysqld-shareware -install,此为启动Mysql数据库服务。

My SQL学习笔记

My SQL学习笔记: 一、认识关系型数据库 1.数据库实际上就是管理数据的仓库,平常我们使用的一般是利用文件对数据进行保存和 管理,doc, xls, jpg等等,只要我们知道的一切能够保存数据的文件,我们都可以认为是一种保存和管理数据的方式。 2.但是对于大批量数据和便于网络操作而言,使用特定的数据库是很有必要的。 3.数据库系统(Database System)=数据(Data)+数据管理系统(Database Management System) 4.通常意义的数据库:至少包含数据和管理数据的工具,我们知道,数据库还需要对外提 供接口让其他程序对数据库进行操作。 二、启动My SQL 1.启动数据库分为两部分,一部分是服务器,第二部分是客户端连接到服务器。 2.启动服务器:在Windows上安装My SQL后会在Windows服务管理中增加一条记录,可 以通过启动services.msc找到MySQL56进行启动。也可以使用net start 。 三、My SQL操作 分类:针对的操作对象不同,分成不同的语言: 1.数据操作(管理)语言DML 2.数据定义语言(对保存数据的格式进行定义)DDL 3.数据库控制语言(针对数据库软件服务进行操作)DCL DCL控制DDL,DDL限制DML,即对数据库的操作、对表的操作、对数据的操作 DML又分为DQL和DML 四、数据库操作DCL 1.创建数据库:create database [options]; (options:字符集、校对规则) 2.查询数据库:show databases; 3.查看数据库的创建语句:show create database ; 4.删除数据库:drop database ; 5.修改数据库信息:alter database ;(options:字符集、校对规则), 对于数据库的名字,一般不进行修改,可以通过修改数据库文件夹的名字进行修改,也可以新建一个数据库,将数据库内容保存新数据库中 五、表操作 1.创建表:create table (,…) [options]; 1)先分析,需要保存的实体数据,拥有哪些属性,需要怎样保存 2)列结构:列名、列的数据类型、列的约束 2.查看表: 1)有那些表:show tables [like ‘pattern’]; 例如show tables like ‘city_%’;(表示已city_开头的 所有表) 2)某个表的创建信息:show create table ; 3)查看表结构:desc(describe) ; 3.删除表: drop table [if exists] ; 4.修改表: 1)修改表名:rename table to ; rename table student to info_student, teacher to info_teacher; 2)修改字段(列)定义:

传智 韩忠康 mysql 课程笔记4(吐血整理)

Order by 2013年4月19日星期五 09:39 校对规则,决定排序关系。 按照字段值进行排序 Order by 字段升序|降序(asc|desc) 默认升序,asc。 允许多字段排序, 指的是,先按照第一个字段排序,如果说不能区分,才使用第二个字段。以此类推。 注意,如果是分组,则应该使用对分组字段进行排序的groupby语法。 limit 2013年4月19日星期五 09:50 限制获得的记录数量: limit的语法: Limit offset,row_count Offset 偏移量,从0开始。可以省略,默认为0. Row_count总记录数,如果数量大于余下的记录数, 则获取所有余下的即可:

select * from teacher_class limit 3, 4; select * from teacher_class limit 5;select * from teacher_class limit 5, 100;

distinct 2013年4月19日星期五 10:17 去除重复记录: 重复的记录,指的是,字段值都相同的记录, select days from teacher_class ; select distinct days from teacher_class ; select days, begin_date from teacher_class ; select distinct days, begin_date from teacher_class ; 相对的是all,表示所有。默认就是all行为。

Union 2013年4月19日星期五 10:26 联合查询: 将多条select语句的结果,合并到一起。称之为联合操作。 获得2个班代课最多的老师: select t_name, days from teacher_class where c_name='php0115' order by days desc limit 1; select t_name, days from teacher_class where c_name='php0228' order by days desc limit 1;

传智 韩忠康 mysql 课程笔记5(吐血整理)

昨天作业 2013年4月20日星期六 09:56 class as h on m.host_id =h.id left join

select 2013年4月20日星期六10:06

生成的文件格式: 默认的,采用行来区分记录,而采用制表符,来 区分字段。 为了满足某种特别的需求,会采用不同的分割方式。 支持,在导出数据时,设置记录,与字段的分割符。 通过如下的选项: fields:设置字段选项 Lines: 设置行选项(记录选项) 先看默认值: 字段:fields terminated by '\t' enclosed by '' escaped by '\\‘ 记录:lines terminated by '\n' starting by '' 可以自己设定: select * into outfile 'e:/amp/three' fields terminated by ',' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 字段包裹 select * into outfile 'e:/amp/four' fields terminated by '\t' enclosed by 'x' lines terminated by '\n' starting by 'start:' from teacher_class where t_name = '韩信'; 注意: 常规的,所有的记录,应该通过行来显示例外是保存二进制数据:

非常经典的solr教程

非常经典的solr教程,照着上面做完全能成功! duogemajia Solr 3.5 入门配置应用 机器上已安装: Tomcat 6.0 jdk1.7 mysql 5.0 1 访问https://www.doczj.com/doc/e15242181.html,/dyn/closer.cgi/lucene/solr , 在这个网址里选择一个路径, 下载solr 3.5 的版本 2 solr3.5 在本机解压缩以后, 把apache-solr-3.5.0\example\webapps 目录下 的solr.war 文件拷贝到Tomcat 6.0 的webapps 目录下 3 在Tomcat 6.0\webapps\solr 目录里新建一个文件夹conf 4 把solr3. 5 本机解压缩文件夹apache-solr-3.5.0\example 下的multicore 文件夹 考本到Tomcat 6.0\webapps\solr\conf 目录下 5 在Tomcat 6.0\conf\Catalina\localhost 目录下新建一个solr.xml 文件, 里面的内容如下 6 访问你的solr 项目localhost:8080/solr 会显示出两个core , solr 正常运行 7 配置分词, 使用的是mmseg4j 和搜狗词库, 下载地址: https://www.doczj.com/doc/e15242181.html,/p/mmseg4j/ , https://www.doczj.com/doc/e15242181.html,/p/mmseg4j/downloads/ detail?name=data.zip&can=2&q 8 把本地下载的mmseg4j 解压缩, 把里面的mmseg4j-all-1.8.5.jar 文件拷贝到Tomcat 6.0\webapps\solr\WEB-INF\lib 目录下 9 在Tomcat 6.0\webapps\solr 目录下新建一个dic 文件夹, 把新下载的词库拷贝到dic 目录下 10 在\Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml 文件的types 节点里添加如下节点:

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

前言 作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,MySQL并不难,今天这份最全的MySQL总结,助你向大厂“开炮”,面试不再被MySQL难倒。 注意:关于MySQL的内容整理,包括了面试题、学习笔记、使用文档以及Xmind思维图几个部分,需要高清完整版的请转发+关注,然后私信回复“666”获得免费领取方式 01、MySQL 面试题集合总结 1.1 MySQL 面试题(基础部分): ?drop、truncate、delete区别 ?数据库三范式是什么? ?union和union all有什么不同? ?char、varchar2、varchar有什么区别? ?合并查询有哪些? ?SQL语句执行顺序 ?null的含义 ?MySQL、SqlServer、oracle写出字符存储、字符串转时间 ?update语句可以修改结果集中的数据吗? ?B树和B+树的区别 ?你建过索引吗? 建索引的原则 ?索引的类型, 如主键索引 ?查看SQL执行计划

?有十万条数据, 写SQL语句查询其中某字段较大值的几条数据 ?子查询与关联查询的区别 ?MySQL InnoDB、Mysaim的特点? ?乐观锁和悲观锁的区别?? ?行锁和表锁的区别? ?数据库隔离级别是什么?有什么作用? ?MySQL主备同步的基本原理。 ?如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署) ?SQL什么情况下不会使用索引(不包含,不等于,函数) ?一般在什么字段上建索引(过滤数据最多的字段) ?MySQL,B+索引实现,行锁实现,SQL优化 ?如何解决高并发减库存问题 ?数据库事务的几种粒度 1.2 MySQL 面试题(实战部分): ?数据库三范式,根据秒杀场景设计数据表 ?数据库的主从复制 ?死锁怎么解决 ?mysql并发情况下怎么解决(通过事务、隔离级别、锁) ?触发器的作用? ?什么是存储过程?用什么来调用? ?存储过程的优缺点?

MySQL笔记..

03_MySQL Day01 一、数据库(DataBase DB) 1、数据库:存储数据的仓库 2、数据库分类: (1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等) (2)非关系型数据库(Nosql):MongDB等 3、Mysql安装 (1)window:配置文件my.ini 进入命令行开始--运行--cmd (2)Linux:配置文件:/etc/https://www.doczj.com/doc/e15242181.html,f 终端 mysql -uroot -p 说明: Mysql 数据库的存储位置 /var/lib/mysql 4、Mysql登录 mysql -u用户名-p密码[-P3306] [-D数据库名称] 5、Mysql退出 quit exit \q 6、Mysql注释 -- 注释 # 注释 7、修改提示符(Prompt) (1)进入MySQL的命令 prompt 提示符名称 (2)登录MySQL写的命令 mysql -uroot -p --prompt=提示符名称 说明: a.恢复提示符prompt mysql> b.特殊符号 \h 主机名称 \D 系统时间日期 \d 选择数据库名称 8、SQL(Structured Query Language)结构化查询语句 (1)DDL(数据创建语言):创建数据库,创建表、创建视图等

CREATE(创建),DROP(删除),ALTER(修改) (2)DML(数据操作语言):对数据库的数据的增,删,改 INSERT(添加),DELETE(删除),UPDATE(改) (3)DQL(数据查询语言):对数据库的数据查询 SELECT(查询) (4)DCL(数据库控制语言):分配(GRANT)用户权限 及权限(REVOKE)撤销 9、SQL命令行规范 a.系统命令大写,名称小写 b.SQL命令行以分号结束或\g 说明:结束分隔符可以用delimiter 符号名称 c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行 d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user` 10、创建数据库(DDL) (1)查看数据库 SHOW DATABASES; (2)创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名称[[DEFAULT] CHARACTER SET [=] 编码]; (3)查看创建数据库命令 SHOW CREATE DATABASE 数据库名称; (4)删除数据库 DROP DATABASE [IF EXISTS] 数据库名称; (5)修改数据库的编码 ALTER DATABASE 数据库名称 [DEFAULT] CHARACTER SET [=]编码; (6)选择数据库 USE 数据库名称; (7)查看当前选择的数据库 SELECT DATABASE(); 11、创建数据库中的表 (1)查看表 SHOW TABLES; (2)创建表结构 CREATE TABLE [IF NOT EXISTS] 表名( 字段(Field)名称|列名称数据类型[字段属性|约束条件], 字段(Field)名称|列名称数据类型[字段属性|约束条件] ... )[ENGINE=InnoDB DEFAULT CHARSET=utf8]; 说明:数据库最小单位是表,一定是先有表结构 再添加数据

mysql优化笔记

◆Mysql数据库的优化技术<大型网站优化技术> 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程[模块化编程,可以提高速度] 数据库的三层结构: f: 对mysql配置优化[配置最大并发数my.ini, 调整缓存大小] g: mysql服务器硬件升级 h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM) CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) ◆什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF ?数据库的分类 关系型数据库: mysql/oracle/db2/informix/sysbase/sql server 非关系型数据库: (特点: 面向对象或者集合) NoSql数据库: MongoDB(特点是面向文档) 2NF: 表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现id primary key ; 3NF: 即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放. 比如下面的设计就是不满足3NF:显示推导处理

mysql多表操作与练习笔记

mysql多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 SQL练习 【内容:数据库备份与恢复】 数据库备份 数据库的备份是指将数据库转换成对应的sql文件。数据库导出sql脚本的命令如下: ●mysqldump –u用户名–p密码数据库名>生成的脚本文件路径; 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用数据库恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。 ●在数据库外恢复 mysql -u root -p 数据库名< 文件路径 注意:要求数据库必须先创建出来. ●.在数据库内恢复 source SQL脚本路径:使用这种方式恢复数据,首先要登录数据库 【重点总结】 备份 Mysqldump –u root –p abc mydb>c:/mydb.sql 恢复 1.mysql –u root –p mydb

【内容:多表操作】 多表设计 当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中的表。今天我们需要了解的概念模型包括以下两个: ●对象模型:针对java中的实体类,例如我们之前学习的domain层中的User类等; ●关系模型:对应数据库中的表。 在java中有以下三个关系描述: ●is a:例如猫是动物,表示继承关系; ●has a:例如人有两只手,表示的是类与成员的关系; ●use a:表示类与方法之间的关系; 我们今天主要关注的是第二个关系:类与成员的关系。这种关联关系可以分为如下三种: ●一对一关联:例如身份证与人就是一对一的关系,一个人只有一个身份证,一个身份证 号只属于一个人。 ●一对多关联:例如用户与订单,一个用户可以拥有多个订单,多个订单可以属于同一个 用户,这是一个很明显的一对多关联。 ●多对多关联:例如商品与订单,一个订单中可以包含多个商品,而一个商品也可以存在 于多个订单中,这就是一个多对多关联。 概念模型在java中对应这实体类,在实体类中使用成员变量完成关联关系,而且一般都是双向关联,以下是java中实体类与成员之间的关联关系,如下所示: 一对一关联 //身份证类一的一方 public class IDCard { private Person person; //身份证关联人类一对一 } //人类一的一方 public class Person { private IDCard idcard; //人类关联身份证类一对一 } 一对多关联 //用户一的一方 public class User { private List orders; //用户可以有多个订单,在用户中关联订单} //订单多的一方 public class Order { private User user; //多个订单可以属于一个用户,在订单中关联用户} 多对多关联 // 订单多的一方 public class Order { private List products; //订单中可以包含多个商品,订单关联商品

mysql学习笔记

创建student表 CREATE TABLE student ( sNo int(11) NOT NULL DEFAULT '0', sName varchar(10) DEFAULT NULL, sSex enum('m','f') DEFAULT 'm', sAge tinyint(4) DEFAULT '18', sClass varchar(10) DEFAULT NULL, PRIMARY KEY (sNo), KEY index_name (sName) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建course表 CREATE TABLE course( cNo tinyint(4) NOT NULL, cName varchar(20) NOT NULL, cCredit tinyint(4) NOT NULL, PRIMARY KEY ( cNo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建score表 create table score (sNo int not null, cNo tinyint not null, score tinyint, primary key(sNo,cNo), constraint foreign key(sNo) references student(sNo), constraint foreign key(cNo) references course(cNo) )engine=innoDB default charset=utf8; insert into course values(1,"计算机操作系统",3),(2,"计算机基础教程",2), (3,"计算机导论",4),(4,"C++ Primer",4),(5,"MySQL入门与精通",5); mysql的SQL语句: 创建表: create table student( id int not null primary key, name char(10) not null, sex char(2) not null ); 修改表结构:增加,删除,修改字段 alter table student drop sex, add birthday date,

Mysql日志管理笔记

Mysql日志管理笔记(5.7版本) wangzz 四种日志文件: 1,二进制日志:以二进制形式记录数据库的各种操作,但不记录查询语句. 2,错误日志: 该日志文件记录mysql服务器启动,关闭和运行时的出错等信息。 3,通用查询日志:记录mysql启动,关闭,及客户端的连接信息,更新数据记录sql语句和查询数据记录sql语句. 4,慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位性能瓶颈。 1,二进制日志 1)启动二进制日志 /etc/https://www.doczj.com/doc/e15242181.html,f 文件。 [mysqld] log-bin[=dir/[filename]] server_id=100 log-bin=/export/app/log/binlog/binlog.log 重启服务就可以启动二进制日志文件,如果启动不了。看log-error日志,你会时到重启不了的原因 mysql> show variables like '%bin%'; +-----------------------------------------+-------------------------------------+ | Variable_name | Value | +-----------------------------------------+-------------------------------------+ | bind_address | * | | binlog_cache_size | 32768 | | binlog_checksum | CRC32 | | binlog_direct_non_transactional_updates | OFF | | binlog_error_action | ABORT_SERVER | | binlog_format | ROW | | binlog_group_commit_sync_delay | 0 | | binlog_group_commit_sync_no_delay_count | 0 | | binlog_gtid_simple_recovery | ON | | binlog_max_flush_queue_time | 0 | | binlog_order_commits | ON | | binlog_row_image | FULL | | binlog_rows_query_log_events | OFF | | binlog_stmt_cache_size | 32768 | | innodb_api_enable_binlog | OFF | | innodb_locks_unsafe_for_binlog | OFF | | log_bin | ON | | log_bin_basename | /export/app/log/binlog/binlog | | log_bin_index | /export/app/log/binlog/binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_statements_unsafe_for_binlog | ON | | max_binlog_cache_size | 18446744073709547520 | | max_binlog_size | 1073741824 | | max_binlog_stmt_cache_size | 18446744073709547520 | | sql_log_bin | ON | | sync_binlog | 1 | +-----------------------------------------+-------------------------------------+ 27 rows in set (0.00 sec) 查看二进制日志文件 [root@risoserverbinlog]# mysqlbinlog binlog.000001

我的MYSQL学习心得

我的MYSQL学习心得(十一)视图我的MYSQL学习心得(一)简单语法 我的MYSQL学习心得(二)数据类型宽度 我的MYSQL学习心得(三)查看字段长度 我的MYSQL学习心得(四)数据类型 我的MYSQL学习心得(五)运算符 我的MYSQL学习心得(六)函数 我的MYSQL学习心得(七)查询 我的MYSQL学习心得(八)插入更新删除 我的MYSQL学习心得(九)索引 我的MYSQL学习心得(十)自定义存储过程和函数 我的MYSQL学习心得(十二)触发器 我的MYSQL学习心得(十三)权限管理 我的MYSQL学习心得(十四)备份和恢复 我的MYSQL学习心得(十五)日志 我的MYSQL学习心得(十六)优化 我的MYSQL学习心得(十七)复制 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图

使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL]CHECK OPTION] 其中,CREATE:表示新建视图; REPLACE:表示替换已有视图 ALGORITHM :表示视图选择算法 view_name :视图名

EA经典教程(实战)

EA经典教程 2009-12-07 来源:https://www.doczj.com/doc/e15242181.html, 一、Enterprise Architect简介 nterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISI 支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项文档生成,数据建模等方面。可以让系统开发中各个角色都获得最好的开发效率。 二、创建新项目 安装好了EA汉化版后,启动软件。点击“创建新的项目”,打开创建新项目对话框。 1】 这里可以选择各种的初始的模板包。 2】 我们选择了其中几个,然后确定打开了项目浏览器。我们的项目将从这里开始了。

3】 三、EA软件配置 在使用软件之前,我们先来对它进行配置。打开“工具”–>“选项”。 【图4】 常规配置中,比较重要的是作者这项。因为在EA项目的团队协作中,作者是每个人的身份标识。 在代码工程中,最好把文件编码设置成UTF8或者是GB中文。 其他方面的配置,因为都是中文的,也比较容易理解。有些不明的地方,可以多琢磨。 另外对于最下面的十种编程语言,可以根据自己的需要,进行一些配置。比如PHP,可以配置PHP4或者是PHP5,那么生成的代码也是有些不同的。还可其他没有用到的语言。 四、用例图,类图的使用 用例图(use case) 用例图是我们做系统分析的通常第一步,是非常重要的。毕竟大部分的开发流程,都将需求分析作为首要步骤,也是必要步骤。将系统需求化作图型表达出

相关主题
文本预览
相关文档 最新文档