MySQL数据库

数据库备份 mysqldump -uroot -p 数据库名 > ~/bak.sql  

恢复  mysql -uroot -p 数据库名 < ~/bak.sql

 

show databses; 查看所有数据库

select database(); 查看当前使用的数据库

create database test charset = utf8;创建test数据库

use test; 切换test数据库

drop database test;删除test数据库

show tables;查询表

create table student(

id int   auto_increment primary key,

sname varchar(9) not null

);   创建一张表, auto_increment自动增长

desc student;查询表结构

alter table 表名  add|change|drop 列名 类型;

如:

alter table student add Delete bit default 0; 添加一列

show create table student; 查看创建表的语句

rename table student to stu;更改表名

drop table student; 删除表

 

insert into student values();全列插入数据(需要按照结构全部都填写数据)

insert into student() values();缺省插入,只需要插入部分

insert into student values(),(),(); 多行数据插入

 

update 表名 set 列1=值1,....   where 条件;  修改数据

delete from 表名 where 条件; 删除数据

 

查询:

select * from student; 查询表

select distinct age,id from student; 消除age列与id列的重复行 id相同并且age相同才算是重复行,这两个为一行看做一个整体

select * from student where name like '王_'; 模糊查询like _表示任意一个字符 %表示任意字符

in用来在非连续的范围查询,between.....and.....用来在连续的范围查询

select * from student where id in (1,3,5);

select * from student where id between 1 and 5;

null 并不等于 '' null是不占用空间。

 

聚合:

count()统计总行数  max(列)求此列最大值  min(列)求此列最小值  sum(列)求此列的和  avg(列)求此列的平均值

分组:

group by 

select 列1,列2,聚合函数 from student group 列1, 列2;按列1,列2分组,就只可以看到列1与列2的值。

having 对分组后的数据条件筛选等价于where。区别是where对原始集筛选。

排序:

order by 列1 asc|desc ;    asc为升序,desc为升序

分页:

select * from student limit start,count;  start从0开始编号

每条显示m条数据,显示n页  (n-1)*m,m;

select distinct * from student where ....  group by .... having ..... order by .... limit start,count; 查询语句的顺序

连接查询:

inner join 内连接

left join左连接

right join右连接

full join全连接

select s.name, m.mark from student s inner join mark m on s.id = m.studentid;

select student.name, sum(scores.score) from student inner join score join student.id = score.id where gender = 1 group by name;

自关联:

create table areas( id int auto_increment primary key, title varchar(20), pid int, foreign key(pid) references areas(id) );

外键pid 引用自身的id 关联起来。

视图:

视图是从数据库中导出的表,应用程序可以直接从视图中取数据,不会改变数据库

create view v__stu as select * from student; 创建一个v__stu视图,根据select语句的结果集产生的表

 

事务:

四大特性(ACID)

  • 原子性:表示组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有的操作执行成功,整个事务才能提交,事务中任何一个数据操作失败,已经执行的任何操作都必须撤销,让数据库返回到初始状态。
  • 一致性:事务操作成功后,数据库所处的状态和他的业务规则是一致的,即数据不会被破坏。
  • 隔离性:在并发数据操作时,不同的事务拥有各自的数据空间,他们的操作不会对对方产生干扰。
  • 持久性:一旦事务提交成功后,事务中所有的数据操作都必须被持久化到数据库中,及时事务提交之后,数据库马上崩溃,在数据库重启之后能够通过某种及时回复数据。

在添加、更改、删除时,使用事务

begin、commit、rollback

begin后的语句执行,会创建一个内存级的临时表,commit会将临时表修改到数据库中

rollback回到begin之前

 

索引:

提高了查询效率,但是占用物理空间,在更新表时,不仅要更新数据库还需要维护索引文件,开销很大

create index nameIndex on student(name(20));

 

转载于:https://www.cnblogs.com/ForXinYuanStudyPy/p/7733580.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值