开源数据库MySQL DBA运维实战 第2章 SQL1

SQL语言分类

SQL(Structured Query Language 即结构化查询语言)

SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。

分类

DDL(data definition language)语句: 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE  DROP ALTER

DML (data manipulation language)语句: 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE

DQL (Data Query Language  语句: 数据库查询语言: 查询数据SELECT

DCL  (Data Control Language语句: 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE  

名词解释

数据库服务器:运行着数据库应用程序的设备  DELL R760+CENTOS+Mysql

                            硬件+系统软件+MYSQL软件

数据库:默认数据库

mysql>show   databases ;

开源数据库MySQL DBA运维实战 第2章 SQL1

information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等

performance_schema: 主要存储数据库服务器的性能参数

1.提供进程等待的详细信息,包括锁、互斥变量、文件信息

 2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;

 3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期

mysql: 授权库,主要存储系统用户的权限信息

SYS database中,可以获取mem page、io 、latch/mutex/lock等各种性能数据,方便做peformance turning 和 troubleshooting。比如可以方便获取2个sql发生 lock block,用户占用的资源等信息。

sys: 主要存储数据库服务器的性能参数

创建需要的业务主库...

表:记录的管理单元

记录(行):信息的载体,字段的管理单元,例:张三,男,23,云计算工程师,月薪25K

字段(列):字段名,字段类型(长度),字段约束组成(可选)

                    姓名,文字,不能为空

                    张三 

类型:字符,数字,日期

约束:唯一,不能为空,自动增长

图示

开源数据库MySQL DBA运维实战 第2章 SQL1

DDL

DDL-库

 定义库 :

创建业务数据库

语法:CREATE DATABASE 数据库名;   例:CREATE DATABASE discuz;

数据库名要求;区分大小写,唯一性,,不能使用关键字如 create select ,不能单独使用数字和特殊符号“如-",正常的:用拼音或单词即可。

查看所有数据库:show databases;

 选择/进入数据库:USE 数据库名

SELECT database();
调用函数,查询当前库

删除数据库 :DROP DATABASE 数据库名;

系统中的位置:/var/lib/mysql/   可以在这里进行清理备份

数据类型

1.数值类型

整数类型 int

 浮点数类型 小数) float 

2.字符串类型

字符系列 CHAR和VARCHAR     char的长度不可变。
                                                    varchar的长度可以增加。

枚举类型 单选)  ENUM

集合类型 (多选)SET

3.时间和日期类型

年 YEAR

日期 DATE 

时间 TIME     

日期和时间 DATETIME         

DDL-表

创表目的
表是数据库存储数据的基本单位,

表由若干个字段(列)组成,

主要用来存储数据记录(行)。

操作数据库实例1

创建1列的表格-序号

创库:create    database    haha;

开源数据库MySQL DBA运维实战 第2章 SQL1

使用库 :use    haha;

创表语法:   创建        表格        表名t1    (列名id   类型int );

                    CREATE      TABLE        t1    (id int);       

开源数据库MySQL DBA运维实战 第2章 SQL1

查看所有表名 : show tables;

开源数据库MySQL DBA运维实战 第2章 SQL1

 

插入数据 :插入  到   表名t1   值  (1);

                   insert into t1 values (1);

查询所有数据 :查询  所有列   从   表名t1

                       select   *          from      t1;

开源数据库MySQL DBA运维实战 第2章 SQL1

删除表: drop   table  t1;

开源数据库MySQL DBA运维实战 第2章 SQL1

在查看一下表:show  tables;

开源数据库MySQL DBA运维实战 第2章 SQL1

操作数据库实例2

创两列的表格-序号和姓名

创建   表格     表名t2          (第一列名id   数字类型,  第二列名name   字符类型(长度))

create   table        t2            (id           int,           name             varchar(20));

开源数据库MySQL DBA运维实战 第2章 SQL1

查看表结构: 描述  表t2

                     desc t2;

开源数据库MySQL DBA运维实战 第2章 SQL1

插入数据:   插入          到          表t2    值        第一列信息,第二列信息);

                  INSERT     INTO      t2   VALUES (1,"zhangsan");

                 注意 :数字不能加引号,字符必须加引号(转义符)

查询所有数据 :select   *   from   t2;

开源数据库MySQL DBA运维实战 第2章 SQL1

总结:mysql> show tables;   //查看表名

        mysql> select * from t2;    //后续讲解。看表中的内容

       mysql> desc  t2;                 //查看表结构     操
 

作数据库实例3

1.创建表

要求:创建库school
          创建表student1

 结构: 

开源数据库MySQL DBA运维实战 第2章 SQL1

语法:create   table 表名(字段名1  类型,字段名2  类型,字段名3  类型 );

1.创建库: CREATE  DATABASE school;

使用库 : use school ;
创建一个表,四列: create table student1(  id int, name varchar (20) ,   sex enum('m','f'), age int );

 2.查看表名  show tables;

开源数据库MySQL DBA运维实战 第2章 SQL1

3.表中插入内容

 第一次插入的信息:  insert into student1 values(1,'zhangsan','m',22 );
 第二次插入的信息: insert into student1 values(2,'xiaohua','f',16 );
 第三次插入的信息: insert into student1 values(3,'lisi','m',66 );
 第四次插入的信息: insert into student1 values(4,'xiaogang','m', 32 );
4.查看表内容

select * from student1;
开源数据库MySQL DBA运维实战 第2章 SQL1

5.查看表结构

desc student1;

开源数据库MySQL DBA运维实战 第2章 SQL1