MySql数据库学习

SQL语句入门

SQL(Structured Query Language),结构化查询语句,语法类似英语口语, 是一门用于操作数据库的通用命令语言;SQL语句一般分为以下几类:

  1. DDL语句(数据定义语句)
  2. DML语句(数据操作语句)
  3. DCL语句(数据控制语句)
  4. 内置函数

DDL语句

数据定义语句,一般包含对于数据库,表,视图,索引,过程,函数,触发器等进行结构操作的语句,比如:创建表,删除表,修改表结构都称之为DDL;一般包含这些命令:create、drop、alter、change、modify、add等。

创建一张表:

create table student(
    sno int,
    sname varchar(10),
    age int,
    sex char(2)
);

向表中新增列(向表student中新增一个birth列,类型为date)

alter table student add birth date;

修改表名称

rename table student to tb_stu;
alter table tb_stu rename to stu;

DML语句

数据操作语句,一般包含用于对表中的数据操作的命令,比如:新增数据,删除数据,修改数据,查询数据;包含的命令有: insert、delete、update、select等。
添加数据到表中
insert into 表名称(列名…) values(值…)
向所有列插入值

insert into emp values(1001,'易大师',3500.06,'2018-10-01');

修改表数据
update 表名称 set 列名1=新值1,列名2,=新值2… where 条件

update emp set sal=3501.06 where eno=1001;

删除记录
delete from 表名称 where 条件

delete from emp where eno=1003;

DCL语句

数据控制语句,一般由数据库管理员(DBA),使用这些命令,操作数据库相关的权限,比如授权,解除权限,常见命令有: grant、revoke等。

内置函数

函数类似java中方法,封装了某些特定功能的代码片段;数据库中的函数通常需要传入相应参数(也可以不用传递),但是函数一般都有返回值;在mysql中函数分为以下几类:

  1. 字符串函数
  2. 数学函数
  3. 日期函数
  4. 系统函数

索引

当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
索引类似字典的目录,可通过索引快速查询到目标数据。

索引的优点:
1.大大加快数据的检索速度;
2.创建唯一性索引,保证数据库表中每一行数据的唯一性;
3.加速表和表之间的连接;
4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
索引的缺点:
1.占用内存空间;
2.针对大表创建耗时较长;
3.当数据表中进行更新(insert,delete,update)操作时,索引也需要更新(耗时);

视图

视图(view)是一种逻辑上的概念,一般认为是一张虚拟的表,这张表不在数据库服务器中占据任何的存储空间,数据库中只存储视图的定义,在使用视图的时候才会根据定义,从物理表中显示需要的数据,并且通过对于视图的操作可以影响物理表的数据。

视图看上去非常像数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表(base table)数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。

视图的作用

  1. 简化复杂的sql操作,编写sql查询后重用便捷而无需关注查询细节
  2. 对重构数据库提供逻辑独立
  3. 保护数据,仅部分显示数据保障机密数据安全
  4. 让数据展示更加精简,清晰

视图创建的注意事项

  1. 视图名与表名一样必须唯一
  2. 创建视图的必须有足够权限,权限由数据库管理员授予
  3. 视图可以嵌套,即可以从其他视图中检索数据创建新的视图不能在视图上建立索引,也不能关联触发器
  4. 视图可以和物理表共同使用

事务

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足ACID(原子性、一致性、隔离性和持久性)原则。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在电商系统中,产生一个订单时,我们既需要在订单表中新增一条记录,同时也要修改商品表中的库存量,并且需要保证这两次更新操作要么同时成功,要么同时失败,这样,这些数据库操作语句集就构成一个事务!MySQL数据库只有InnoDB引擎(MyISAM不支持事务)才支持事务。

事务特征:原子性、一致性、隔离性、持久性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值