码迷,mamicode.com
首页 > 数据库 > 详细

MySQL

时间:2017-04-21 00:21:08      阅读:202      评论:0      收藏:0      [点我收藏+]

标签: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

MySQL

标签:each   family   允许   修改   mysql   恢复   mod   长度   and   

原文地址:http://www.cnblogs.com/songshihao/p/6741300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!