一、删除表数据
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;
十一、总结
以上是我对数据库常用命令的总结,坚持原创