数据库常见组件
数据库:database;是指在计算机上存储数据的集合,可以包含多个表和其他对象,如存储过程、触发器、视图等。数据库是关系型数据库管理系统的基本单元。
表:table,行:row 列:column;是数据库中的一个独立的数据结构,由多个列和行组成。每个表都有一个唯一的名称,用于存储和组织相关的数据。
索引:index;是一种数据结构,用于提高数据库查询的速度。索引可以根据一个或多个列的值进行排序,加快查询时的查找速度,提高查询效率。
视图:view;是一种虚拟的表,不存储实际的数据,而是通过查询其他表来创建一个虚拟表。视图可以简化复杂的查询操作,隐藏数据的细节,保证数据的安全性。
用户:user
权限:privilege
存储过程:procedure;是一种预先编译的程序,可以接受参数并返回结果集,可以在数据库中重复使用,提高数据库的性能和可维护性。
存储函数:function;是指一种在数据库中定义的可重用的函数,它可以接受参数并返回一个值。与存储过程(Stored Procedure)不同的是,存储函数通常用于计算和返回单个值,而存储过程则用于执行一系列操作或返回多个结果集。
触发器:trigger;是一种特殊的存储过程,可以在表上的数据发生变化时自动执行,通常用于实现数据的完整性和约束条件。
事件调度器:event scheduler,任务计划
事务(Transaction):是一组相关的数据库操作,它们要么全部执行成功,要么全部失败回滚,保证数据的一致性和可靠性。
约束(Constraint):是一种限制条件,可以在表上定义,用于保证数据的完整性和一致性。常见的约束包括主键、唯一键、外键、默认值、非空等。
数据库连接池(Database Connection Pool):是一种连接池技术,用于缓存和重用数据库连接,减少数据库连接的开销,提高数据库的性能和扩展性。
SQL语言规范及标准
sql语言规范
sql语句不区分大小写,建议用大写,数据库和表名区分大小写;
SQL语句可单行或多行书写,以;结尾,关键词不能跨多行或简写
注释: -- 注释内容,单行注释,带空格
/*注释内容*/多行注释
#注释内容 mysql注释
数据库对象和命名
命名规则:必须以字母开头,可包括数字和(# _ $)特殊字符、不能使用关键字、同一database(schema)的对象不能同名
语句分类(CRUD)
DDL 数据定义语言(create drop alter)主要操作数据库、表、视图、索引等
DML 数据操作语言(insert delete update)对表中数据进行增删改
DQL 数据查询语言(select)
DCL 数据控制语言(grant revoke commit rollback)对用户权限的控制
字符集和排序
早期版本mysql使用的是latin1,mysql8.0字符集已经为utf8mb4
设置服务器默认的字符集,
设置客户端默认字符集
数据类型
选择正确的数据类型对于获得高性能至关重要
MySQL支持各种数据类型,包括数字、字符串、日期时间、二进制等。下面是MySQL中常用的数据类型:
数字型
格式说明
注:无符号设置为 tinyint unsigned 0-255;bool,boolean:布尔型:是tinyint(1)同义词,zero则为假,非zero值视为真
日期型
字符型
注
二进制型
枚举型
修饰符
字符类型:可以使用长度修饰符指定字符类型的长度,例如VARCHAR(255)、CHAR(10)等。
整型类型:可以使用UNSIGNED修饰符指定无符号整数类型,例如INT UNSIGNED、BIGINT UNSIGNED等。
浮点类型:可以使用精度修饰符指定浮点类型的精度,例如FLOAT(10,2)、DOUBLE(16,4)等。
时间类型:可以使用精度修饰符指定时间类型的精度,例如DATETIME(3)、TIME(6)等。
枚举类型:可以使用ENUM修饰符指定枚举类型的值列表,例如ENUM('male','female')等。
集合类型:可以使用SET修饰符指定集合类型的值列表,例如SET('red','green','blue')等。