标签:each family 允许 修改 mysql 恢复 mod 长度 and
添加表:
create table student(
id int,
name vachar(30),
age int);
删除表:
drop table student;
重命名表名:
alter table student rename to teacher;
添加字段:
alter table student add column hobby vachar(200);
修改长度
alter table student modify hobby varchar(300);
改变字段名:
alter table student change hobby aihao(400);
添加记录:
insert into student value(1,’kitty’,30);
insert into student(id,name) value(2,’hallen’);
修改记录:
update student set age=40;
update student set age=40 where id=2;
update student set name=’jay’,age=30 where id=2;
删除记录:
delete from student;
delete from student where id=2;
truncate table student;//删除表内的所有内容+约束,不能加where,数据无法恢复。
查询记录:
select * from student;
select id,name from student;
select id as ’编号’,name as ’姓名’ from student as ‘学生’;
select id,name,’选择java’ as ‘方向’ from student;//后面添加一字段
select id,name,(math+english) from student;//count
select distinct age from student;//去重,只找一个
select distinct age from student;
逻辑条件:and or
select * from student where sex=’女’ and age=18;
比较条件:> < >= <= == <>//不等于 between and//包括端值
select * from student where sex=’女’ and english between 60 and 90;
判空条件:is null is not null =’’//空字符串,有值 <>’’
select * from student where address is null or address =’’;
模糊查询:
select * from student where name like ‘宋%’;//%表示任意个未知字符,_表示一个,__表示两个未知字符。
聚合查询:sum() avg() max() min() count()
select sum(english) as ‘英语类和’ from student;
select count(*) from student;//统计的是全表总共有多少个字段值
select count(id) from student;//统计的是多少条记录,但是会排除无值字段。
分页查询:
select * from student limit 0,10;//从第一行开始,查询10行,出现10条记录,也就是第一行角标其实是0,如果不足10条则只显示有的。
对应的页数查询:(页数-1)*每页显示条数,每页显示条数
查询后排序:asc默认正序 desc倒序
select * from student order by id;
select * from student order by id desc;
select * from student order by english desc,math desc; 查询结果按照第一个字段顺序排序,如果有一样的,则按照第二个顺序再排,如果没有第二条排序则按照插入顺序排序。
分组查询并统计:
select sex,count(*) from student group by sex;//只显示最后的组,count每组的人数。
分组查询并筛选:
select sex,count(*) from student group by sex having count(*)>3;//只显示最后的组,count每组的人数。
数据的约束:
设置默认值:不写入值的时候默认是男的。
非空约束:不允许不写入值。
唯一约束:不允许有一样的。
create table student(
id int unique;//独一无二的
name varchar(30) not null,
sex varchar(10) default ‘男’
);
如果同时需要非空和唯一约束,就叫主键了。
create table student(
id int primary key
);//首要的值
自增长约束:
create table student(
id int(4) primary key auto_increment,
name varchar(30);
)
外键约束:解决的是数据冗余。
constraint 外键名 foreing key(副表被约束的字段名) references 主表名(主表被依赖的字段名)
create table employee(
id int,
name varchar(30),
sex varchar(4),
bumen int,
constraint waijian foreing key(bumen) references table1(id)
)//可以看到就是直接都好谢了一行而已。
当插入数据时,不能插入主表内没有的。
删除主表时不能删除副表正在用的一条记录。
外键约束的级联操作:修改主表后,对应的副表的也相应的改变。
constraint 外键名 foreing key(副表被约束的字段名) references 主表名(主表被依赖的字段名) on update cascate//并列加上的
create table employee(
id int,
name varchar(30),
sex varchar(4),
bumen int,
constraint waijian foreing key(bumen) references table1(id) on update cascate
)
数据库设计原则:一张表能分就分。
多表查询:
内连接查询:
select employeeName,bumen from employee,bumenbiao where employee.employeeName=bumenbiao.bumen;
select employeeName,bumen from employee inner join bumenbiao on employee.employeeName=bumenbiao.bumen;
select employeeName,bumen from employee as
标签:each family 允许 修改 mysql 恢复 mod 长度 and
原文地址:http://www.cnblogs.com/songshihao/p/6741300.html