熟悉和安装MySQL数据库后,下面介绍数据库的基本操作,以下所有数据库语句均在"mysql>"操作环境中执行。
一、mysql---增删改查
增:
//创建数据库
create database school;
//创建表
create table info (id int not null auto_increment primary key,name e char(10) not null,score decimal(5,2),hobby int(2));
注释: primary key 主键 auto_increment 自增列
//新增表中内容
insert into info (id,name,score,hobby) values (1,'zhangsan',89,1); #注意前后匹配
//增加列
alter table info add column age int(3);
查:
//查看数据库
mysql> show databases;
//查看表结构
mysql> desc info;
//查看数据库中表
mysql> show tables;
//查看表中内容
mysql> select from info;
//查看表中具体条目
select from 表名 where id=2[and name=?] [or name=?];
上述查看条目请参考第一部分mysql的创建部分操作,这里不再赘述,咱们重点看多表查询。
//多表查询 关联表(附表的主键是主表的附键)
select * from info inner join hobby where info.id=hobby.id;
select info.name,score,hobby.hobname from info inner join hobby where info.id=hobo.id=hobby;
select i.name,score,h.hobname from info as i inner join hobby as h where i.id=h.id;
第一张截图是两张关联表,第二张截图是查询演示
改:
//更改表中数据
update info set score=75 where id=6;
删:
//整行删除
delete from info where name='test';
//删除列
alter table info drop column age;
//删除表
drop table info;
//数据库
drop database school;
以下是简单对删除行、列作的演示,其他同理
二、mysql---排序、聚合函数
排序:
select from info where 1=1 order by score ; asc--升序,可不写 #默认升序
select from info where 1=1 order by score desc ; desc--降序
函数:
统计count() ; 可以改为1
select count(*) from info;
平均值avg ()
select avg(score) from info;
三、mysql---索引
简介
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
类型
普通索引:最基本的索引,没有任何限制
唯一索引:与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引:它 是一种特殊的唯一索引,不允许有空值。
全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很 耗时好空间。
组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。创建复合索引时应该将最常用(频 率)作限制条件的列放在最左边,依次递减。
//创建普通索引
create index id_index on info(id);
//创建唯一索引
create unique index id_index on info(id);
//创建主键索引
alter table info add primary key(id);
//创建全文索引
create table infos (descript TEXT,FULLTEXT(descript));
//创建多页索引
create index multi_index on info(name,address);
//查看索引: 上述过程已经显示
show index from info;
show index from info \G; 纵向显示
- unique 1 不是唯一
unique 0 唯一
//删除索引 (主键、全文索引删除命令比较特殊)
drop index id_index on info; #普通/唯一索引
alter table info drop primary key; #主键索引
drop table infos; #全文索引
四、mysql---事务
简介
事务是一组不可被分割执行的SQL语句集合,如果有必要,可以撤销。银行转账是经典的解释事务的例子。用户A给用户B转账500元主要步骤可以概括为如下两步。
第一,账户A账户减去500元;
第二,账户B账户增加500元;
这两步要么成功,要么全不成功,否则都会导致数据不一致。这就可以用到事务来保证,如果是不同银行之间的转账还需要用到分布式事务。
性质
事务的机制通常被概括为“ACID”原则即原子性(A)、稳定性(C)、隔离性(I)和持久性(D)。
原子性:构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。
稳定性:数据库在事务执行前后状态都必须是稳定的。
隔离性:事务之间不会相互影响。
持久性:事务执行成功后必须全部写入磁盘。
事务处理方法
1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交
实例演示
第一张图是未设置事务前的原表,以作比较
下图是具体操作过程
五、mysql---视图
简介
视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。
通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。
作用
一张表或多张表中的数据给不同的权限用户提供访问,安全有效。
//创建视图
create view 视图名称 AS
//select 语句
select from info where score > 80; 查看大于80分的人
//形成视图进行查看
create view score_view as select from info where score >80;
//查看视图
select * from score_view;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。