mysql sqlyog(上)

Mysql 


一。数据库的介绍

1.什么是数据库?


   -是一种持久化存储数据的技术!
   -数据库保存的数据是有格式的!
   -数据库中真实存在于磁盘中的:默认地址: c:/programdata/mysql


2.什么是数据库管理软件 DBMS


   数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据


3.数据库中的单位


库  保存表的
表  由行组成
行  由列组成
列  具体的某个数据


一个库中可能保存多张表! 一个表中有很多行  一个行也可以包含很多列!


4.数据库中单位如何映射实体类!


一个对应实体类的集合应该对应的是一个表!
一个实体类对象对应的应该是一行的数据
对象中的一个属性对应的应该是一列数据!


5.数据库中使用的sql 
    
    SQL数据库管理软件操作数据的一种语言!! 


  mysql:  insert into  xx  ; 往数据库中插入数据!




6.sql语句的分类


DDL**(Data Definition Language):
数据定义语言,用来定义数据库对象:库、表、列等; CREATE、 ALTER、DROP


DDL:  创建  删除  修改


 库
 表 
 列


DML***(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);


INSERT 插入数据 
DELETE 删除数据
UPDATE 修改更新数据




DQL***********(Data Query Language):数据查询语言,用来查询记录(数据)。

  SELECT 


DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;


      


二。数据库DDL


数据定义语言


Create  Alter  Drop


  1.操作库 创建库  修改库  删除库
  2.操作表 创建表  修改表  删除表
  3.操作列 添加列  修改列  删除列






  -如何操作库  




    0.利用数据库管理软件(mysql) 登录数据库!


       1.保证mysql服务开启状态 


        net stop mysql  关闭mysql 服务
        net start mysql 启动mysql服务


        权限不够 报错拒绝访问5 :
        解决方案: cmd 右键管理员身份打开即可!!!
       
       2.如何使用命令登录mysql软件


        mysql -uroot -p 回车 输入密码!!


     1.创建库 


  create database 数据库名称;


  注意:执行sql语句是识别;


       2.查看库 


        show databases; 


        展示有多少个库!!


       3.删除库 


        drop database 数据库名称


       4.使用一个库 


           use 库名;


       5.查看当前使用库 
       
        select database();   


       注意:同一时间只能操作一个数据库!
        
       -操作表 


            mysql有类型数据库!


                name String   --》  varchar


            sqlite无类型数据库    




        create  table 表名(
        name xx,
        age xx);
            
         常用数据类型:
int:整型    默认情况下  -2147483648  ~  2147483647     4个字节 
integer 


tinyint 整数  默认情况下  -128-127   1一个字节


smallint 整数  0-65535  -65535/2  - 65535/2  2个字节
bigint  整数  long 很大!!!  8个字节


注意:整数类型可以添加特殊标识 UNSIGNED 代表着没有负数!负数部分转移到正数!


double:浮点型,例如double(5,2)

,逗号前代表 总位数!  
   ,逗号后代表小数点的位数!


   注意:有正负值!!


char:固定长度字符串类型;* 
 name char(0-255)    ‘赵伟风             ’ 
 指定的最大长度 0-255


     348088053
     18514592456


varchar:可变长度字符串类型 ********************************n
       name varchar(0-65535)    ‘赵伟风’ 
       0-65535


    ---------------------


text:字符串类型; 65535 描述大文本!!
blob:字节类型;保存一张图片




date:日期类型,格式为:yyyy-MM-dd; “2017-08-01”
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss


       -查看库中表 


        show tables;


       -查看表的列的信息
       
            desc 表名 


       -查看创建表的语句   


          show create table  表名;  


       -修改表  ***


          1.添加列 


             alter table  表名  add 列名 类型;


          2.删除列 


             alter table 表名 drop 列名 


          3.修改列的类型 


             alter table 表名 modify  列名   新类型;


          4.修改列的名字
          
             alter table 表名 change 原列名 新列名 新类型;    




        -删除表 


        drop table 表名


    三。数据库DML  ********************************
 
  数据操作语言 


  INSERT 插入数据 


  insert into 表名  1. value (列值1,。。。列值n)
  values(列值1,。。。列值n),(列值1,。。。列值n);
  1.没有指定列 代表着全部插入!注意:要跟数据库中列的顺序
  一一对应!


  insert into 表名  2.(列名1,列名2..列名n)
 
  value (列值1,。。。列值n)
  values(列值1,。。。列值n),(列值1,。。。列值n);  




  2.指定列进行插入!注意要跟指定列的顺序一一对应!


    1708


    name  age  sex


    1.


    insert into 1708 value('王东阳','23','男');
    insert into 1708 values('王东阳','23','男'),('xx','23','男');


    2.
    insert into 1708 (name,age) value/values ('xx',12);


    注意: 如果数据为空!直接插入null


    Long  age;  //默认值??? null
    long  age;  // 0L






  UPDATE 
  1.基本
  update 表名 set 列名 = 新值 , 列名 = 新值
  //表中所有的数据修改


  2.条件修改




