MySQL(2)——数据库命令大全

数据库基本操作参考表

目录

数据库基本操作参考表

一、数据库操作

二、表的增删改查

三、表字段的修改

四、表引擎操作

五、*表操作——数据管理语句(DML)

六、***表操作——数据查询语句(DQL)

七、数据库的导入导出

八、复杂联表查询请看下一个链接


一、数据库操作

1.登入数据库:
mysql -u root -p

2.查看数据库
show databases;

3.创建数据库:
create database 库名 default charset=utf8;
例如:
create database bookshop default charset=utf8;

4.使用数据库:
use bookshop;

5.删除数据库:
drop database bookshop;

6.退出登陆:
exit; 或者 quit;

二、表的增删改查

1.查看该库下所有表: 
show tables;

2.创建表:
create table if not exists users(
    id int not null primary key auto_increment,
    name varchar(4) not null,
    age tinyint,
    sex enum('男','女')
)engine=innodb default charset=utf8;
解释:
if not exists 表示是否已存在该表,不存在则创建、存在则不创建;
not null 保证不为空 primary key 主键 auto_increment 自动递增

3.查看某一个表结构
desc users;

4.查看创建表语句
show create table users;

5.删除表:
drop table users;

6.修改表名:
语法:alter table 原表名 rename as 新表名
alter table users rename as u;

三、表字段的修改

1.表添加字段:alter table 表名 add 添加的字段信息

1.1在 users 表中 追加 一个 num 字段
alter table users add num int not null;

1.2在指定字段后面追加字段 在 users 表中 age字段后面 添加一个 email 字段
alter table users add email varchar(50) after age;

1.3在表的最前面添加一个字段
alter table users add phone char(11) first;

2.表删除字段
删除字段 alter table 表名 drop 被删除的字段名
alter table users drop phone;

3.修改字段:alter table 表名 change|modify 被修改的字段信息
change: 可以修改字段名,
modify: 不能修改字段名。

3.1修改表中的 num 字段 类型,使用 modify 不修改表名
alter table users modify num int;

3.2修改表中的 num 字段 为 int并且字段名为 nn
alter table users change num nn int;

4.在常规情况下,auto_increment 默认从1开始继续递增
alter table users auto_increment = 1000;

四、表引擎操作

1.推荐在定义表时,表引擎为 innodb,查看表创建语句。

2.通过查看建表语句获取当前的表引擎:
show create table users;

3.直接查看当前表状态信息:
show table status from bookshop where name = 'users';

4.修改表引擎语句:
alter table users engine = 'myisam';

五、*表操作——数据管理语句(DML)

1.添加数据

1.1标准添加所有字段
insert into stu(id, name, age, sex, classid) values(1, 'zhangsan', 25, '男', '1');

1.2添加部分字段
insert into stu(name, age) value('lisi', 28);

1.3不指定字段
insert into stu value(2, 'zhangsan3', 25, '男', '1');

1.4批量添加
insert into stu values
(null, 'zhangsan3', 25, '男', '1'),
(null, 'zhangsan3', 25, '男', '1'),
(null, 'zhangsan3', 25, '男', '1');

2.修改数据
update stu 
set age = 30, class = '2' 
where id = 1;

3.删除数据
delete from stu
where id = 1;

六、***表操作——数据查询语句(DQL)

语法格式:[]表示该关键字可有可无
select 字段列表|* from 表名
[where 搜索条件]
[group by 分组字段 [having 分组条件]]
[order by 排序字段 排序规则]
[limit 分页参数]

1.全表查询
select *
from users;

2.1 where条件查询
select *
from users
where id = 1;

2.2 where的模糊查询like
%表示多位不确定值
_表示一位不确定值
例如:查找名字中有阳的用户所有信息
select *
from users
where name like '%阳%';

3.聚合函数
3.1计算 users 表中 最大年龄,最小年龄,年龄和及平均年龄
select max(age),min(age),sum(age),avg(age) from users;

3.2还可以直接运算
计算最大年龄差
select max(age) - min(age) as '最大年龄差'
from users;

4. Group by 分组
例如:按性别统计人数
select sex,count(*) 
from users 
group by sex;

group by 注意事项、易错点:
在group by时,如果select选择了多列,那么在group by中也要出现对应列。
这是由数据库的sql_mode设置的ONLY_FULL_GROUP_BY决定的,可以通过命令查看:
SELECT @@sql_mode;
结果:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

5.分组后再利用having过滤(where过滤的是行数据,having过滤的是分组数据)
例如:按性别统计大于25岁的人数
select sex,count(*) 
from users 
group by sex
having age > 25;

6.order by 排序
Asc 升序,默认
desc降序
例如:按性别统计大于25岁的人数,并按照年龄对结果进行排序,从大到小
select sex,count(*) 
from users 
group by sex
having age > 25
order by age desc;

7.limit分页
limit n 提取n条数据,
limit m,n 跳过m跳数据,提取n条数据

7.1查询users表中的数据,只要3条
select * from users limit 3;

7.2跳过前4条数据,再取3条数据
select * from users limit 4,3;

七、数据库的导入导出

1.数据导入
1.1数据‘库’导入
在新的数据库中 导入tlxy数据库的数据
mysql -u root -p ops < ./tlxy.sql

1.2数据‘表’导入
把导出的库tlxy、表tts导入数据库
mysql -u root -p ops < ./tlxy-tts.sql

2.数据导出
2.1数据‘库’导出
不要进入mysql,然后输入以下命令 导出tlxy库中的数据
mysqldump -u root -p tlxy > ~/Desktop/code/tlxy.sql

2.2数据‘表’导出
不要进入mysql,然后输入以下命令 导出tlxy库中指定的tts表的数据
mysqldump -u root -p tlxy tts > ~/Desktop/code/tlxy-tts.sql

八、复杂联表查询请看下一个链接

MySQL(3)——数据库联表查询(易理解)

https://blog.csdn.net/CSU174712009/article/details/113767638

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值