MySQL 数据库(分享软件测试需要掌握的知识点)


*   数据库类型
    *   关系型数据库
        *   Mysql, Oracle, DB2
    *   非关系型数据库
        *   MongoDB
    *   大数据
        *   Hive

*   连上Mysql的2种方式:
    *   1、命令行
        *   C:\xampp\mysql\bin 下,shift + 右键, 进入命令行
        *   mysql -u root -p
            *   show databases;
                *   查看有哪些数据库

            *   use ranzhi;
                *   使用 ranzhi 数据库

            *   show tables;
                *   查看 ranzhi 数据库下有哪些表

            *   desc sys_user;
                *   查看表 sys_user 的结构
                    *   Field 字段名称
                    *   Type 字段类型
                        *   char(30) 表示的是:字符串类型,最大长度为30
                    *   Null 是否允许为空
                    *   Key 标明是否为主键,唯一键之类的
                        *   主键只能唯一,不能重复
                    *   Default 是否有默认值

            *   查询页面‘成员列表’所有的数据
                *   select * from sys_user ;

        *   Mysql数据库构成:
            *   数据库 (ranzhi )
            *   表(59张表,sys_user)
            *   表下面是字段(id,account)
            *   写法:
                *   [ranzhi.sys_user.id](http://ranzhi.sys_user.id/)# 数据库名称.表名.字段名
                *   select [ranzhi.sys_user.id](http://ranzhi.sys_user.id/)from ranzhi.sys_user ;
                    *   use ranzhi;
                    *   select id from sys_user;
    *   2、可视化工具
        *   SQLYog / Navicate / DBeaver
            *   安装SQLYog
                *   根据自己电脑32/64位,选择对应版本
                    *   查看32/64位:右键“我的电脑”-属性
            *   SQLYog连Mysql
                *   root@localhost
                *   连接本机: 主机名: localhost
                *   连接他人的:主机名:他人的 ip

*   结合 ranzhi 项目,理解SQL语句
    *   MySQL: 增删改查

        ![image](http://upload-images.jianshu.io/upload_images/10517060-f09487a5785a8d11.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    *   /*
    *   这是多行注释
    *   insert into sys_user(id,account,realname,role)
    *   value ('34','laoniu','老刘','sale') ;
    *   */

    *   -- 插入
    *   INSERT INTO sys_user(id,account,realname,role)
    *   VALUE ('34','laoniu','老刘','sale') ;

    *   -- 查询 SQL
    *   -- select 后面跟的是字段名称(列名),比如id,account; * 代表的是所有字段
    *   -- from 后面跟的是表名
    *   SELECT *
    *   FROM sys_user ;

    *   -- 查询 然之成员列表页面中,所有的“编号”和“用户名”
    *   SELECT id,account
    *   FROM sys_user ;

    *   -- 查询 然之成员列表页面前2条记录
    *   SELECT *
    *   FROM sys_user
    *   LIMIT 2;

    *   -- 查询 然之成员列表页面第2条记录
    *   SELECT *
    *   FROM sys_user
    *   LIMIT 1,1;

    *   -- 查询 然之成员列表页面第3和第4条记录
    *   SELECT *
    *   FROM sys_user
    *   LIMIT 2,2;

    *   -- 查询 然之成员列表页面总的记录条数
    *   -- count()
    *   SELECT COUNT(*)
    *   FROM sys_user ;

    *   -- 查询 然之成员列表页面中,“编号”为1,并且“用户名”为'bbb'的记录
    *   -- where 后跟的是查询条件
    *   -- and 连接的多个条件,都要成立
    *   SELECT *
    *   FROM sys_user
    *   WHERE id = 1 AND account = 'bbb' ;

    *   -- 查询 然之“成员列表”页面中,“编号”为1,或者 “用户名”为'bbb'的记录
    *   SELECT *
    *   FROM sys_user
    *   WHERE id = 1 OR account = 'bbb' ;

    *   -- 然之“成员列表”页面中,按照“编号”降序排序的方式,显示所有的记录
    *   -- order by
    *   -- desc 降序
    *   -- asc 升序
    *   SELECT *
    *   FROM sys_user
    *   ORDER BY id DESC ;

    *   -- 然之“成员列表”页面中,按照“用户名”字符串升序排序的方式,显示所有的记录
    *   SELECT *
    *   FROM sys_user
    *   ORDER BY account ASC;

    *   -- 然之“成员列表”页面中,查询“编号”为1,2,3这3个数字的记录
    *   SELECT *
    *   FROM sys_user
    *   WHERE id = 1 OR id =2 OR id =3 ;

    *   SELECT *
    *   FROM sys_user
    *   WHERE id IN (1,2,3) ;

    *   -- not 不在某范围内
    *   SELECT *
    *   FROM sys_user
    *   WHERE id NOT IN (1,2,3) ;

    *   -- 然之“成员列表”页面中,查询“编号”大于1小于4的所有记录
    *   SELECT *
    *   FROM sys_user
    *   WHERE id > 1 AND id < 4 ;

    *   -- 然之“成员列表”页面中,查询“编号”在2和4之间的所有记录
    *   -- between .. and ...
    *   SELECT *
    *   FROM sys_user
    *   WHERE id BETWEEN 2 AND 4 ;

    *   -- 然之“成员列表”页面中,查询“真实姓名”姓“张”的所有记录
    *   -- 模糊查询 like
    *   -- % 所有,任意的,随便多少个
    *   SELECT *
    *   FROM sys_user
    *   WHERE realname LIKE '张%' ;

    *   -- 然之“成员列表”页面中,查询“编号”不是“1”的所有记录
    *   -- <> 不等于
    *   SELECT *
    *   FROM sys_user
    *   WHERE id <> 1 ;

    *   -- 然之“成员列表”页面中,查询“真实姓名”不是姓“张”的所有记录
    *   SELECT *
    *   FROM sys_user
    *   WHERE realname NOT LIKE '张%' ;

    *   -- 然之“成员列表”页面中,查询“role”为"sale"的有几个人
    *   SELECT COUNT(*)
    *   FROM sys_user
    *   WHERE role = 'sale' ;

    *   -- 然之“成员列表”页面中,查询每个"role"分别有几个人
    *   -- group by 分组
    *   SELECT role,COUNT(*)
    *   FROM sys_user
    *   GROUP BY role  ;

    *   -- 几个常用的函数
    *   -- count() 统计
    *   -- max()
    *   -- 然之“成员列表”页面中,最大“编号”
    *   SELECT MAX(id)
    *   FROM sys_user ;

    *   -- 然之“成员列表”页面中,最小“编号”
    *   -- min()
    *   SELECT MIN(id)
    *   FROM sys_user ;

    *   -- 然之“成员列表”页面中,“编号”平均值
    *   -- avg()
    *   SELECT AVG(id)
    *   FROM sys_user ;

    *   -- 编写SQL语句:按照部门字符串倒序方式显示,查询每个部门的平均分数,
    *   -- 并且部门名称不包含‘sale’
    *   (方法1)
    *   SELECT dept_name,AVG(score)
    *   FROM b
    *   WHERE dept_name NOT LIKE '%sale%'
    *   GROUP BY dept_name
    *   ORDER BY dept_name DESC ;

    *   (方法2)
    *   SELECT dept_name,AVG(score)
    *   FROM b
    *   GROUP BY dept_name
    *   HAVING dept_name NOT LIKE '%sale%'
    *   ORDER BY dept_name DESC ;

    *   CREATE TABLE b(
    *   dept_name CHAR(30),
    *   employee_name CHAR(30),
    *   score INT(4)
    *   );

    *   INSERT INTO b VALUE('sales','ZhangSan','88') ;
    *   INSERT INTO b VALUE('sales','LiSi','79') ;
    *   INSERT INTO b VALUE('sales','WangWu','95') ;
    *   INSERT INTO b VALUE('Tech','ZhangSan2','68') ;
    *   INSERT INTO b VALUE('Tech','LiSi2','85') ;
    *   INSERT INTO b VALUE('Tech','WangWu2','66') ;
    *   INSERT INTO b VALUE('Market','ZhangSan3','77') ;
    *   INSERT INTO b VALUE('Market','LiSi3','59') ;
    *   INSERT INTO b VALUE('Market','WangWu3','92') ;

    *   SELECT * FROM b ;
    *   -- 清空表数据
    *   TRUNCATE b ;
    *   -- 多表查询
    *   /*
    *   c表
    *   id name
    *   1   zs
    *   2   ls
    *   3   ww
    *   create table c(
    *   id int(4),
    *   name char(10)
    *   );
    *   insert into c value('1','zs');
    *   insert into c value('2','ls');
    *   insert into c value('3','ww');
    *   select * from c;
    *   d表
    *   id English Math
    *   1   88       90
    *   2   47       98
    *   create table d(
    *   id int(4),
    *   English int(4),
    *   Math int(4)
    *   );
    *   insert into d value('1','88','90');
    *   insert into d value('2','47','98');
    *   select * from d;
    *   */
    *   -- 查询姓名为 zs 的学生的 English 成绩
    *   SELECT d.English
    *   FROM c,d
    *   WHERE c.id = d.id AND c.name = 'zs' ;

    *   -- 查询每个学生的总分
    *   SELECT c.name,(d.English + d.Math)
    *   FROM c,d
    *   WHERE c.id = d.id ;

    *   -- 左连接  left join
    *   SELECT c.name,(d.English + d.Math)
    *   FROM c LEFT JOIN d
    *   ON c.id = d.id ;

    *   -- 右连接  right join
    *   SELECT c.name,(d.English + d.Math)
    *   FROM d RIGHT JOIN c
    *   ON c.id = d.id ;
  


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容