MYSQL基础笔记

MYSQL

mysql是最流行的关系型数据库管理系统,它是由瑞典MYSQL AB公司开发,开源的,目前隶属于Oracle旗下产品;

什么是数据库?

数据库是按照数据结构来组织,存储和管理数据的仓库;

MySQL 的查询流程具体是?or 一条SQL语句在MySQL中如何执行的?

客户端请求 —> 连接器(验证用户身份,给予权限) —> 查询缓存(存在缓存则直接返回,不存在则执行后续操作) —> 分析器(对SQL进行词法分析和语法分析操作) —> 优化器(主要对执行的sql优化选择最优的执行方案方法) —> 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口) —> 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果)

一.数据库操作

创建数据库
create database 数据库名;
删除数据库
drop database 数据库名;
选择数据库
use 数据库名;
删除表
drop table 表名
插入数据
insert into table_name (field1, field2) values (value1,value2);

创建表

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例解析:

  • IF NOT EXISTS当判断的表不存时,我可以执行创建数据库,创建表,增加列,可以执行相应的SQL语句;
  • 如果不想字段为NULL.可以设置字段属性为NOT NULL,在操作时,如果数据输入为空,则会报错;
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1;
  • PRIMARY KEY关键字用于定义列为主键,多个列定义主键,列间以逗号分隔;
  • ENGINE 设置存储引擎, CHARSET 设置编码
MYSQL连接的使用

JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接) :获取两个表中字段匹配关系的记录。

image.png

  • LEFT JOIN(左连接): 获取左表所有记录,即使右表没有对应匹配的记录。

image.png

  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

image.png

MYSQL NULL值处理
  • IS NULL: 当列的值是 NULL,此运算符返回 true。

  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。

    注:不建议使用,在建表时给定默认值

SELECT * FROM table_name WHERE column IS NULL;
SELECT * FROM table_name WHERE column IS NOT NULL;
select  ifnull(columnName2,0) from tableName;
MYSQL 事务处理

主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现

  • BEGIN 开始一个事务
  • ROLLBACK 事务回滚
  • COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:

  • SET AUTOCOMMIT=0 禁止自动提交
  • SET AUTOCOMMIT=1 开启自动提交
MYSQL ALTER命令

当我们需要修改数据库表名或者修改数据表字段时,使用ALTER

删除表中的字段
alter table table_name drop column1;
添加表字段
alter table table_name add column2 INT;
修改字段类型及名称
alter table table_name modify column2 char(20);
修改字段默认值
alter table table_name alter column3 set DEFAULT 0;
删除字段的默认值
alter table table_name alter column3 drop DEFAULT;
修改表名
alter table table_name RENAME TO table_new
SHOW的用法
查看字段默认值  查看表格的结构
show columns from 表名
显示表格详细信息
show full columns from 表名
查看指定数据库下面指定表格的结构
show columns from tableName from dbName(数据库) 
查询数据表类型
show table status LIKE '表名';
MYSQL索引
普通索引
    创建索引
    create index indexName ON table_name(column_name)
    修改表结构(添加索引)
    alter table tableName ADD index indexName(columnName)
    删除索引
    drop index indexName on table_name
    查看索引
    show index from table_name

创建表时直接指定

CREATE TABLE mytable(  
ID INT NOT NULL,   
username VARCHAR(16) NOT NULL,  
INDEX [indexName] (username(length))  
);  

2.存储引擎

一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能 。

-- 查看支持的存储引擎
SHOW ENGINES
-- 查看具体某一个表所使用的存储引擎
show create table tablename
-- 查看某个数据库中的某一个表所使用的存储引擎
show table status like 'tablename'
show table status from database where name="tablename"

常见的存储引擎就 InnoDB、MyISAM、Memory、NDB。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值