前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql数据库常用命令总结

Mysql数据库常用命令总结

作者头像
jiankang666
发布2022-05-12 20:38:40
5080
发布2022-05-12 20:38:40
举报
文章被收录于专栏:java基础笔记java基础笔记

一、删除表数据

1、用truncate,它会重新计算自增,重新从1开始,对事务无影响,不能恢复。 一般上线前使用,清空表格。

代码语言:javascript
复制
truncate table table_name

2、用delete,对事务会影响,使用后删除的数据能恢复。自增不是从1开始。

代码语言:javascript
复制
delete from me

二、数据库表去重复手段

1、用distinct

代码语言:javascript
复制
 select distinct email from student;

2、用group by分组读取

代码语言:javascript
复制
select email from student group by email

三、查询语句

1、查询关键字顺序

代码语言:javascript
复制
where
group by
having
order by
limit

2、范围查询

代码语言:javascript
复制
select * from subject where SubjectNo is not null and SubjectNo between  and ;

3、模糊查询

(1)使用like,%匹配任意个,_匹配一个字符。

代码语言:javascript
复制
select * from subject where SubjectName like '%sfs%'

4、多表连接方式

代码语言:javascript
复制
inner join #条件满足的显示
left join  #以左为基准,右边没有的为空
right join #与左连接相反
full join  #左右连接,左边没有显示空,右边没有显示空,显示所有数据

5、子查询

子查询的功能也可以通过连接查询完成,但是子查询使得 MySQL 代码更容易阅读和编写。

把一个查询语句当做一个或者一系列数据在另一个语句的使用。

代码语言:javascript
复制
select * from result where StudentResult in(select SubjectNo+ from result);

6、不等于查询

代码语言:javascript
复制
select * from result where StudentNo <> ;

7、正则查询

代码语言:javascript
复制
select * from result where StudentNo REGEXP '16$';

8、查询中having与where区别

(1)having 是对分组后的数据进行条件查询;对组筛选;

(2)where 是直接排序,在分组之前;

9、查询数据表类型

代码语言:javascript
复制
show table status like 'test';

10、查看mysql的元数据

代码语言:javascript
复制
select version()  #看版本
select database() #看数据库名
select status     #看服务器状态
select variables  #看服务器配置变量

11、查看表结构

代码语言:javascript
复制
show create table aa(表名));

12、查看表格详情

代码语言:javascript
复制
desc result

四、对一张表的设计进行操作

1、修改表字段类型

代码语言:javascript
复制
 alter table student modify StudentNo varchar() primary key;

2、增加一个字段

代码语言:javascript
复制
 alter table student add column pwd varchar();

3、增加一个字段到某个字段之后

代码语言:javascript
复制
alter table test add m int after c;

4、修改某个字段名

代码语言:javascript
复制
 alter table student change pwd Pwd varchar();

5、删除某个字段

代码语言:javascript
复制
 alter table student drop column aaa;

6、对某个字段更改且设置默认值

代码语言:javascript
复制
 alter table test modify iii bigint not null default ;

7、对表的自增字段设置初始值

代码语言:javascript
复制
alter table cc auto_increment = ;

8、修改表名

代码语言:javascript
复制
alter table test rename to Test1;

9、创建表设置id自增

代码语言:javascript
复制
id INT UNSIGNED NOT NULL AUTO_INCREMENT,

五、事务

1、改变自动提交

代码语言:javascript
复制
set autocommit=0; #禁止自动提交

2、事务处理方法

保证事务的原子性,一致性,隔离性,持久性。

(1)begin:开始一个事务

(2)rollback:事务回滚

(3)commit:事务提交

六、索引

1、对表增加index索引

index 可以换primary key 主键,unique 唯一索引,full text 全文索引.例如:但是主键索引必须是唯一性的。

(1)第一种

代码语言:javascript
复制
alter table result add index indexname(StudentNo);

(2)第二种

代码语言:javascript
复制
create index idaaa on aa(id);

2、增加主键索引

(1)有索引名

代码语言:javascript
复制
alter table result add primary key indexname(StudentNo);

(2)无索引名

代码语言:javascript
复制
 alter table cc add primary key(id);

3、创建表时添加索引

代码语言:javascript
复制
create table aa(
    -> id int null,
    -> username varchar() not null,
    -> index idfirst(id));

4、删除索引

alter命令删除索引,删除主键时只需指定PRIMARY KEY,但在删除索引时,你必须知道索引名。

(1)第一种

代码语言:javascript
复制
drop index SubjectNo(索引名字)) on result(表名);

(2)第二种

代码语言:javascript
复制
alter table cc drop index indexa(索引名);

5、显示某表索引

代码语言:javascript
复制
show index from result;

6、全文索引

全文索引只在varchar、char、text上添加,表的类型必须是myisam类型的。

(1)、全文索引表创建

代码语言:javascript
复制
create table aa{
    fulltext()
}engine=myisam 

(2)、与innodb类型的表的区别

myisam类型支持全文索引,不支持事务。单表存贮的数据结构不同,允许单表最多存4G(单表对应一个文件)

innodb类型不能用全文索引,支持事务,允许最大存储4t。

七、删除表中重复数据

1、通过创建新表

(1)创建一个tmp表

代码语言:javascript
复制
create table tmp select StudentNo,SubjectNo,ExamDate,StudentResult from result group by StudentNo;

(2)删除原来的表

代码语言:javascript
复制
drop table result;

(3)把tmp表名改为原来名字

代码语言:javascript
复制
alter table tmp rename to result;

2、复制表

输入下面命令,然后把展示的建表语句复制下来修改一下创建就好了。

代码语言:javascript
复制
show create table student; 

八、数据库转储

1、导入sql数据库

(1)在mysql命令行输入:

代码语言:javascript
复制
create database abc;
use abc;
set names utf8;
source D:/test.sql;

(2)在命令行输入,这个aaa数据库必须是已经创建的。

代码语言:javascript
复制
mysql -u root -p aaa<D:/aaamyresult.sql

2、导出数据库到本地

注意:在命令行输入的语句不要在后面加分号,会报错

代码语言:javascript
复制
mysqldump -uroot -p abc>D:/aaamyresult.sql

3、对txt文件操作

(1)将txt文件中的数据导入到数据库表中

代码语言:javascript
复制
load data local infile 'D:/aa.txt' into table student;

(2)把一张表导出到txt文件中

代码语言:javascript
复制
select * from aa into outfile D:/aaa.txt';

九、触发器

1、语法:

代码语言:javascript
复制
create trigger trigger1
trigger_time(after or before)) trigger_even(事件)
on tablename for each row 操作语句

2、eg:在插入grade表之前插入一条result数据

代码语言:javascript
复制
create trigger tri_grade_i before insert on grade for each row insert into result values(,,'1000-11-11',);

3、eg:在插入grade表之前拿到插入grade的gradeid插入到result表中

代码语言:javascript
复制
 create trigger tri_grade_i before insert on grade for each row
 insert into result values(new.GradeID,,'1000-11-11',);

4、删除触发器:

代码语言:javascript
复制
drop trigger tri_grade_i;

十、创建数据库

1、在命令行创建数据库

代码语言:javascript
复制
mysqladmin -u root -p create mysql

2、在mysql>下创建

代码语言:javascript
复制
create database mysql

3、本地登录mysql,然后输入登陆密码

代码语言:javascript
复制
mysql -uroot -proot;

十一、总结

以上是我对数据库常用命令的总结,坚持原创

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java基础笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档