Mysql数据库常用命令总结

一、删除表数据

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

truncate table table_name

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

delete from me

二、数据库表去重复手段

1、用distinct

 select distinct email from student;

2、用group by分组读取

select email from student group by email

三、查询语句

1、查询关键字顺序

where
group by
having
order by
limit

2、范围查询

select * from subject where SubjectNo is not null and SubjectNo between 6 and 8;

3、模糊查询

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

select * from subject where SubjectName like '%sfs%'

4、多表连接方式

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

5、子查询

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

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

select * from result where StudentResult in(select SubjectNo+50 from result);

6、不等于查询

select * from result where StudentNo <> 1012;

7、正则查询

select * from result where StudentNo REGEXP '16$';

8、查询中having与where区别

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

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

9、查询数据表类型

show table status like 'test';

10、查看mysql的元数据

select version()  #看版本
select database() #看数据库名
select status     #看服务器状态
select variables  #看服务器配置变量

11、查看表结构

show create table aa(表名));

12、查看表格详情

desc result

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

1、修改表字段类型

 alter table student modify StudentNo varchar(33) primary key;

2、增加一个字段

 alter table student add column pwd varchar(50);

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

alter table test add m int after c;

4、修改某个字段名

 alter table student change pwd Pwd varchar(20);

5、删除某个字段

 alter table student drop column aaa;

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

 alter table test modify iii bigint not null default 100;

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

alter table cc auto_increment = 100;

8、修改表名


alter table test rename to Test1;

9、创建表设置id自增

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

五、事务

1、改变自动提交

set autocommit=0; #禁止自动提交

2、事务处理方法

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

(1)begin:开始一个事务

(2)rollback:事务回滚

(3)commit:事务提交

六、索引

1、对表增加index索引

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

(1)第一种

alter table result add index indexname(StudentNo);

(2)第二种

create index idaaa on aa(id);


2、增加主键索引

(1)有索引名

alter table result add primary key indexname(StudentNo);

(2)无索引名

 alter table cc add primary key(id);

3、创建表时添加索引

create table aa(
    -> id int null,
    -> username varchar(15) not null,
    -> index idfirst(id));

4、删除索引

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

(1)第一种

drop index SubjectNo(索引名字)) on result(表名);

(2)第二种

alter table cc drop index indexa(索引名);

5、显示某表索引

show index from result;

6、全文索引

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

(1)、全文索引表创建

create table aa{
    fulltext()
}engine=myisam 

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

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

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

七、删除表中重复数据

1、通过创建新表

(1)创建一个tmp表

create table tmp select StudentNo,SubjectNo,ExamDate,StudentResult from result group by StudentNo;

(2)删除原来的表

drop table result;

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

alter table tmp rename to result;

2、复制表

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

show create table student; 

八、数据库转储

1、导入sql数据库

(1)在mysql命令行输入:

create database abc;
use abc;
set names utf8;
source D:/test.sql;

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

mysql -u root -p aaa<D:/aaamyresult.sql

2、导出数据库到本地

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

mysqldump -uroot -p abc>D:/aaamyresult.sql

3、对txt文件操作

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

load data local infile 'D:/aa.txt' into table student;

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

select * from aa into outfile D:/aaa.txt';

九、触发器

1、语法:

create trigger trigger1
trigger_time(after or before)) trigger_even(事件)
on tablename for each row 操作语句

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

create trigger tri_grade_i before insert on grade for each row insert into result values(9999,1,'1000-11-11',888);

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

 create trigger tri_grade_i before insert on grade for each row
 insert into result values(new.GradeID,1,'1000-11-11',888);

4、删除触发器:

drop trigger tri_grade_i;

十、创建数据库

1、在命令行创建数据库

mysqladmin -u root -p create mysql

2、在mysql>下创建

create database mysql

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

mysql -uroot -proot;

一、总结

以上是我对数据库常用命令的总结,坚持原创,更多精彩欢迎关注:

猜你喜欢

转载自blog.csdn.net/jiankang66/article/details/90695349