MySQL学习笔记(完整版) -----小白通用

1 篇文章 0 订阅
1 篇文章 0 订阅
这篇博客详细介绍了MySQL数据库的创建、管理与操作,包括创建数据库和表、DDL语言、数据类型、存储引擎的对比、更新与删除数据,以及事务处理的基本概念。重点讲解了如何使用SQL命令进行数据操作,并探讨了MyISAM与InnoDB的区别。
摘要由CSDN通过智能技术生成

MySQL数据库
创建MySQL数据库和表

2.1命令行创建数据库和表
1、创建数据库
create database MySchool;
2、查看所有数据库
show databases;
3、创建表
–use MySchool;
create table subject
-> (subjectNo int primary key,
-> subjctjectName varchar(50),
-> ClassHour int,
-> GradeID int );
4、查看当前数据库所有表
show tables;
–查看创建表结构
show create table subject;
show create table subject \G;
(PS:\g 和;效果一样,\G 格式化输出)
5、删除数据库
drop databases
数据类型:
varchar:变长
char: 定长
2.2DDL语言介绍:
结构化查询语句分类
名称 解释 命令
DDL 定义和管理数据对象,如数据库,数据表等 create drop alter
(数据定义语言)
DML
(数据操作语言) 用于操作数据库对象中所包含的数据 insert update delete
DQL
(数据查询语言) 用于查询数据库数据 select
DCL
(数据控制语言) 用来管理数据库的语言,包括管理权限及数据更改 grant commit rollback

创建数据库表语句
属于DDL语言的一种
语法:
create table[if not exists] 表名(
字段1 列类型[属性] [索引][注释],

   );

反引号用于区别MySQL保留字与普通字符而引入的
2.3 表列类型的设置
–规定该列存放的数据类型
–分为:
-数值类型
-字符创类型
-日期和时间型数值类型
NULL值
-理解为没有值或未知值
-不要用null进行算术运算,结果仍为null
-MySQL中,0或null都意味着假,为真

UNSIGNED
     --无符号的
     --声明该数据列不允许负数
ZEROFILL
     --0填充的
	 --不足位数用0来填充,如int(3), 5则为005
AUTO_INVREMENT
     --自动增长的,每添加一条数据,自动在上一个记录数上加1
	 --通常用于设置主键,且为整数类型
	 --可定义起始值和步长

NULL 和NOT NULL
–默认值为NULL,即没有插入该列的数值
–如果设置为NOT NULL,则该列必须有值
DEFAULT
–默认的
–用于设置默认值
–例如:性别字段,默认为男,否则为女;若无指定该列的值,则默认为男的值
create table Student_01
(StudentNo int(4) NOT null comment’‘学号’,
LoginPWD varchar(20) comment’学生姓名’,
Sex tinyint comment’性别’,
GradeId int comment’年级编号’);
MySQL存储引擎:
查看引擎:show engines\G;
MySQL数据表的类型:
MyISAM 、InnoDB 、HEAP 、 BOB 、CSV 等
常见的MyISAM 与InnoDB类型
名称 MyISAM InnoDB
事务处理 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约2倍

经验 : 使用场合
使用MyISAM:节约空间及响应速度
使用InnoDB:安全性,事务处理及多用户操作数据表
MySQL数据表以文件方式存放在磁盘中
包括表文件、数据文件以及数据库的选项文件
位置:MySQL 安装目录\data下存放数据表。目录名对应数据库名,该目录下文件名对应数据表;
注意:
InnoDB类型数据表只有一个*.frm文件,以及上一级目录的 idata1文件

MyISAM类型数据表对应三个文件:
*.frm ----------表结构定义文件
*.MYD ----------数据文件
*.MYI -----------索引文件
可为数据库,数据表、数据列设定不同的字符集;
设定方法:
1、创建时统统命令来设置,如
create table 表名(
#省略一些代码;
) charset = utf-8;
2、如无设定,则根据MySQL数据库配置文件my.ini(Windows系统)中参数设定
如:character set-server = utf-8;
修改表(ALTER TABLE)
修改表名
alter table 旧表名 rename 新表名;
添加字段
alter table 表名 add 字段名 列类型 [属性]
修改字段
alter table 表名 MODIFY 字段名 列类型[属性]
alter table 表名 change 旧字段名 新字段名 列类型[属性]
删除字段
alter table 表名 DROP 字段名
查看表结构: describe 表名;
删除数据表:
drop table [if not exists ] 表名;
if exists 为可选,判断是否存在该数据表
如果杀出不存在的数据表会抛出错误;
什么是DBMS?
如何创建数据表?
如何修改和删除数据表?
第三章: MySQL数据库管理
DML语句之Update
UPDATE 命令
语法:
UPDATE 表名 set column_name = value[,column_name2 = value2,…] [where condition];
简单理解为:有条件地从表中筛选数据
where中的运算符
运算符 含义 范例 结果
= 等于 5=6 false
<>或者!= 不等于 5!=6 true
> 大于 5>6 false
< 小于 5<6 true
>= 大于等于 5>=6 false
<= 小于等于 5<=6 true
BETWEEN 在某个范围之间 between 5 and 10 -
AND 并且 5>1and1>2 false
OR 或 5>10or1>2 true

