时间:2021-07-01 10:21:17 帮助过:10人阅读
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有可能需要对别人写出来的复杂SQL语句做性能评估,去分析他们写的SQL语句是不是足够高效,如果不是的话,我们还要能够达到对对方的SQL语句做改写的能力。所以,我们无需自行去开发SQL,但是我们一定要有一个看懂别人写的SQL的能力哟! 一.DBA的职责 1.开发DBA: 负责数据库设计(E-R关系图)、sql开发、内置函数、存储历程(存储过程和存储函数)、触发器、时间调度器(event scheduler) 2.管理DBA: 负责安装、升级、备份、恢复、用户管理、权限管理、监控、分析、基准测试,语句优化(SQL语句)、数据字典,按需要配置服务器(服务器变量:MyISAM,InnoDB,缓存,日志) 二.SQL语言组成部分 1.DDL: 全称Data Defination,我们叫它数据定义语言,典型命令指令有CREAT/ALTER/DROP 2.DML: 全称Data Manipulation,我们叫它数据操作语言,典型命令有INSERT/DELETE/SELECT/UPDATE 3.完整性定义语言,DDL的一部分功能 主键约束、外键约束、唯一键约束、条件约束、非空约束、事务约束 4.视图定义:即虚表,它是存储下来的select语句 5.事务控制: 例如Transactions(在mysql交互界面执行“HELP content”可以查看相关信息。) 6.嵌入式SQL和动态SQL: 7.DCL: 我们叫它数据控制语言,如实现授权和权限收回的典型命令有GRANT/REVOKE. 三.数据类型的功用 MySQL的数据类型请参考:http://www.cnblogs.com/yinzhengjie/p/7818092.html 1.存储的值类型; 2.占据的存储空间大小; 3.定长,变长; 4.如何被索引及排序; 5.是否能够被索引; 四.数据字典:依赖系统编目(花名册)(system catalog) 对于关系型数据库来讲,它的数据字典也是另外找个地方存起来的。对于MySQL数据库来讲,这个位置就是名称为mysql的数据库。我们在第一次启动MySQL时,它第一步工作就是初始化系统表,所谓初始化系统表就是用来创建mysql这个数据库的。我们也可以称这个mysql数据库叫做MySQL的数据字典。数据字典是用来保存数据库服务器上的元数据。那么什么是元数据呢?我总结有以下几点: 1>.保存关系(表)的名字 2>.保存每个关系(表)的各字段的名字 3>.保存各字段的数据类型和长度 4>.保存约束条件 5>.保存每个关系(表)上的视图的名字及视图的定义 6>.保存授权用户(user表)的名字 7>.保存用户的授权和账户信息等 8>.统计类的数据,如每个关系字段的个数,每个关系中行数,每个关系的存储方法 9>.保存元数据的数据库( 即:information_schema,mysql, performance_schema) 五.MySQL内部组件 如下图所示,连接器(Connectors)和连接池他们之间是建立连接关系的。连接池(Connection Pool)的所有SQL语句都得发送给SQL接口(SQL Interface)进行接收,然后再由分析器(Parser)进行分析,由优化器(Optimizer)进行优化处理,最终我们有可能在缓存(Caches&Buffers)中获取数据,实在再不行在交由存储引擎(Pluggable Storage Engines)去执行SQL语句。
六.MySQL中字符大小写情况说明 1.SQL关键字及函数不区分大小写; 2.数据库、表及视图名称的大小写区分与否取决于底层OS(操作系统)及FS(文件系统); 3.存储过程、存储函数及事件调度器的名字不区分大小写,但触发器区分大小写; 4.表别名区分大小写; 5.对字段中的数据,如果字段类型为binary类型,则区分大小写,非binary不区分大小写; 七.SQL指令详解-数据库操作 1.数据库的创建 a>.查看创建库时的帮助信息
1 mysql> help create database 2 Name: ‘CREATE DATABASE‘ 3 Description: 4 Syntax: 5 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name 6 [create_specification] ... 7 8 create_specification: 9 [DEFAULT] CHARACTER SET [=] charset_name #设置字符集 10 | [DEFAULT] COLLATE [=] collation_name #设置排序方式 11 12 CREATE DATABASE creates a database with the given name. To use this 13 statement, you need the CREATE privilege for the database. CREATE 14 SCHEMA is a synonym for CREATE DATABASE. 15 16 URL: http://dev.mysql.com/doc/refman/5.1/en/create-database.html 17 18 19 mysql>b>.创建不存在的数据库
1 mysql> show databases; 2 +--------------------+ 3 | Database | 4 +--------------------+ 5 | information_schema | 6 | mysql | 7 | test | 8 +--------------------+ 9 3 rows in set (0.00 sec) 10 11 mysql> 12 mysql> create database yinzhengjie; 13 Query OK, 1 row affected (0.01 sec) 14 15 mysql> show databases; 16 +--------------------+ 17 | Database | 18 +--------------------+ 19 | information_schema | 20 | mysql | 21 | test | 22 | yinzhengjie | 23 +--------------------+ 24 4 rows in set (0.00 sec) 25 26 mysql>c>.已经存在数据库的如何使用创建命令
1 mysql> show databases; 2 +--------------------+ 3 | Database | 4 +--------------------+ 5 | information_schema | 6 | mysql | 7 | test | 8 | yinzhengjie | 9 +--------------------+ 10 4 rows in set (0.00 sec) 11 12 mysql> create database if not exists yinzhengjie; 13 Query OK, 1 row affected, 1 warning (0.00 sec) 14 15 mysql> show databases; 16 +--------------------+ 17 | Database | 18 +--------------------+ 19 | information_schema | 20 | mysql | 21 | test | 22 | yinzhengjie | 23 +--------------------+ 24 4 rows in set (0.00 sec) 25 26 mysql>2.数据库的删除 a>.查看删除数据库时的帮助信息
MySQL数据库以及表的管理
标签:actions 它的 nec 变量 character dba rip 完整性 alter