当前位置:Gxlcms > 数据库问题 > MySQL

MySQL

时间:2021-07-01 10:21:17 帮助过:4人阅读

+约束,不能加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   

人气教程排行