重温 Mysql and 表单
1、双倍浮动BUG:
描述:块状元素设置了float属性后,又设置了横向的margin值,在IE6下显示的margin值要比设置的值大;
解决方案:给float的元素添加 display:inline;将其转换为内联元素;
2、表单元素行高不一致:
解决方案:
①、给表单元素添加vertical-align:middle;
②、给表单元素添加float:left;
3、IE6(默认16px为最小)不识别较小高度的标签(一般为10px):
解决方案:
①、给标签添加overflow:hidden;
②、给标签添加font-size:0;
4、图片添加超链接时,在IE浏览器中会有蓝色的边框:
解决方案:
给图片添加border:0或者border:none;
5、最小高度min-height不兼容IE6;
解决方案:
①、min-height:100px;_height:100px;
②、min-height:100px;height:auto!important;height:100px;
6、图片默认有间隙:
解决方案:
①、给img添加float属性;
②、给img添加display:block;
7、按钮默认大小不一:
解决方案:
①、如果按钮是一张图片,直接用背景图作为按钮图片;
②、用a标记模拟按钮,使用JS实现其他功能;
8、百分比BUG:
描述:父元素设置100%,子元素各50%,在IE6下,50%+50%大于100%;
解决方案:
给右边的浮动元素添加clear:right;
9、鼠标指针BUG:
cursor:hand 只有IE浏览器识别;
cursor:pointer;IE及以上浏览器和其他浏览器都识别(手型);
10、透明度设置,IE不识别opacity属性:
解决方案:
标准写法:opacity:value;(取值范围0-1);
兼容IE浏览器 filter:alpha(opacity=value);(取值范围1-100);
11、上下margin重叠问题:
描述:给上面的元素设置margin-bottom,给下面的元素设置margin-top,只能识别其中较大的那个值;
解决方案:
①、margin-top和margin-bottom 只设置其中一个值;
②、给其中一个元素再包裹一个盒子,并设置over-flow:hidden;
12、给子元素设置margin-top.应用在了父元素上:
解决方案:
①、把给子元素设置的margin-top改为给父元素设置padding-top;
②、给父元素设置1px的border,即border-top:1px solid transparent;
③、给父元素设置over-flow:hidden;
④、给父元素设置float:left;
SQL(Structred Query Language)结构化查询语言:和数据库交互的语言,进行数据库管理的语言。
一、数据库的操作:
1、查询所有数据库:
show databases;
2、创建数据库:
create database 数据库名 [default] character set 字符集编码(一般为utf8);
3、查看数据库创建语句:
show create database 数据库名;
4、删除数据库:
drop database 数据库名;
5、修改数据库(修改字符编码):
alter database 数据库名 default character set 新的字符集编码;
二、数据库中表的管理操作:(先选择数据库:use 数据库名)
1、查看所有表:
show tables;
2、创建表:
create table 表名(列名 列类型,列名 列类型,.....);
3、查看表结构:
desc 表名;
4、删除表:
drop table 表名;
5、修改表:
①、添加字段:
alter table 表名 add column 字段名 字段类型;
②、删除字段:
alter table 表名 drop column 字段名;
③、修改字段名称:
alter table 表名 change column 旧字段名 新字段名 字段类型;
④、修改字段类型:
alter table 表名 modify column 字段名 字段类型;
⑤、修改表名称:
alter table 旧表名 rename to 新表名;
三、表中操作:
1、增加数据(依次):
insert into 表名 values (数据,......);
插入部分数据:
insert into 表名(字段名1,字段名2)values (数据1,数据2);
2、修改数据:
update 表名 set 字段名= 值,字段名=值 where 条件
3、删除数据:
delete from 表名 where 条件;
全表删除方式:
①、delete from 表名;(只删数据,不删表的约束)
②、truncate table 表名;(数据和约束彻底删除)
4、查询数据:
①、查询所有列:
select * from 表名;
②、查询指定列:
select 字段名,字段名,...from 表名;
③、查询时去除重复记录:
select distinct 字段名 from 表名;
④、条件查询:
select * from 表名 where 条件;
(null:表示没有值;is null
’‘:是空字符串,有值,但是值是空字符串; =’‘)
(模糊条件like: %:表示任意个字符;_ : 表示一个字符)
⑤、聚合查询:(count sum avg max min )
select count(*) from 表名;
⑥、分页查询:
select * from 表名 limit 起始行,查询几行;
⑦、查询排序:(asc 顺序,desc 倒序)
select * from 表名 order by 字段名 asc/desc;
⑧、分组查询并筛选:(按字段名分组并统计个数,然后按条件筛选)
select 字段名,count (*) from 表名 group by 字段名 having 条件;
5、连接查询(多表查询):
①、交叉连接(笛卡尔积)
select * from 表1 [cross] join 表2 ;
②、内连接:
select * from 表1 [inner] join 表2 on 表1.字段1=表2.字段2 where 条件 ;
③、左【外】连接:
select * from 表1 left [outer] join 表2 on 条件 ;
④、右【外】连接:
select * from 表1 right [outer] join 表2 on 条件 ;
6、子查询:(此条件通常关联到另外的一个表中)
select 字段名1 from 表名 where 字段名2(或者字段名1)in (条件);
7、联合查询(union):
select 语句1
union
select 语句2 ;
数据约束
1、创建表时数据默认值的设置:(默认值可以为NULL)
create table 表名(
字段名 字段类型 default 默认值 ,
字段名 字段类型
)
2、数据的非空限制:
create table 表名(
字段名 字段类型 not null,
字段名 字段类型
)
3、数据的唯一性的设置:(可以插入多个NULL,不是重复,是都没有值)
create table 表名(
字段名 字段类型 unique,
字段名 字段类型
)
4、主键:(非空+唯一)
create table 表名(
字段名 字段类型 primary key ,
字段名 字段类型,
字段名 字段类型
)
5、自增长(必须是int类型,而且是主键)
create table 表名(
字段名 字段类型 primary key auto_increment,
字段名 字段类型,
字段名 字段类型
)
6、外键约束(减少冗余):(正常字段1与字段5名一样,如一个为部门表,一个为员工表)
create table 表名1(
字段名1 字段类型1 primary key ,
字段名2 字段类型2
)
create table 表名2(
字段名3 字段类型3 primary key ,
字段名4 字段类型4,
字段名5 字段类型5
constraint 外键名字(如 fk_表1_表2)foreign key (字段名5) references 表1(字段1)
)
注:
添加数据时先添加主表;删除及修改数据时先删除、修改副表