一、删除表数据
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;
十一、总结
以上是我对数据库常用命令的总结,坚持原创,更多精彩欢迎关注: