2、选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Custom”,按“next”键继续。
3、在“DeveloperComponents(开发者部分)”上左键单击,选择“This feature,
and allsubfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。
9、询问是否要修改默认root用户(超级管理)的密码。“Enable root access from remotemachines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。
4、修改表 4.1添加一列 alter table 表名 add 列名 类型(长度)[约束]; -----修改表添加列
4.2修改列的类型(长度、约束) alter table 表名 modify 要修改的字段名 类型(长度)[约束]
4.3修改列的列名 alter table 表名 change 旧列名 新列名 类型(长度)[约束]
4.4、删除表的列 alter table 表名 drop 列名
4.5、修改表名 rename table 表名 to 新表名
4.6、修改表的字符集 alter table 表名 character set 编码
4.7、修改字段的排列位置 alter table 表名 modify 列名1 数据类型 first|after 列名2 4.8查看当前编码 show create table tbl_user;
4.9装载数据 load data local infile 'path/1.txt' into table sort lines terminated by '\r\n';
4.10、字段类型
4.11、比较运算符 =、=、(!=)、、>、60元的所有商品信息 select * from product where price>60;
3.查询商品名称含有“士”字的商品信息 select * from product where pname like '%士%';
4.查询商品id在(3,6,9)范围内的所有商品信息 select * from product where pid in(3,6,9);
5.查询商品名称含有“士”字并且id为6的商品信息 select * from product where pname like '%士%' and pid=6;
6、找出正好包含5个字符的名字 select * from pet where name like '_____';
+-------+--------+---------+------+------------+-------+| name | owner | species | sex | birth | death |+-------+--------+---------+------+------------+-------+| Claws | Gwen | cat | m | 1994-03-17 | NULL || Buffy | Harold | dog | f | 1989-05-13 | NULL |+-------+--------+---------+------+------------+-------+ 7.查询id为2或者6的商品信息 select * from product where pid=2 or pid=6;
4.3排序 1.查询所有的商品,按价格进行排序(asc升序、desc降序) select * from product order by price asc;
select * from product order by price desc;
2.查询名称有“士”的商品信息并且按照价格降序排序 select * from product where pname like '%士%' order by price desc;
4.4聚合函数 常用的聚合函数:sum()求和,avg()平均,max()最大值,min()最小值,count()计数 1.获得所有商品的价格的总和 select sum(price) from product;
2.获得所有商品的平均价格 select avg(price) from product;
3.获得所有商品的个数 select count(*) from product;
4.5分组操作 1.添加分类id(alter table product add cid varchar(32);) 2.初始化数据
update product set cid='1';
update product set cid='2' where pid in(5,6,7); 1.根据cid字段分组,分组后统计商品的个数 select cid,count(*)from product group by cid;
2.根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元 select cid,avg(price)from product group by cid having avg(price)>20000
3、从第3条记录开始显示,显示3条记录 select * from sort limit 2,3; ("2"表示的是从第三条记录开始,是从0开始计数的,"3"表示查询3条记录)
两张表分别都是主表,第三张表为从表,提供两个字段,都是外键 #商品表 create table product( pid varchar(32) primary key, name varchar(40), price double ); #订单表 create table orders( oid varchar(32) primary key, totalprice double #总计 ); #订单项表 create table orderitem( oid varchar(50),--订单id pid varchar(50) --商品id ); #联合主键(可省略) alter table orderitem add primary key (oid,pid); #---订单表和订单项表的主外键关系 alter table orderitem add constraint orderitem_orders_fk foreign key(oid) references orders(oid); #---商品表和订单项表的主外键关系 alter table orderitem add constraint orderitem_product_fk foreign key (pid) references products(pid); 3、多表查询操作 3.1、交叉连接查询(基本上不会使用-得到的是两个表的乘积) 语法:select * from A,B; 3.2内连接查询(使用的关键字inner join --inner可以省略) 隐式内连接:select * from A,B where 条件 显示内连接:select * from A inner join B on 条件 3.3外连接查询(使用的关键字outer join --outer可以省略) 左外连接:left outer join select * from A left outer join B on 条件; 右外连接:right outer join select * from A right outer join B on 条件; 3.4、查询例题 #1.查询哪些分类的商品已经上架 select * from category,product where cid=category_id; select * from category c,product p where c.cid=p.category_id; #隐式内连接 select distinct cname from category c,product p where c.cid=p.category_id;
#内连接 select distinct cname from category c inner join product p on c.cid=p.category_id;
#2.查询所有分类上架商品的个数 #左外连接 select cname,count(category_id) from category c left outer join product p on c.cid=p.category_id group by cname;
3.5、子查询
一条select语句结果作为另一条select语句一部分(查询条件,查询结果,表等)。
#子查询,查询“化妆品”分类上架商品详情 #隐式内连接 select * from product p,category c where p.category_id=c.cid and c.cname='化妆品'; #子查询 select * from product where category_id=(select cid from category where cname='化妆品'); 注意: 从表外键不能添加主表中不存在的记录。 主表不能删除从表中已经引用的记录。 七、存储引擎
存储引擎:也叫表类型,指的是数据表的存储机制,索引方案等配套相关功能。不同的引擎,由于处理方式不同,会带来不同的功能或者相应优化,根据实际需求选择合理的引擎。 选择表的存储引擎的标准:
是否需要事务支持
是否支持外键
并发量的要求
错误恢复的处理
是否支持某些具体功能 最常用的存储引擎:
MyISAM:分开保存、支持索引压缩、是表级锁、不支持事务,外键、保存表中具体的行数
InnoDB:保存到表空间、索引和数据是绑定保存的,不压缩,体积大、很多时候是行级锁,并发 高、不支持FULLTEXT类型的索引(新版本的InnoDB也支持),支持事务,外键,数据完整 性约束强、不保存表中具体行数 7.1、查看数据库支持的引擎 show engines; 7.2、查看当前所使用的存储引擎 show create table 表名 7.3、更改表的存储引擎 alter table 表名 engine=更改后的存储引擎名