数据库

  1. 概念:

    按照数据结构来组织、管理、存放数据的库

    数据库=表+表之间的关系

  2. 常见数据库

    MySQL、Oracle、MongoDB、SQLServer、Redis、Sqlite

  3. 数据库与SQL的关系

    数据库是用来存放数据的,SQL语句用来操作数据库的数据

  4. MySQL

    1. 卸载:关闭服务、卸载软件MySQL、删除安装MySQL路径剩余的文件、ProgramData的MySQL文件删除
    2. 安装:双击 → ... → 安装类型(Custom)→ 修改安装路径 → finish
    3. 配置
    4. 关闭开启服务
    5. 登录:mysql -u root -p123
    6. 退出:exitctrl+c
  5. SQL语句

    1. DDL:数据库定义语言

      # 库
      create database 库名;
      show databases;
      use 库名;
      drop database 库名;
      show create database 库名;
      
      # 表
      show tables;
      show tables from 其他库名;
      create table 表名(
          id int primary key auto_increment,
          name varchar(20) unique not null,
          salary float(6,2),
          birthday date
        );
      desc 表名;
      drop table 表名;
      
      # 如果插入中文
      # 通知服务器客户端使用的编码是gbk
      set character_set_client=gbk;
      
      # 通知服务器客户端查看结果集使用的编码是 gbk
      set character_set_results=gbk;
      
      # 如果中文对不齐或乱码
      charset gbk;
      

      面试题:delete和truncate的区别?

    2. DML:数据库操作语言

      insert into 表名 values(1,'anfly',1.22,'1991-01-01');
      insert into 表名(id,name) vlaues(2,'bigfly');
      
      delete from 表名 [where 条件];
      truncate table 表名;
      update 表名 set name="",salery="" where 条件;
      
    3. DQL:数据库查询语言

      # 查
      select */name from 表名 [where id!><=1];
      # 并列、别名、修改数据
      select name as 姓名 , (math+chinese) as 数语和,(math10) as 数学加10 from 表名;
      # 条件合并
      select * from student where (math+english+chinese)>230;
      # 范围:between a and b,a和b都包含
      select * from 表名 where math between 80 and 90;
      # 条件并列:and
      select * from 表名 where math > 80 and chinese > 90;
      # 匹配枚举值:in
      select * from 表名 where math in(10,20,30);
      # 模糊查询:like,"_"代表一个字符,"%"代表(0,∞)
      select * from 表名 where name like '_%';
      
      # 聚合函数
      max
      count
      min
      sum
      avg
      
      # 分组
      select sex,count(*) from 表名 group by sex;
      
      # 分页查询
      select * from 表名 limit 2,5;
      
      # 排序
      select * from 表名 order by math asc/desc limit2,5;
      
    4. DCL:数据库控制语言

  6. 多表设计

    1. 一对一、一对多、多对多

      # 外键
      create table t(id int primary key,name varchar(100));
      create table s (id int primary key,name varchar(100));
      create table ts(t_id int,s_id int,constraint foreign key(t_id) references t(id),constraint foreign key(s_id) references s(id));
      
      # 李老师所有学生
      select * from s where id in(select s_id from ts where t_id=(select id from t where name = '李老师'));
      
      # 张三的所有老师
      select * from t where id in(select t_id from ts where s_id=(select id from s where name = '张三'));
      
    2. 多表联查

      1. 交叉查询

        # AB表
        select * from A,B;
        select * from A cross join B;
        
      2. 内连接查询

        select * from A inner join B on A.id=B.id;
        select * from A , B where A.id=B.id;
        
      3. 外连接查询

        # 左外
        select * from A left join B on A.id=B.id;
        
        # 右外
        select * from A right join B on A.id=B.id;
        

        面试题:左外和右外的区别?

  7. Navicat

    1. 下载、安装、破解

    2. 操作

      连接数据库、建库、删库、建表、删表、插入数据、删除数据、导出、导入

  8. 数据库优化

    索引优化

  9. 数据库性能检测工具

    explain

  10. 数据库视图

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

推荐阅读更多精彩内容

  • 引入 : 数据保存的三种方式 数据保存到内存:优点:读写非常快缺点:程序关闭导致数据丢失 数据保存到文件:优点:数...
    奋斗的老王阅读 919评论 0 50
  • /*CREATE TABLE student3 (id int, -- 编号name varchar(20), ...
    小灰灰爱学习阅读 584评论 0 0
  • 1. 为什么软件测试工程师还需要学习数据库以及开发方面的知识? 测试工程师的目的是找出软件的不足,并告诉开发工程师...
    睿智的少年阅读 584评论 0 0
  • 一、数据库概述 1.为什么软件测试工程师还需要学习数据库以及开发方面的知识? ●测试工程师在测试软件过程中,不仅仅...
    AYang阅读 261评论 0 0
  • 数据库对于后端开发来说是必不可少所要用到的,而MySQL数据库是其中的主流之一,在中小型公司中使用的较为广泛,作为...
    Steven_SHH阅读 1,459评论 0 2