zoukankan      html  css  js  c++  java
  • Mysql数据库 SQLyog可视化工具

    - 下载完之后在终端确认是否已经安装成功

    1. 输入cd /usr/local/mysql/bin 回车

    2. 输入ls回车
    3. 输入/usr/local/mysql/bin/mysql -uroot -p 回车
    4. 直接输入密码回车

    确认完成可直接使用

    - sql语句

    1. sql语句就是结构化查询语句 ==>需要学习的一些指令 便于对数据库进行操作

    2. sql 语句的分类 DDL DML DQL DCL

    DDL:主要是针对于 数据库 以及表的操作 关键字 alter drop create

    DML 主要是针对于 表里的数据进行操作,也就是 增加 删除 修改 insert delete update

    DQL 主要是针对于 表里的数据进行操作 一般用于写查询语句(重点)

    DCL 主要用于修改权限 运维做的

    -DDL

    1. 创建一个数据库 语法: create database 数据库的库名;

    2. 在创建数据库的时候给其设置编码格式 语法: create database 数据库的库名 character set utf8;

    3. 在创建数据库的时候 判断数据库 是否存在 语法: create database if not exists 数据库的库名;

    4. 查看数据库的结构 语法: show create database 数据库的库名;

    5. 修改数据库的编码格式 语法: alter database 数据库的库名 character set gbk;

    6. 切换到具体的某一个数据库 语法: use 数据库的库名 ;

    7. 删库 drop database 数据库的库名;

    8. 查看所有的数据库 show databases;

    -数据库中的表

    - 数据库中的数据类型

    1. int: 整形

    2. double: 小数

    3. char: 字符串 不可以变的字符串 不管数据的多少 都会占 设置的长度 不够的使用""来代替 一般用于设置固定长度的字符型(性别 男 或者是女)

    4. varchar: ==>可变 的字符串 根据数据来设置其长度

    5. date: 年月日

    6. datetime: 年月日 时分秒











    创建表
    语法:

    create table 表明(
    列名1 数据类型(长度),
    列名2 数据类型(长度),
    列名3 数据类型(长度)

    );
    注意:

    1.  一定要切入到对应的数据库 use 数据库的名字
    2. 创建表结构 show create table 表名;
    3. 查看表结构 desc 表名; 
    4. 修改标的名字 alter table 表名 rename to 新的表名;
    5. 查看当前库中所有的表 show tables; 
    6. 新增加一列 alter table 表名 add 列名 数据类型(长度);






    修改表

    1. 只修改数据类型 alter table 表名 modify 列名 数据类型(长度);
    2. 修改列名 alter table 表名 change 原列名 新的列名 数据类型(长度);

     

     

    可视化工具 SQLyog

    - DML 语句

    - 插入

     1.  增加(插入一条数据): 
     (1)  insert into 表名 (sid,sname,spwd,createTime) values (值1,值2,值3,值4)
    (2) 不指定列名 按照顺序来进行插入(不常用 容易出现错误)
        insert   into  表名  values (插入的值1,插入的值2)
        注意: 必须所有的列都要插入值
        INSERT INTO student VALUES(2,“班长”,“123456”,‘2019-01-22’):
    2. 插入多条数据
    语法:    insert  into 表名  value (第一组值), (第二组值)
     注意事项 :A.列名必须是表名存在的   
              B.列名的类型与插入值的类型要以一对应
              C. 如果插入的是事件类型 一定要加上单引号
    INSERT INTO student VALUES(3,“花花”,“123452”,‘2019-06-21’),(4,“翠翠”,“123457”,‘2019-04-12’):

    - 修改 关键字update

    1. 修改一个列的语法  update 表名  set  列名 = 数据1  where 条件
    UPDATE student SET sname=“大胖” WHERE sid =3
    2. 修改多个列    update  表名  set 列名=数据1,列名2=数据2  where  条件
    UPDATE student SET sname=“小胖”,spwd=“123456” WHERE sid =3
     3.  修改表中所有的数据       update  表名  set  列名=数据1, 列名2=数据2 
     注意事项 :A.列名必须是表名存在的   
                         B.列名的类型与插入值的类型要以一对应
                         C. 如果插入的是事件类型 一定要加上单引号
    UPDATE student SET sname=“小胖”,spwd=“123456”

    - 删除 关键字delete

    1. 语法 delete from 表名 where 条件
      DELETE FROM student WHERE sid=2
    1. 删除所有的数据 delete from 表名 一定要慎用
      DELETE FROM student

    总结:增加删除修改 会对数据库的数据产生影响,查询不会对数据产生影响

    - DQL 语句

           查询语句的关键子是select * from

            1. 表示查询所有的数据,也可以根据具体的字段来查询指定的列

    1. 在查询的过程可以做一些相应的计算
      #查询结果是表达式(运算查询):将所有商品的价格+10元进行显示

    1. 去重复 DISTINCT
    1. 设置别名 关键字是 as as可以给表 设置 也可以列设置 as可以省略
    1. 根据条件来进行查询 关键字: where or 或者 and 并且 between and 在什么范围之类 in(20,30) 或者
    1. 模糊查询 like % 匹配所以 _匹配一个字符
    1. is not null is null 这里null 并不是""
    1. 分页查询的关键字 limit 参数1, 参数2 参数1表示数据索引 参数2表示页量
    1. 升序 与降序 order by asc 升 desc 降
    1. 聚合函数 count() sum() max() min() avg()
    1. 分组 关键字 group by
    1. 分组关键字 group by
    1. 过滤使用的是 having
      having 过滤 与where的区别 一个是分组前where having是在分组后
    1. 查询语句不能随便调换位置
      在这里插入图片描述

     SQL练习

    #查询product表中所有记录
    SELECT * FROM product
    
    #查询product表中pid和pname字段
    SELECT pid,pname FROM product
    
    #查询product表中所有的电脑办公记录
    SELECT * FROM product WHERE category_name = '电脑办公'
    
    #查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.
    SELECT pname,price+10 FROM product
    
    
    #查询商品名称为“花花公子”的商品所有信息:
    SELECT * FROM product WHERE pname = '花花公子'
    
    #查询价格为800商品
    SELECT * FROM product WHERE price=800
    
    #查询价格不是800的所有商品
    SELECT * FROM product WHERE price !=800
    
    #查询商品价格大于60元的所有商品信息
    SELECT * FROM product WHERE price>60
    
    #查询商品价格在200到1000之间所有商品
    SELECT * FROM product WHERE price BETWEEN 100 AND 1000
    
    #查询商品价格是200或800或者2000的所有商品
    SELECT * FROM product WHERE price=200 OR price=800 OR price=2000
    SELECT * FROM product WHERE price IN(200,800,2000)
    
    #查询含有''字的所有商品
    SELECT * FROM product WHERE pname LIKE '%霸%'
    
    #查询以''开头的所有商品
    SELECT * FROM product WHERE pname LIKE '香%'
    
    #查询第二个字为''的所有商品
    SELECT * FROM product WHERE pname LIKE '_想%'
    
    #商品没有分类的商品
    SELECT * FROM product WHERE category_name IS NULL
    
    #查询有分类的商品
    SELECT * FROM product WHERE category_name IS NOT NULL
    
    #1.使用价格排序(降序)
    SELECT * FROM product ORDER BY price DESC
    
    #2.在价格排序(降序)的基础上
    #若价格相同,相同价格的数据以pid降序排序
    SELECT * FROM product ORDER BY price DESC,pid DESC
    
    #1 查询商品的总条数
    SELECT COUNT(*)AS "总记录数" FROM product
    SELECT COUNT(1) FROM product
    
    #查看商品总价格、最大价格、最小价格、价格的平均值
    SELECT SUM(price)AS 总价格,MAX(price)AS 最大值,MIN(price)AS 最小值,AVG(price)AS 平均价格 FROM product
    
    #2 查询价格大于200商品的总条数
    SELECT COUNT(1) FROM product WHERE price>200
    
    #3 查询分类为'电脑办公'的所有商品的总记录
    SELECT COUNT(1) FROM product WHERE category_name='电脑办公'
    
    #4 查询分类为'服装'所有商品的平均价格
    SELECT AVG(price)AS 平均价格 FROM product WHERE category_name='服装'
    
    # 统计各个分类下商品的个数
    SELECT COUNT(1),category_name FROM product GROUP BY category_name
    
    #统计各个分类商品的个数,有且 只显示分类名称不为空值的数据
    SELECT COUNT(1),category_name FROM product GROUP BY category_name HAVING category_name IS NOT NULL
    
    #分页查询
    SELECT * FROM product LIMIT 0,3
    
    SELECT * FROM product
    
    #去重复
    SELECT DISTINCT price FROM product

    SQL练习

    CREATE TABLE stu (
        sid    CHAR(6),
        sname        VARCHAR(50),
        age        INT,
        gender    VARCHAR(50)
    );
    
    INSERT INTO stu VALUES('S_1001', 'liuYi', 35, 'male');
    INSERT INTO stu VALUES('S_1002', 'chenEr', 15, 'female');
    INSERT INTO stu VALUES('S_1003', 'zhangSan', 95, 'male');
    INSERT INTO stu VALUES('S_1004', 'liSi', 65, 'female');
    INSERT INTO stu VALUES('S_1005', 'wangWu', 55, 'male');
    INSERT INTO stu VALUES('S_1006', 'zhaoLiu', 75, 'female');
    INSERT INTO stu VALUES('S_1007', 'sunQi', 25, 'male');
    INSERT INTO stu VALUES('S_1008', 'zhouBa', 45, 'female');
    INSERT INTO stu VALUES('S_1009', 'wuJiu', 85, 'male');
    INSERT INTO stu VALUES('S_1010', 'zhengShi', 5, 'female');
    INSERT INTO stu VALUES('S_1011', 'xxx', NULL, NULL);
    
    --  查询性别为女,并且年龄大于等于50的记录
    SELECT sid,sname FROM stu WHERE gender='female' AND age>=50;
    --  查询学号为S_1001,或者姓名为liSi的记录 
    SELECT sid,sname FROM stu WHERE sid='s_1001' OR sname='lisi';
    --  查询学号为S_1001,S_1002,S_1003的记录
    SELECT * FROM stu WHERE sid IN('s_1001','s_1002','s_1003'); 
    --  查询学号不是S_1001,S_1002,S_1003的记录
    SELECT * FROM stu WHERE sid !='S_1001'AND sid !='S_1002'AND  sid !='S_1003';
    SELECT * FROM stu WHERE sid NOT IN('s_1001','s_1002','s_1003'); 
    --  查询年龄为null的记录
    SELECT * FROM stu WHERE age IS NULL;
    --  查询年龄在20到40之间的学生记录
    SELECT * FROM stu WHERE age>=20 AND age<=40
    SELECT * FROM stu WHERE age BETWEEN 20 AND 40
    --  查询性别非男的学生记录
    SELECT * FROM stu WHERE gender != 'male'
    --  查询姓名不为null的学生记录
    SELECT * FROM stu WHERE sname IS NOT NULL;
    SELECT * FROM stu WHERE NOT sname IS NULL;
    --  查询姓名由5个字母构成的学生记录,一个_表示一个字母
    SELECT * FROM stu WHERE sname LIKE '_____'
    --  查询姓名由5个字母构成,并且第5个字母为“i”的学生记录,4个_+i
    SELECT * FROM stu WHERE sname LIKE '____i'
    --  查询姓名以“z”开头的学生记录
    SELECT * FROM stu WHERE sname LIKE 'z%'
    --  查询姓名中第2个字母为“i”的学生记录
    SELECT * FROM stu WHERE sname LIKE '_i%'
    --  查询姓名中包含“a”字母的学生记录
    SELECT * FROM stu WHERE sname LIKE '%a%'
    
    
    
    INSERT INTO stu VALUES('s_112','花花1',23,'male'),('s_113','花花2',23,'male');
    UPDATE stu SET sname = '虾米' WHERE sid = 's_112'
    DELETE FROM stu WHERE sid = 's_113'
  • 相关阅读:
    linux下执行python错误: bad interpreter: No such file or directory
    linux下修改默认python版本
    MySQL 远程连接配置的正确实现
    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 7
    通达信软件快捷键
    MT4快捷键
    vim快捷键
    Linux5.5下配置Centos的yum源
    ls命令结果中文件夹颜色(蓝色)的改变方法
    rest-framework之响应器(渲染器)
  • 原文地址:https://www.cnblogs.com/nastu/p/13815508.html
Copyright © 2011-2022 走看看