mysql数据库定义:
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
mysql命令大全
cmd下命令:
1、cmd启动、停止MySQL命令
net start mysql==============net stop mysql
2、cmd登录数据库命令
mysql -uroot -proot
3、使用命令展开所有已存在数据库
show databases;
4、新建数据库,删除数据库
create database wzx; =====drop database wzx;
5、使用数据库
use wzx;
6、展开已存在表
show tables;
7、新建表,删除表
create table wzx(sid int(20) primary key,sname varchar(20) );
drop table wzx;
8、获取表结构
desc wzx;
9、增加表记录
insert into wzx values(1,'wzx');
10、查看表全部内容
select*from wzx;
11、修改列类型
alter table wzx modify sid varchar(20);
12、增加列
alter table wzx add ssex char(2);
13、删除列
alter table wzx drop ssex;
14、修改列名
alter table wzx change age sage int(20);
15、修改表名
alter table wzx rename sore;
使用MySQL编辑器:
1、删除表
delete from wzx;
2、修改字段
update wzx set sage=23,sname='wzx';
3、根据条件查询指定的数据
select*from wzx where sid=18 and sex='女';
4、查询数据,返回指定的列
select sid=2,sname='王紫潇' from wzx;
5、给指定返回列取别名(小名)
select sid,sname,sage,ssex from wzx;
select sid as a,sname as b,sage as c,ssex as d from wzx;
6、在条件中使用比较运算符
select*from wzx where sage!=18;
7、多条件的查询(and or not)
select*from wzx where sage<=18 and ssex='女';
select*from wzx where sage<21 or ssex='女';
select*from wzx where sage not in(18,21,25);
8、对空值的查询(is null),对应列是否null查询
select*from wzx where sage is not null;
select*from wzx where sage is null;
9、查询AB之间的值,包含AB的值between A and B
select*from wzx where sage between 18 and 25;
10、in(筛选条件符合的结果)
select*from wzx where sage in(18,21,25);
11、处理重复值(distinct),排除重复展示,只展示一次
select distinct age from wzx;
12、查询返回限定行数(limit)
limit 10; //取查询数据的前10位======select*from wzx limit 10;
limit 10,10; //从查询数据的第11位开始,自后取10位数据展示,不满足
//10位也不会报错========select*from wzx limit 10,10;
13、通过查询复制表
create table sore select*from wzx;
14、只复制结构
create table sore select*from wzx where 1=2;
15、分组group by(根据所提供类型分组整合)
select ssex,count(*)from wzx group by sex;
//分组使用,group by出现在select后,即select group by;
//若为group by select 后面就不能出现*
16、order by 字段名:字段名为我们需要排序的字段=======排序
select * from wzx order by sage asc; //升序,默认
select * from wzx order by sage desc; //降序
17、常用聚合函数(聚合)
1、count:统计数量
select count(sage) from wzx;
2、sum:求和
select sum(sage) from wzx;
3、max:最大值
select max(sage) from wzx;
4、min:最小值
select min(sage) from wzx;
5、avg:平均数
select avg(sage) from wzx;
18、多表连接
select*from wzx;
select*from sore;
1、交叉连接(没有任何条件,只需要将多张表的所有数据排列显示出来):
select*from wzx,sore;
2、内连接(多张表之间,存在数据的关联):
select * from wzx,sore where wzx.sid = sore.sid;
3、两张表:
select* from wzx inner join sore on wzx.sid = sore.sid;
4、三张表:
select*from student s,course c,score sc where s.sid=sc.sid and c.cid=sc.cid;
5、外连接 :左表或右表作为主表的情况下,主表的全部内容都会显示,而另一
张表没有对应的数据则会补null
select * from class c left join stu s on c.cid = s.cid;
select * from class c right join stu s on c.cid = s.cid;
例:
create table class(
cid int primary key auto_increment,
cname varchar(20)
)default charset='utf8';
create table stu(
sid int primary key auto_increment,
sname varchar(20),
cid int
)default charset='utf8';
INSERT INTO class(cname) VALUES("一班");
INSERT INTO class(cname) VALUES("二班");
INSERT INTO class(cname) VALUES("三班");
INSERT INTO class(cname) VALUES("四班");
INSERT INTO stu(sname,cid) VALUES("张三",1);
INSERT INTO stu(sname,cid) VALUES("李四",2);
INSERT INTO stu(sname,cid) VALUES("王五",2);
INSERT INTO stu(sname,cid) VALUES("杨六",3);
INSERT INTO stu(sname,cid) VALUES("赵七",5);
INSERT INTO stu(sname,cid) VALUES("周八",6);
交叉连接:--没有任何条件,只需要将多张表的所有数据排列显示出来
select * from class,stu;
内连接:select * from class inner join stu on class.cid = stu.cid;
外连接 :
左外连接 left join / left outer join
右外连接 right join / right outer join
外连接 :左表或右表作为主表的情况下,主表的全部内容都会显示,而另一张表没有对应的数据则会补null
select * from class c left join stu s on c.cid = s.cid;
select * from class c right join stu s on c.cid = s.cid;