常用
1.创建数据库
create database dbname charset=utf8;
2.显示所有的数据库
show databases;
3.选择要使用的数据库
use dbname;
4.删除一个数据库
drop database dbname;
5.显示当前数据库中所有的表
show tables;
6.创建表
create table students(
id int auto_increment primary key not null,
name varchar(10) not null,
gender bit default 1,
birthday datetime,
isdelete bit default 0);
对于MySQL来说默认的搜索引擎为InnoDB,字符编码方式默认为数据库的字符编码
7.查看表结构
desc tablename;
8.修改表结构
alter table tablename add/change/drop 字段名 类型;
9.删除表
drop table tablename;
10.重命名表
rename table 原表名 to 新表名;
11.显示如何创建表的语句
show create table tablename;
插入数据
1.全列插入
insert into tablename values(...);
2.缺省加入
insert into tablename (字段1,字段2,字段3) values(值1,值2,值3);
3.同时插入多条数据
insert into tablename values(...),(...)....;//全列
insert into tablename (字段1,字段2,字段3) values (值1,值2,值3)
,(值1,值2,值3)... //缺省
修改(更新)数据
update tablename 某字段=某值,... where 条件;
删除数据
delete from students where id=5;
查询数据
1.基本查询
select * from tablename where id > 5;//查询id大于5的所有信息
select id,name from tablename where id > 5;//查询id大于5,并将其id和name进行展示
2.distinct
select distinct gender from students;//将得到的结果集去掉重复的
select distinct gender,id from students;//组合不重复即可
3.模糊查询
select * from students where name like "黄%";//查询姓黄的学生的所有信息
like关键字【%表示一个或多个任意字符,_表示一个任意字符】
4.范围查询
select * from students where id in (1,3,8);//不连续
select * from students where id between 3 and 8;//连续
5.判空
select * from students where birthday is null;//birthday字段为空的所有信息,is not null不为空
6.聚合函数
count():表示计算总行数,括号内写字段名,即列名,但是对于同一表来说结果相同,所有一般使用代替,count()。
max(列):求此列的最大值。
min(列):求此列的最小值。
sum(列):求此列的和。
avg(列):求此列的平均值。
select count(*) from students where isdelete=0;
7.分组
select gender,count(*) from students group by gender;//将表中的student以gender分组并统计数量。
8.筛选
select gender,count(*) as rs from students group by gender having rs>2;//将结果集中的count()记为rs,并筛选出rs大于2的。
having与where:
简言之就是,where与having所筛选的数据集不同,where是对原始集进行筛选,而having是对分组之后的结果集进行筛选。
9.排序
select * from students order by id desc;//以id降序排列展示student的所有信息
默认以升序排列,升序关键字(asc),降序关键字(desc)。
10.分页
select * from students limit start,n;//从第start条数据开始查询n条所有学生的信息
总结
select distinct 列名
from 表名
where 条件
group by 列名 having...
order by 列名
limit start,n;
网友评论