- 连接mysql:
mysql -h localhost -P 3306 -u root -p
- 查看所有数据库:
show databases
// 默认情况下有4个数据库
information_schema // 保存了mysql的元数据信息 表名,字段名等
mysql // 保存了mysql的用户信息,权限信息等
performance_schema // 保存了mysql运行时的日志信息
test // 测试数据库 ( 可以自己折腾的数据库 )
- 新建数据库:
create database database1
- 删除数据库:
drop database database1
- 使用数据库:
use database1
- 查看当前使用的数据库:
select database()
- 查看所有数据表:
show tables
- 新建数据表:
-- create table 表名(字段1 数据类型(数据长度) 默认值 约束条件 字段备注,字段2,字段3...) 表属性
create table table1(
id int not null primary key auto_increment comment '这个是id,主键,自增长' ,
name varchar(64) comment '这个是备注' ,
username varchar(64) unique comment '这个是用户名,唯一' ,
status tinyint(1) not null default 1 comment '这个是状态,非空',
scope int comment '这个是备注',
) comment '这个是表注释';
- 查看表结果:
desc table1
- 删除数据表:
drop table table1
- 添加一条记录:
-- insert into 表名values(值1,值2...)
insert into table1 values(001,'张三','zhangsan',0,90);
-- insert into 表名 (字段1,字段2...) values(值1,值2...)
insert into table1(id,name,username,status,scope) values(002,'李四','lisi',0,70);
-- insert into 表名 (字段2,字段3...) values(值1,值3...)
insert into table1(username,status,scope) values(003,'wangwu',1,50);
- 添加多条记录:
-- insert into 表名 (字段1,字段2...) values(值1,值2...),(值1,值2...)
insert into table1(id,name,username,status,scope)
values
(001,'张三','zhangsan',0,90),
(002,'李四','lisi',0,70),
(003,'王五','wangwu',1,50),
(004,'张三','zhangsan2',0,82),
(005,'李四','lisi2',0,77),
(006,'王五','wangwu2',1,53);
- 修改数据:
-- update 表名 set 字段1 = 值1,字段2 = 值2 条件;
update table1 set status = 0 where id = 001;
- 删除数据
-- delete from 表名 条件
delete from table1 where id = 003;
- 查询数据
-- select 字段1,字段2 from 表名
select id,username from table1;
-- select 字段1 as 别名,字段2 as 别名 from 表名
select id as a,username as b from table1;
-- select * from 表名
select * from table1;
-- select * from 表名 条件
select * from table1 where id = 001;
-- select * from 表名 条件 分页
select * from table1 limit 1;
-- select * from 表名 排序(asc正序,desc倒序) 分页
select * from table1 order by id desc limit 1;
-- 查询某个字段并去重:select distinct 字段 from 表名
select distinct name from table1 ;
- where 条件
-- 查询 id = 1 的数据
select * from table1 where id = 1;
-- 查询 id > 1 的数据
select * from table1 where id > 1;
-- 查询 id < 1 的数据
select * from table1 where id < 1;
-- 查询 id > 1 并且 id < 10 的数据
select * from table1 where id > 1 and id < 10;
-- 查询 id > 1 或者 id < 10 的数据
select * from table1 where id > 1 or id < 10;
-- 查询 id = 1 或者 id = 5 或者 id = 10 的数据
select * from table1 where id in (1,5,10);
-- 查询 username= 'zhangsan' 的数据
select * from table1 where username = 'zhangsan';
-- 查询 username 以 'zhang' 开头的数据
select * from table1 where username like 'zhangsan%';
-- 查询 username以 'zhang' 结尾的数据
select * from table1 where username like '%zhangsan';
-- 查询 username包含 'zhang' 的数据
select * from table1 where username like '%zhangsan%';
- 聚合函数
-- 查询总数 select count(*) from 表名
select count(*) from table1; --
-- 求和 select sum(字段名) from 表名
select sum(scope) from table1; --
-- 求平均数 select avg(字段名) from 表名
select avg(scope) from table1; --
-- 求最小值 select min(字段名) from 表名
select min(scope) from table1; --
-- 求最大值 select max(字段名) from 表名
select max(scope) from table1; --
- order by 分组查询
- where 是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数” ( 查询时过滤 )
- having 是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数” ( 查询完成后过滤 )
-- select 字段 from 表名 gropu by 字段
select *,sum(scope) as sum1 from table1 group by name; --
-- select 字段 from 表名 gropu by 字段 having 字段
-- where不能和聚合函数一起使用,所以使用having
select *,sum(scope) as sum1 from table1 group by name having sum1 > 100; --
-- where后面之所以不能使用聚合函数是因为where的执行顺序在聚合函数之前
如 : select *,sum(scope ) from table1 group by table1.name where sum(scope )>100;
-- having既然是对查出来的结果进行过滤,那么就不能对没有查出来的值使用having
如 :select id,name from table1 having scope >90;
- limit 分页查询
-- select * from 表名 条件 分页 条数
select * from table1 limit 1;
-- select * from 表名 条件 分页 页数,条数
select * from table1 limit 1,1;
- alter 修改表结构
-- alert table 表名 操作方式 字段 数据类型 约束条件
alter table table1 add age unique;
-- alert table 表名 操作方式 字段 数据类型 约束条件
alter table table1 update age varchar(11) not null unique;
写作不易,如果这篇文章对你有帮助,阅读之后别忘记点个赞哦!
小白程序员,若有不对的地方欢迎各位大佬指出~
网友评论