fff

基础概念:

 

 

数据库的三层模型:

  

         物理层:数据存在物理设备上存储的组件

         逻辑层:DBA工程师站在自己角度看见的样子

         视图层:用户角度看到的样子

 

 

 

         ACID:

    

              A:原子性

              C:一致性

              I:隔离性

              D:持久性

        约束:想数据表中提供的数据要遵守的限制    

            主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:必须提供数据(not null)

           唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:允许为mull

           

           外键:一个表中的某字段可填入数据取决于另一个表的主键已有的数据

           

           

索引:讲表中的一个或者多个字段中的数据复制一份另存,并且此些需要按特定次序排序储存   

           

关系运算:

        

        选择:挑选出符合条件的行

        投影:挑选出部分列

        连接:可以同时选择

 

数据的抽象方式

    

        物理层:决定了数据的存储格式,也就是在磁盘上如何组织文件

        逻辑层:描述DB储存什么数据,以及数据之间存在什么样的关系

        视图层:描述DB 中的部分数据(用视图型表示的数据相当于linux中的别名)

        

        

关系模型的分类:

        关系模型

        实体-关系模型

        基于对象的关系模型

        半结构化的关系模型

 

 

 

    

mysql命令:

     

     有两类

     1)客户端命令:本地执行  

     help \h:查看可使用的命令

     

     

     2)服务端命令:通过mysql协议发往服务器执行并取回结果至本地

     

     每个命令都必须有命令结束符号,默认为分号。

    

    

     

     

     关系型基础概念:

 

 

数据库的三层模型:

  

         物理层:数据存在物理设备上存储的组件

         逻辑层:DBA工程师站在自己角度看见的样子

         视图层:用户角度看到的样子

 

 

 

         ACID:

    

              A:原子性

              C:一致性

              I:隔离性

              D:持久性

        约束:想数据表中提供的数据要遵守的限制    

            主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:必须提供数据(not null)

           唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行:允许为mull

           

           外键:一个表中的某字段可填入数据取决于另一个表的主键已有的数据

           

           

索引:讲表中的一个或者多个字段中的数据复制一份另存,并且此些需要按特定次序排序储存   

           

关系运算:

        

        选择:挑选出符合条件的行

        投影:挑选出部分列

        连接:可以同时选择

 

数据的抽象方式

    

        物理层:决定了数据的存储格式,也就是在磁盘上如何组织文件

        逻辑层:描述DB储存什么数据,以及数据之间存在什么样的关系

        视图层:描述DB 中的部分数据(用视图型表示的数据相当于linux中的别名)

        

        

关系模型的分类:

        关系模型

        实体-关系模型

        基于对象的关系模型

        半结构化的关系模型

 

 

 

    

mysql命令:

     

     有两类

     1)客户端命令:本地执行  

     help \h:查看可使用的命令

     

     

     2)服务端命令:通过mysql协议发往服务器执行并取回结果至本地

     

     每个命令都必须有命令结束符号,默认为分号。

    

    

     

     

     关系型数据库的常见组件

     数据库:database

     表:table

          行:row

          列:column

     索引:index

     试图:view

     用户:user

     权限:privilege

     

     存储过程:procedure

     存储函数:function

     触发器:trigger

     事件调度器:event scheduler

     

     

     SQL语句:

     

           DDL:数据定义语言

             create

             drop

             alter 

           DML:数据操纵语言

             insert

             delete

             update

             select

             

            权限管理相关 

             grant

             revoke

 

 

用户登录

    

    mysql -uName -pPassword

       

             

数据库:

       cteate database [if not  exists] 'DB_name';

       创建数据库

       

       drop database [is exists] 'DB_name';

       删除数据库

   

       

获取命令帮助

 

       HELP KEYWORD;

     

    查看字符集

    

    show character set;

    

    设定字符集就是

    character = CHAR_Name

    (使用的语言)

    查看所有排序规则

    show collation 

    

    修改排序规则

    

    collation = COLL_name

     

    use DB_name :使用某数据库

    

    show tables 查看库中的表

    

    drop DB_name :传说中的删库

表:

 

数据类型(datatype)

