Mysql数据库常用命令总结

2022-05-12 20:38:40 浏览数 (1)

一、删除表数据

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;

十一、总结

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

0 人点赞