数据库——MYSQL基础知识

  1. 数据库相关术语
    1、数据库系统(Database System)包括:数据库,数据库管理系统(DBMS),应用开发工具,管理员及用户;
    2、SQL语言(Structured Query Langyage):结构化管理语言,包括DDL(数据定义语言),DML(数据操作语言),DQL(数据查询语言),DCL(数据控制语言);
    3、SQL语句语法规范: 常用MySQL的关键字需要大写,库名、表名、字段等使用小写 SQL语句支持折行操作,拆分时不能把完整的单词拆开;数据库名称、表名称、字段名称不要使用MySQL的保留字,如果必须使用,需要使用反引号’'将其括起来;
    在这里插入图片描述
    在这里插入图片描述

  2. 数据库基本操作
    1、创建数据库:CREATE DATABASE或SCHEMA db_name;(数据库名称最好有意义,名称不要包含特殊字符或MySQL关键字)
    2、查看当前服务器下的全部数据库:SHOW DATABASES或SCHEMAS;
    3、检测数据库名称是否存在,如果不存在则进行创建:CREATE DATABASE IF NOT EXISTS db_name;
    4、创建数据库的同时制定编码方式:CREATE DATABASE IF NOT EXISTS test3 DEFAULT CHARACTER SET ‘UTF-8’;
    5、修改指定数据库的编码方式:ALTER DATABASE db_name DEFAULT CHARACTER SET = charset;
    6、打开指定数据库:USE db_name;
    7、得到当前打开的数据库:SELECT DATABASE();
    8、删除指定的数据库:DROP DATABASE db_name;
    9、如果数据库存在则删除:DROP DATABASE IF EXISTS db_name;
    10、查看指定数据库的详细信息:SHOW CREATE DATABASE db_name;
    mysql 注释: #注释 或者 --注释
    11、常用SQL语句:
    查看上一步的警告信息:SHOW WARNINGS;
    通过键盘的上下键,可以快速得到已写的sql语句。
    在这里插入图片描述

  3. 数据表相关操作:
    数据表是数据库最重要的组成部分之一,数据保存在数据表中。数据表由行(row)和列(column)来组成,每个数据表中至少有一列,行可以有零行或多行来组成,表名要求唯一,不要包含特殊字符,最好含义明确;
    创建表:CRETAE TABLE IF NOT EXISTS tbl_name(字段名称 字段类型[完整性约束条件],字段名称 字段类型[完整性约束条件],. . . )ENGINE=存储引擎 CHARSET=编码方式;通过COMMENT来给字段加注释;通过反引号来防止名字和关键字起冲突;

  4. MySQL中的数据类型:
    整数型:
    1、TINYINT占1字节: 有符号值(-127~128)和无符号值(0到255)
    2、SMALLINT占2字节:有符号值(-32768~32767)和无符号值(0到65535)
    3、MEDIUMINT占3字节:有符号值(-8388608~8388607)和无符号值(0到16777215)
    4、INT占4字节:有符号值(-2的31次方到2的31次方减一)和无符号值(0到2的32次方-1)
    5、BIGINT占8字节:有符号值(-2的63次方到2的63次方减一)和无符号值(0到2的64次方-1)
    6、BOOL,BOOLEAN占1字节:等价于TINYINT(1),0位false,其余为true
    在这里插入图片描述
    浮点数:
    1、FLOAT[(M(该浮点数总长度),D(小数点后面的长度))]占4字节、DOUBLE[(M,D)]占8字节、DECIMAL[(M,D)]。精度要求高的话使用decimal类型,decimal默认保留整数部分,不设置数字长度和小数,decimal默认保存的是整数(四舍五入为整数)。
    2、定点数,内部以字符串的形式存储
    在这里插入图片描述
    字符串类型 :
    1、 CHAR类型的检索速度比VARCHAR块,但VARCHAR比CHAR节省空间,保存字符串长度固定式用CHAR,长度不固定或者长度大于255时用VARCHAR;
    2、SELECT CONCAT(’’,‘a’,’’),CONCAT(’’,‘b’,’’) FROM test_str 连接字符串
    3、CHAR默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面的空格;VARCHAR在保存的时候不进行填充,尾部的空格会留下;
    4、TEXT列不能有默认值,检索的时候不存在大小写转换
    在这里插入图片描述
    日期时间类型:
    1、TIME:[D HH:MM:SS] 形式,占3字节 D表示天数0-34,但是,输出的格式不会显示天数,而是会把天数乘24加HH。
    2、DATE:占3字节 YYYY-MM-DD形式,如果YYYY部分写的是77-99,则自动转换成1970-1999,如果写的是00-69,则自动转换成2000-2069,占3字节
    3、DATETIME:YYYY-MM-DD HH:mm:DD形式,占8字节
    4、TIMESTAMP:占3字节,插入CURRENT_TIMESTAMP或NULL或什么也不写,都会得到当前日期和时间
    5、查询当前时间 可以是
    SELECT NOW();
    SELECT CURTIME();
    SELECT CURRENT_TIME;
    SELECT CURTIME_TIME()
    在这里插入图片描述

  5. 查看当前数据库下已有数据表:SHOW TABLES;
    SHOW FULL TABLES FROMIN imooc;查看数据库imooc下的数据表
    查看指定数据表的详细信息:SHOW CREATE TABLE tbl_name;
    查看表结构:DESC tbl_name;或DESCRIBE tbl_name;或SHOW COLUMNS FROM tbl_name;
    删除指定数据表:DROP TABLE IF EXISTS tbl_name;
    在这里插入图片描述

  6. 完整性约束条件:
    1、unsigned无符号,没有负数,从0开始
    2、zerofill零填充,当显示长度不够的时候可以使用前补0的效果填充至指定长度
    3、NOT NULL非空约束,插入值的时候这个字段必须要给值
    4、DEFAULT默认值,如果插入值的时候没有给字段赋值,则使用默认值
    5、PRIMARY KEY主键,标识记录的唯一性,值不能重复,一个表只能有一个主键,自动禁止为空,复合主键:PRIMARY KEY(id,courseId) ,把两个、多个列组合起来,充当主键;自动编号的字段必须定义为主键;
    6、UNIQUE KEY唯一性,一个表中可以有多个字段是唯一索引,同样的值不能重复,但是NULL除外
    7、AUTO_INCREMENT自动增长,只能用于数值列,而且配合索引所有
    8、FOREIGN KEY外键约束
    9、向列表中插入值:
    INSERT tb_name(id,username,…) VALUES(1,‘KING’,…);
    查询表中所有记录:SELECT * FROM tb_name;
    在这里插入图片描述

  7. 存储引擎
    MyISAM存储引擎:
    1、默认MyISAM的表会在磁盘中产生3个文件:.frm表结构文件、.MYD数据文件、.MYI索引文件,
    2、可以在建表的时候指定数据文件和索引文件的存储位置,只有MyISAM支持,方法:
    DATA DIRECORY[=]数据保存的绝对路径,或INDEX DIRECORY[=]索引文件保存的绝对路径
    3、MyISAM单表最大支持的数据量2的64次方条记录,每个表最多可以建立64个索引
    4、如果是复合索引,每个复合索引最多包含16个列,索引值最大长度是1000B
    5、MyISAM引擎的存储格式:
    ①定长(FIXED静态)是指字段中不包含VARCHAR/TEXT/BLOB等
    ②动态(DYNAMIC)只要字段中包含了VARCHAR/TEXT/BLOB等
    ③压缩(COMPRESSED)myisampack创建
    在创建数据表时,可以在ENGINE参数后添加 ROW_FORMAT=FIXED/DYNAMIC进行格式化
    InnoDB存储引擎:
    1、设计遵循ACID模型,支持事务,具有从服务崩溃中恢复的能力,能够最大限度保护用户的数据
    原子性(Atomiocity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability);
    2、支持行级锁,可以提升多用户并发时的读写性能;
    3、支持外键,保证数据的一致性和完整性;
    4、拥有自己独立的缓冲池,常用的数据和索引都存在缓存中;
    5、对于INSERT、UPDATE、DELETE操作,使用一种change buffering的机制来自动优化,还可以提供一致性的读,并且还能够缓存变更的数据,减少磁盘I/O,提高性能
    6、创建InnoDB表之后会产生两个文件:①.frm表结构文件②.ibd,数据和索引存储空间中
    7、所有的表都需要创建主键,最好配合上AUTO_INCRAMENT,也可以放到经常查询的列作为主键
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值