字符型

        定长字符型char(#)

        变长字符型varchar(#)

            

数值型

                 

    精确数值型

           整型:int

           tinyint(1byte)

           smallint(2byte)

           medinmint(3byte)

           int(4byte)

           bigint(8byte)

           备注:每个byte代表的最大数值为2的byte次方     

                 十进制:decimal

   近似数值型

           单精度浮点型

           float

           双精度浮点型   

           double

           

   日期时间型

           

           日期:date

           时间: time

           时间和日期:datetime

           年:year

               (year(2)       year(4)        两位年份和四位年份 )

           时间戳:timestamp

           

修饰符:

           NOT NULL:非空约束

           DEFAULT VALUE:设定默认值

       

创建数据表中我们需要指定:字段名 数据类型 数据类型修饰符 约束

 

查看创建表语法

    

        1)help create table;

        

        数据类型,定义等

        

        2)create table TB1_name like old_tab_name

        

        复制已知表结构来创建新表

    

    创建表

    cteate table tb_name(col1 datatype 修饰符 ,col2 datatype 修饰符 )

    

    datatype:分为字符型,数值型 not null上文中有提 比如说 字符型中的int  字符型中的char等

    

    

    

        定义字段:

    

           primary key(col#,...)

           定义主键

    

           index(col#,...)

           定义索引

           

           unique key(col#,...)

           定义唯一键

           

           这些可以直接在创建时写在col#的后面(备注不加括号里的内容),表示把某字段定义

           

           如果多个字段定义 最好单独提出来 先创建表然后在括号在最后边用,逗号隔开 增加定义

 

    查看所有的引擎:

    show engines

         推荐使用innodb

    查看表:     

    show tables [from TB_name]   

    查看表结构:

    desc [DB_name.]TB_name 

     

    查看表的创建方式:

    show create table TB_Name 

    

    查看表的状态:

    show table status like ‘TB_name’

    

    

    

    

    

    

删除表

        

        drop table [is exists] TB_name

     

     

修改表结构

    查看帮助

      help alter table

    用法  

      alter table TB_name Option

   

    字段(Option)

        添加字段:add

        

            add col_name datatype [first|after col_name]

        

            示例:alter table students add sex enmu('f''m')

            在表格students中增加sex字段,定义只能填写m 或者f

        

        删除字段:drop

        

        修改字段:alter ,change ,modify

        

        

        

        enum():枚举类型:限定只能使用()中的内容 用引号引起来并且用逗号隔开

        

            示例:alter table students change id sid int(5) not null; 在表格studenys中修改id字段为sid

        

    

    索引:(备注:键都是索引,但是索引不一定是键(其中有主键唯一键等))

        添加索引:add

            

            示例:alter table students add unique key(name)给name那行加unique key(不能同名)

            

            示例:alter table students add index(age);

            给age添加索引

        

          

        删除索引:drop

        alter table student drop index age

            删除age行的索引

    

        查看索引

        show index from TB_name :查看name表中的索引        

    

    索引是特殊的数据结构:他应该定义在你需要查找时作为查找条件的字段上。

    

    索引可以有索引名称:如果是单建索引默认名字为字段名字。

    

    创建索引:

    create index  index_name on TB_name (index_col_name)

    

    删除索引:

    

    drop index index_name on table_name

增删改查:

增:

    insert TB_name [(col_name)] {vars|var} (var1,...)(...),...

       

    示例:insert students values (1,'zhang','a','m')   

       

    向表中插入一行(1,zhanga m)

   

    

    

    示例:insert students (sid,name,sex) values (2,'hehe','m'),(3,'haha','f');

    在表中加入两行(指定第几行加入什么)

    

查:

 

    seletc col1,col2,...(投影)  from  tb_name [where 条件] [order by 'col_name']  [limit [m,]n];      

    

    字段表示法

    

    * :所有字段

    

        示例:select * from students

        查找students 的所有数字

    

    as:显示时给这个字段起个别名

    

        select name as n,class as c from students ;

         备注:字符串比较时,需要加引号

    

    where:判断条件

          用在查找表中的条件

        

        示例:select * from students where id >3 ;

        从students表中查找id大于3的

        

        select * from students where sex='m'

        从students中查找性别为男的

        

        select * from students where name is [not] null 

        查找名字为[非]空的;

         

    排序:

        select * from students order by name

        按照名字排序

        

        select * from students order by name desc 

        按名字反向排序

    

    限制:

          select * from students order by name  limit 1

           按名字排序显示,只显示一个

    

          select * from students order by name  limit 1,2

          按名字排序显示掠过一个显示两个

          

          

where详解:

 

        <

        >

        =

        >=

        <=

        !=

        between # and #(相当于 <= and >=)

        like:模糊匹配

              %:任意长度任意字符

              _:任意id单个字符

        

        

        

        条件组合:

        and

        or 

        not

          

          

          

删:

 

    delete

    

        delete from students where id=3

        

        删除id等于3的用户

          

          

update:

 

        修改某个字段的值

        

        

        updata TB_name set col1=var1 ,col2=var2 where id=3

        

        重点备注:删和改尽量不要用  如果必须用那么  必须写好条件  也就是where

        

          

用户账号及权限管理:

 

        用户账号:‘user’@‘host’ 

        user:用户名

        host:此用户访问mysqld服务器时允许通过哪些主机远程创建链接

        

        host可以用IP hostname等

        通常使用时我们一般在配置文件中定义

        

        skip_name_resolve = yes

        跳过验证主机名

        

    创建用户账号

            

        create user 'user_name'@'host'

        [ientified by 'password']

          

        实例

        create user 'hehe'@'%' identfied by 'abcde'

        创建用户hehe可以连接所有主机,创建密码为abcde

        

        授权:

        

            权限:权限管理、数据库、表、字段、存储例程

            

        grant priv_type,... on [object_type] db_name.tb_name[identified by 'password'] to user_name

        

        把某表中的某权限授予给某用户

        

            priv_type:all [privileges]

            

            db_name.tbname:

             

            *.* :所有库的所有表

            db_name:* :指定库的指定表

            

            *:tb_name: 所有库的指定表

            

     查看授权:

              

              show grants 【for 'User_name'@'host'】默认是查看所有用户和权限

           

           for表示查看单独用户、对某【些】主机的权限   

           

              

     回收权限:

              

              revoke priv_type,...on  db_name.tb_name from 'username'@'host'

            

         对账户重命名:

          rename user ‘user’@‘host’   

          

          修改用户passwd命令

          

          SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456')

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值