注意:
column_name 为要更改的数据列
value 为修改后的数据,可以为变量、具体值、表达式或潜逃的SELECT结果
condition 为筛选条件,如不指定,则修改该表的所有列数据;
更新查询出来的数据设置给某列
update subject set ClassHour =
-> (select classhour from
-> (select classhour from subject where subjectno=4)as ch )
-> where subjectno = 1; #ch 临时表

MyISAM:
create table 表名(
#省略一些代码;
)ENGIN = MyISAM;
InnoDB:
create table 表名(
#省略一些代码;
)ENGIN = InnoDB;
MySQL注释: ## 单行注释
/* */多行注释

3.2DML语句之insert
会使用MySQL语句添加数据
会使用MySQL语句修改数据
会使用MySQL语句删除数据
数据库意义:
数据存储
数据管理
管理数据库的方法:
通过SQLyog等管理工具管理数据库数据
通过DML语句管理数据库工具
DML(数据操作语言)
用于操作数据库对象中所包含的数据
包括:
insert(数据添加语句)
update(更新数据语句)
delete(删除数据语句)
insert命令;
语法: 4中方式;
insert into 表名 [(字段1,字段2,字段3,…)] values(‘值1’ ,‘值2’,…);
注意:
字段或值之间用英文逗号隔开;
"字段1,字段2,"该部分可以省略,但添加的值必须与表结构列顺序相对应,且数量一致
可同时插入多条数据,values后用英文逗号隔开
insert into Greade (GradeId,GradeName) values (‘1’ ,‘大一’);
insert into Grade (GradeName)
select GradeName from Grade;
(表之间的复制)

base 查询: select * from Grade;
DML语句之delete
delete命令
语法:
delete from 表名 [where condition ];
注意:
condition 为筛选条件,如不指定则删除该表所有列数据;
TRUNCata命令
用于完全清空表数据,但表结构、索引、约束等不变
语法: truncate [table] table_name;
注意:
区别于delete命令
相同:都能删除数据、不删除表结构、但truncate速度更快
不同:使用truncate table 重新设置auto_increment计数器
使用truncate table不会对事务有影响;
第四章
4.1事务及其隔离级别介绍
掌握MySQL的事务处理方法
理解MySQL的ACID原则
料季节MySQL事务处理的应用程序
事务:事务就是将一组SQL语句放在同一批次去执行
如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
gre

	 注意:MySQL事务处理只支持InnoDB和Berkeley DB数据表类型
	 ======================================================分割线===============================================
	 事务:transaction  
	 原子性(Atomic):执行事务,要不都成功,要么都不成功
	 一致性(Consist):执行后,保持数据的一致
	 隔离性(Isolated):事务之间相互独立,互不影响
	 持久性(Durable):数据永久存储在数据库中。
	 事务隔离级别:
	 读取未提交(read -uncommitted)
	 读取提交(read-committed)
	 重复读取(repeatable-read)
	 串行化(serializable) --->加锁  竞争锁
	 脏读:
	 幻读:
	 事务操作流程:  
	 SET  AUTOcommit
	    查看事务默认提交方式:select @@autocommit;
	    使用SET语句来改变自动提交模式
		set autocommit = 0; #关闭自动提交
		set autocommit = 1; #开启自动提交
注意:  MySQL中默认是自动提交
        使用事务时应先关闭自动提交
  start transaction  
          开始一个事务,标记事务的起点
  commit  
          提交 一个事务给数据库
  rollback   
          将事务回滚,数据回到本次事务的初始状态
  set autocommit = 1;
    还原MySQL数据库自动提交
4.4事务隔离级别详解
 余下内容 看下一篇文章。。。。。。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值