mysql笔记
sql是结构化查询语言,mysql是关系型数据库,数据库(Database)是按照数据结构来组织、储存和管理数据的建立在计算机存储设备上的仓库。
mysql 数据库的结构
- 表
一个数据库通常包含一个或多个表。每个表由一个名字标识(表名),表是相关的数据项的集合,它由列和行组成。
- 字段
每个表都可以分解为更小的项。这些项被称为“字段”。字段是表里的一列,用于保持每条记录的特定信息。
- 记录
记录,也被称为一行数据,是表里的各行。在关系型数据库的表里,一行数据是指一条完整的记录。
- 主键
主键用于区分表里的每一条数据,它通常是在表创建过程中初始化的。主键的特性确保了每一条记录都是唯一的。
- 索引
为了提高访问数据库的效率,可以对数据库使用索引。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。
- NULL值
NULL 是表示“没有值”的专用术语。值为NULL的字段在表创建过程中会保持为空。
mysql 数据库基本操作
- 库,表的创建和删除
创建表
create databases DatabaseName;
create table 表名(
列名 类型 是否可以为空,
列名 类型 是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8
create table test ( id integer auto_increment, name varchar(5), sex varchar(4), age integer(3), primary key (id) );
删除表
drop table TableName;
删除库
drop database DatabaseName;
- 数据增删改查
查询 select
select <字段名> from <表或视图> where <条件>;
插入 insert into
insert into <表名> (列1,列2...) value(值1,值2...) ;
insert into tb (name,age) value ('test',8);
更新 upadte
update <表名> set <列名> = <新值> where <列名> = <值>;
update tb set sex = '男' where id = 13;
删除 delete
delete from <表名> where <条件>;
delete from tb where id = 13;
表添加列
alter table <表名> add <列名> <类型> ;
alter table tb add city varchar(5);
alter table tb add test varchar(255) default 'test' after sex;
表删除列
alter table <表名> drop column <列名>;
alter table tb drop column city;
- 数据库备份恢复
备份
mysqldump -u UserName -p DBName>Name.sql
,输入密码即可.
mysqldump -u sand -p myTEST>/tmp/test.sql
恢复
mysql -u sand -p
进入mysql,建立要还原的数据库。
source /tmp/test.sql
或者用系统命令
mysql -u sand -p test2 < /tmp/test.sql
-
事务
特性:原子性(A): 事务是最小单位,不可再分
一致性(C): 事务要求所有的DML语句操作的时候,必须保证同时成 功或者同时失败
隔离性(I): 事务A和事务B之间具有隔离性
持久性(D): 是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)
开始事务: start transaction
提交事务: commit
回滚事务: rollback
事务开启的标志:任何一条DML语句(insert、update、delete)执行
事务结束的标志:
- 提交:成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步,
- 回滚:失败的结束,将所有的DML语句操作历史记录全部清空