Mysql数据库控制语言DCL

数据库控制语言DCL

 表中涉及到的类型!!添加修饰符!

 

            int整型    -2 31  2 31  4个字节!

            integer 类型  4个字节!

            

            tinyint 整数类型  -128  127  1个字节

 

            samllint 整数类型  -65535/2  65535/2 2个字节

  

            bigint 整数类型 long 大于int类型  8个字节!

 

            unsigned代表整数类型没有负值! 0-n

 

                           double浮点型,例如double(5,2)  5总位数!2小数位数!

 

                           10 aaa  char  'aaa      '

                                            varchar 'aaa'

                           char固定长度字符串类型; char(10)  'abc      ' 256

 

                           varchar:可变长度字符串类型;varchar(10) 'abc'    65535

                         

                           text:字符串类型;  65535

                           blob:字节类型;往数据库存图片!

 

                           时间戳: 1970 1 1 至今的毫秒值! varchar字段!

                           date日期类型,格式为:yyyy-MM-dd;

                           time时间类型,格式为:hh:mm:ss

                           timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值

                           datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

 

                           注意:字符串类型和double类型需要最后追加 (长度)

 

二、数据库操作语言DML

 

        insert update  delete

 

    1.插入数据

 

          insert into 表名 1.(列名1,列名2...) value/values("1",2,....)

                             

                                          2.什么都不写(全部列都要插入) value/values();

 

                                                                                                          value()

                                                                                                          values(),(),();

 

 

                    注意:插入数据的时候!如果指定了列名1情况,value/values的值要跟列名

                           一一对应!

                          如果没有指定列名!要插入全部列!value/values的值要根据创建表的时候列的顺序进行插入!如果没有值写成null!!

 

              2.删除数据

 

                     delete from 表名;  //删除所有数据

 

                     delete from表名 where 条件

                                                                name = 'xxx' and sex = 'xxx';

                                                                name = 'xxx' or sex = 'xxx';

                                                                

                                                                or/and

 

                     truncate 表名;

                    

                     truncate速度会更快!但是慎重使用!不考虑表结构!直接删除表创建新表!

                     但是问题!数据可能发生重复!!

 

    3.修改表数据 update

 

          update 表名 set 列名 = 新值,列名 = 新值 ;  //全部修改

 

                                                                                             where 条件 //按条件修改!

 

 

          在原有的基础上进行修改:

          

          update 表名 set 列名 = 列名(+-*/)新值 where 条件!                  

一、字段控制

 

1.根据字段去重复  DIstinct

 

       select distinct 字段 from 表的名字;

 

2.查询求和

      

        select */列名/整数可以运算 from 表名;

        

        注意:整数 + null  = null

 

3.ifnull如果为空设置值

 

      SELECT * , IFNULL(comm,0)+sal FROM emp;

 

        ifnull(1,2)

        

        1.判断得值

         2.如果判断值为null  取第二个值!

 

4.起别名

        

         有写时候查询出来的列名太长!我们希望用简短的列名表示!这个时候就需要起别名!

 

        select 列明 别名

         select列名 as 别名

二、排序

                 

        语法 order by 列名 asc(默认) desc

 

 

1.根据薪水排序

 

        SELECT * FROM emp WHERE sal > 1000 ORDER BY sal DESC;

 

          注意:如果只是排序 可以不添加where !如果有条件!需要在排序前添加条件!!!

 

2.添加候补排序

                 

        SELECT * FROM emp ORDER BY sal DESC,empno ASC;

 

          第一个条件相同才会触发第二个!以此类推!

       

        

        select 列的列表 from 表名 where 条件 order by  字段 asc/desc;

 

三、聚合函数

 

?         COUNT():统计指定列不为NULL的记录行数;

?    MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

?    MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

?    SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

?    AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

 

四、分组查询

 

   group by 字段!

  

   group by 字段 having 条件!

 

   

  where 和 having对比

 

   相同点:

         都是条件判断

   不同点:

         where分组前的条件!

         having分组后以组为单位的条件!通常使用的是聚合函数!

 

         where  from 表名 where

       having group by 分组字段 having 条件!

 

 

  select * from 表名 where 条件  group by 字段 having;

  select * from 表名 where 条件 order by 字段。

  

   最难的sql语句!

  select * from 表名 where 条件 group by 字段 having orderby 字段

  

五、mysql的方言

  

   limit 值1;   = limit 0,值1;

   

   limit 值1,值2;

  

   limit 值1; 从第一个数据开始查询查询值1个! 值1指的是查询数量!

   

   limit 值1,值2; 值1代表着偏移量,值2代表查询的个数!!!

 

    总结:

                 

               分页公式: limit (currentPage-1)*pageSize,pageSize;

 

                 说明:currentPage 当前页数 从1开始

                  pageSize 每页显示的数量!‘’‘

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三(2) SQL语言DCL 一、实验目的 SQL的数据控制通过DCL(数据控制语言) 实现。DCL通过对数据库用户的授权和收权命令来实现有关数据的存取控制,以保证数据库的安全性。 本次实验了解DCL语言的GRANT和REVOKE语句对数据库存取权限的控制,学会SQL Server 2000的查询分析器中用DCL语言数据库存取权限进行设定。 本实验需要2学时。 二、实验内容 1.创建新的数据库用户 2.用GRANT语句对数据库存取权限进行授权操作,语法格式如下: GRANT <特权组> To <用户组>|PUBLIC PUBLIC指数据库的所有用户。 3.用REVOKE语句将DBA(数据库管理员)、DBO(建库用户)授与其它用户对数据库的操作权收回,语法格式如下: REVOKE <权限组>|ALL PRIVILEGES [ON <对象名>] FROM <用户组名>|PUBLIC 三、实验任务 1. 创建新的数据库用户 要在STUDENTS数据库中创建一个“user0”数据库用户,可以按下面的步骤创建新数据库用户。 1) 在企业管理器中扩展SQL服务器及数据库文件夹。用鼠标右键单击用户 文件夹,弹出一个快捷菜单,在弹出的菜单中选择“新建数据库用户”项,会出现对话框。 2) 在对话框的登录名栏中选择一个SQL服务器登陆名和用户名。(选新建) 3) 单击“确定”按钮。 2.打开数据库SQL Server 2000的查询分析器,用新建的用户user0进行登录。 3.在查询分析器中,对STUDENTS中的表进行操作:查询(SELECT)等。会出现提示如图3:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值