mysql单表操作

1 篇文章 0 订阅
1 篇文章 0 订阅

mysql -u root -p :登录数据库
show databases 显示所有数据仓库

数据库:

create database 数据库名; : 创建数据库
create database 数据库名 character set 编码表名; :创建数据库使用指定编码表
drop database; :删除数据库

select database(); :查询正在使用的数据库
use 数据库名; :使用数据库

数据表结构:

创建数据表:creat table 表名(列名 类型(长度),列名 类型(长度)…);

varchar\char 字符串\字符
保存字节数据:BLOB
保存字符数据:TEXT
boolean–BIT
date 日期类型

show tables; 显示所有表

desc 表名; 查看表结构

查看编码集: show create table 表名

修改编码表:alter database 数据库名称 character set 编码表名;

单表创建约束:

格式: 列名 列类型 约束;

primary key auto_increment 主键 自动增长
unique 唯一约束 该字段不能重复
not null 不能为空

数据表结构的修改:(add、drop、modidy\change)
alter table 表名 增(add)\删(drop)\改(modify)、(change修改列名—旧列名) 列名 类型(长度) 约束;

修改表名:rename table 旧表名 to 新表名

修改表的编码集:alter table 表名 character 编码集;

删除数据表:drop table 表名;

数据表内容的修改:

create read update(修改) delete

插入数据:insert into 表名(列名,列名…..) values(值,值….);
简化版插入一条记录:insert into 表名 values(值,值….);

查询表中所有数据:select * from person;

修改记录:update 表名 set列名=值,列名=值…[where 条件语句];

删除记录:delete from 表名 [where 条件语句]; 表存在 保留主键记录 一条一条的删
truncate table 表名; 删除表并建立新表 (数据无法找回)

查询记录:
select*form 表名 where 列名 in(值1,值2….);
where name=‘张三’;
where name like‘%赵%’ ‘’; 模糊查询
where age is (或不是空的not) null; 查询为空的记录

select distinct age from 表名;查询去重

排序:

升序\降序输出 :select * from 表名 order by score asc\desc;

select * from 表名 order by age asc, score desc; 按年龄升序排,年龄相同按成绩降序排

select name from person order by id asc; 查询表中的姓名 按ID升序排序

起别名 : select age as 年龄,score as 分数 from 表名;as可省略

查询记录条数:
select count(*) from 表名 where age>80;

求和:
select sum(score) from 表名;
select sum(age,score) from 表名;
select sum(ifnull(age,0),score) from 表名;如果年龄为null 设置默认值
select truncate(sum(age,score),2)from 表名; 结果保留两位小数

求平均值:
select avg(age) from 表名; 不包含age为空记录

最大值:最小值:
select max(score),min(score) from 表名;

group by 分组函数:
格式:select 分组的列名,聚合函数(指sum、avg…) from 表名 group by 分组的列名
例:select name,sum(score) from 表名 group by name;求出每个学生的平均分

执行顺序:

from 1
where 2
group by 3
having 4
order by 5
select 6
聚合函数只能出现在345;

having 用于限制聚合函数

求平均分大于80的学生:
    select name,avg(score) from 表名 group by name having avg(score)>80;

求平均分大于80的学生(保留两位小数):
select name ,truncate(avg(score),2)from student group by name having avg (score)>80;

数据库备份和恢复:dos窗口操作
备份:
mysqldump -u 用户名 -p 数据库名 > 磁盘绝对路径

恢复:
    mysql -u 用户名 -p 导入的库名(必须先在mysql中新建库名) < 磁盘绝对路径

权限设置:

语法: grant 权限1,权限2   on 数据库名.表名(*.*表示所有数据库所有表)  to  用户名@'ip地址';

给user10 用户授予 添加、修改、删除、选择、添加、修改、删除 day08库中emp表权限:
grant create,alter,drop,select,insert,update,delete on day08.emp to ‘user10’@’%’;

授予所有权限 访问day08的所有表 给user10这个用户
grant all on day08.* to ‘user10’@’%’;

撤销用户权限:
语法:revoke 权限1, 权限2….. on 数据库.表 from ‘用户名’@’IP地址’;
撤销用户zhangsan对 数据库day07的所有表的查询权限:
revoke select on day07.* frpm zhangsan@’localhost’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值