update 表名 set 列名 = 新值 , 列名 = 新值 where 条件!


update 1708 set name = '王小二',age = 11  where name = '王东阳';


3.数据逻辑运算符


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




  DELETE
  1.基本
  delete from 表名 ;   


  //删除表中的全部数据


  2.条件删除


  delete from 表名 where 条件; 


  delete from 1708 where age>10; 


         3.删除数据和表结构 


          truncate table 表名


    四。数据库DQL *************************** SELECT 


    数据库查询语言!!!


    数据库查询语言不会改变数据的内容!


          1.基本查询 


              -全部查询


              select * from 表名;


              注意:开发中不推荐这么写!因为有很多垃圾字段!造成查询速度慢!






              -全部查询,但是指定查询的列


                推荐使用指定列查询!


                select 列名,列名 .. from 表名!
          
          2.条件查询 


           条件查询指的就是在where后面追加条件
           
           下面是常用的条件查询的逻辑符号!!


          =、!=、<>、<、<=、>、>=;
BETWEEN…AND; 
IN(set); //指定的内容  age in (18,28,38);
IS NULL    是null的
     IS NOT NULL 不是null  


     注意:数据库中null数据不能使用= !=去判断!


     age = null; 错误的写法!


     age is null;正确的写法!


AND;  且
OR;  或
NOT; 非


          3.模糊查询 


           like 


               % 匹配任何字符
               _ 匹配一个字符




               name like '_张%';




               张三 小张三  小小张三  小张三三三


               %张%


               ___


          4.字段(列)控制 




           -去重复 


            SELECT DISTINCT sal,deptno FROM emp;


           -ifnull(需要判断的值,如果为null应该等于的值)


           -列 起别名 
            1.
             select 列名 AS 别名,列名 AS 别名 where 
  2.
  select 列名 别名,列名 别名 where 
          
          5. order by 排序


            注意没有where,并且如果有where应该写到where的后面!!


            升序  小 -大  asc 


            降序  大 -小  desc


           select *  from stu order by age  desc  / 默认升序 asc
 
   特殊情况
           SELECT * FROM emp ORDER BY sal DESC,empno DESC;


           当条件一不满足(值相等) 按条件2的去排!


          6.聚合函数 


          聚合函数是用来做纵向运算的函数:
           可以不用指定列!
           也可以指定列!如果指定了列那么NULL的数据不计算!
COUNT():统计指定列不为NULL的  记录行数;




 必须指定列!!!
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;


          7.分组查询 


           group by 按字段


   1.查询男生和女生的人数


   select count(*) ct from stu group by gender;


   注意:where 是分组前的条件!!!


   where  -》 group by -》 order by


          8. Having 


              分组后 组的条件!!!!
              只会跟在group by的后面!


           查询工资总和大于9000的部门!


           select deptno,sum(sal) AS sl from emp where sl >9000 group by deptno;


           -----------------------------------关键词排序


           select * from xx where   and  or   group by  having  order by 


          9. limit 分页查询! 


            方言!! mysql


           limit int值!


           查询数据的数量


           limit int值1,int值2!


           参数介绍:
             值1: 起始偏移量   


             值2: 查询的数量


             limit 0,5; == limit 5;


           分页公式 ******


           select * from stu limit (currentpage-1)*pageSize, pageSize; 




           order by的后面!




           select -- from --- where -- and / or  -- group by -- having 
           --order by --- limit;




  作业: DML DQL练习敲一遍!! ****


         DML DQL语法抄两遍!! ***







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值