数据库:
DBMS:
    数据库的用处:
               1、数据管理独立性
               2、有效地完成数控存取
               3、数据完整性和安全性
               4、数据集中管理;
               5、能够实现并发处理和故障恢复
               6、缩短应用程序开发时间


sql:结构化查询语句接口

DNMS必须有的功能:
             1、分析器----提供语法分析,词法分析
             2、计划执行器---通过分析后,再生成一个计划,完成语句任务
             3、优化器---通过分析后,再生成最优方法来完成sqL操作
             4、文件的存取方法
             5、缓存器---将文件先读到缓存器再进行操作
             6、磁盘空间管理器----通过转换吧数据存在磁盘
             7、故障恢复管理器  
             8、并发事务管理器(锁管理器)

mysql有两个版本:
    社区版--community
    
    企业版--enterprise edition


mysql提供的软件包格式:
      软件包管理器特有的格式---rpm包格式。exe格式
   
      通用二进制格式----不用解压,就可以使用
   
      源程序--需要用过解压,
      

mysql客户端,  mysql-server服务器端

 二进制程序
mysql客户端
mysql程序段


监听的端口以及通信协议
      tcp/3306,  一般是以用户mysql和组mysql来运行


RDBMS:

在红帽系列中数据默认保存在  /var/lib/mysql/



安装好之后mysql会完成数据的初始化----mysql里面就有一个自己的数据库,里面存有库名,有多少张表等信息

数据:是元数据和文件组成-------元数据是数据的一些基本属性

作为文件系统:文件的元数据存放的
 
磁盘格式后分为元数据区和数据区



mysql的用户登录包含用户端(username@host客户端登录

mysql的连接方式:
     如果是连接本机127.0.0.1,那连接方式是socket
            
                   
     客户端不是本机连接,那使用的tcp连接

mysql客户端:
    交互式模式
    
    批处理模式--执行mysql脚本

交互式模式中的命令类别:
   
    客户端命令:
 
    服务器命令:进行服务器操作的语句

通过服务器命令操作help操作可以查看客户端命令



客户端命令可以直接执行,服务器命令必须使用语气结束符,默认是分号进行结尾;


 
 
任何一个关系型数据库都应该提高一个关系接口,


sql接口扩展:
     Oracle:PL/sql
     sql server,T-sql
     
关系型数据库对象:

表、索引、视图、约束、存储过程、存储函数、触发器(做主动数据库)、游标、用户、权限、事务


表:
  行:列
  表:表示一个实体
  行:表示一个实体集用row
  列:filed,或者columm---一个表至少有一个列


字段名称;数据类型,类型修饰(约束);

数据类型:
       字符  char          一个字符八个字节-----  (分多少就占用多少)
             varchar     要实现多少字符就占用多少
             binary     区分字符大小写--跟char一样固定字节长度
            varbinary    不固定的区分字节大小写
             text        可以存储非常大的字符数据
              blob        区分二进制的大对象

       数值     
             int   整型:精确数值
                      tinyint     微整型 ----一个字节   
                      smallint    小--两个字节
                      mediumint    中---三个字节
                      int--- 四个字节
                      bigint---八个字节
                  
                  修饰符:unsigend,无符号
                    十进制   decimal
              浮点数值:近似数值
                        单浮点:float
                        双浮点:doubl

       日期  
             date
             
             time
     
             datetime
               
             stamp

       布尔  0或1


RDBMS:
1、数据库创建、删除、修改
2、创建表、删除表、修改表
3、索引的创建、删除
4、用户和权限的管理
5、数据的增、删、改、
6、数据的查询


mysql的常用命令


DML:数据操作语言
    INSERT(插入),  REPACE(替换), UPDATE(修改), DELETE(删除)

DDL:数据定义语言
    CREATE(创建数据库),ALTER(修改数据库),DROP (删除数据库)  

DCL:数据控制语言
    GRANT(用户授权),REVOKE(取回权限)
SELECT:查询




    



创建数据库:
          crate database db_name;
删除数据库:
          drop database db_name;
创建表:
           crate table tb_name(属性--name char(20) not null,age )
     查看库中的表:show tables from db_name(库名);
      查看表的结构:desc db_tables;

删除表:drop table tb_name;



修改表:
  alter  table tb_name
   
                modify    字段   属性              (修改字段------修改该字段的属性)
                change    oldname   newname   字段定义  (改变字段------修改该字段名称)   
                add       字段  属性 (添加字段)
                drop      字段  (删除字段)
   
alter table students add  course  varchar(10);



DML:进行数据修改
   添加数据      insert  into  tb_name     字段(col1,col2)   字段值-values|vaLue('string',num,...);

                instert into ab_1   (name,age)   value('lihua',15)
   
    修改数据      update  表名(tb_name)    set    column=vlaue   where(条件)

                     upate ab_1 set     name='yangfang' where name='0'



    删除数据       delete   from  标名(tb-name)  where(选择)  “数据”

                     
select
      seletc 字段   from    tb_name    where  "数据"

       *:表示所有字段
       
       where:没有条件表示显示所有行

创建用户:
        create  user    'username'@'host'  identified  by 'passwod';

删除用户:
        drop   user  'username'@'host';

    host :可以包含1、IP  2、hostnme  3、network   4、通配符:(_表示任意单个字符,%:匹配任意字符;)


授权:
    grant  pril,pril2,... on db_name.tbname to  'username'@host' [ identified  by 'passwod']


    revoke     pril,pril2,... on db_name.tb_name  from    'username'host';


查看用户的授权:show grants   for  'username'@'host;


all privileges  给用户所有的权限



选择:指定以某字段或某些字段作为搜索码,与某值做逻辑比较,筛选符合条件的行
   
    where 指定选择条件

投影:选择列


为用户设定密码:
1、set password for `username@host`=password('123456')


flush   privileges  刷新MySQL的表


2、mysqladmin -uroot -p password  'password';


3、mysql> update user set password=password('password')  where  user='root' and host='   ';




mysql轻量级图形客户端;
1、phpMyadmin  客户端不需要装任何东西,服务器端装一个程序即可


2、workbench   


3、mysql front

4、navicat for msyql

5toad