MySQL知识点整理

MySQL

  • 数据库认知
    • 数据库认知
      • 数据库:存放数据的仓库,本质是一个文件系统,将数据以特定的格式存储在一张张表中。
      • 特定:持久化存储
      • 功能:增删改查
  • 数据库管理系统
    • 简称DBMS,是一款用来管理、维护、建立数据库的软件。
    • 用户需要用数据库管理系统来完成数据库中存储在表中的数据
    • 常用数据库管理系统:MySQL,MariaDB,SQLite,redis,mongoDB IBM DB2等
  • MySQL的使用
    • 在DOS里登录MySQL
      • MySQL -uroot -p123456 (123456为数据库密码)
      • mysql -v 查看当前mysql版本号
    • 远程连接数据库
      • mysql -uroot -h(对方主机ip) -P3306 -p123456(123456为对方密码)
        • -u : 用户名
        • -h:host,对方主机ip
        • -P 端口,数据库端口为3306
        • -p 要连接数据库的密码
    • SQL语句
      • SQL语句的认知
        • 使用Java与数据库交互,必须用到数据库独有语言sql,它是数据库的代码
      • sql语句的分类
        • 数据库定义语言(DDL),定义数据库对象
        • 数据库操作语言(DML),对数据库中表的记录进行更新
        • 数据控制语言(DCL),定义数据库的访问权限和安全级别以及创建用户
        • 数据查询语言:(DQL),用来查询数据库中标的记录
      • sql语句的语法规范
        • 可单行,多行书写,以分号结尾
        • 使用空格缩进增强代码的可读性
        • 关键字不区分大小写(大小写不敏感),但自定义的标识符要严格区分
        • /* */,多行注释; #和-- 单行注释
  • SQLyog的使用
    • 在询问里写数据库代码

    • ctrl + 滚轮来调节字体大小

    • 选中要执行的sql 语句,点击执行,快捷键F9.

    • 数据定义语言:DDL

    • 数据库操作:

      • 显示所有数据库 :show databases;
      • 创建数据库 :create database 数据库名 ;
        • 右键刷新,显示最新数据库
      • 查看当前使用数据库的版本号 :select version();
      • 使用(切换)数据库 :use 数据库名 ;
      • 查看当前数据库中所有的表 : show tables;
      • 在当前数据库中查看其它数据库的表 : show tables from 其它数据库名称;
    • 查看当前正在使用的数据库 : select database();

      • 查看创建数据库的建表语句信息 : show create database 表名;
      • 创建数据库时,指定数据库的编码集 : create database 数据库名 default charset 编码方式;
        • 如果没有指定字符集,则会使用创建mysql服务时设置的默认编码集
      • 删除数据库 :drop database 数据库名;
    • 表操作

      • 表的创建:create table 表名(

        字段名1 字段类型1 约束1,

        字段名2 字段类型1 约束2,

        字段名3 字段类型3 约束3,

        字段名n 字段类型n 约束n

        • 最后一个字段数据不用加逗号

        )

        • sql中常用的数据类型

          • 整数 : int
          • 字符 : varchar(字符的长度)
          • 小数 : double
          • date : 日期
        • 创建表之前先检查表是否存在,不存在再创建,并设置编码格式为gbk;

          • create table if not exists 表名(

            表内容

            )default charset gbk;

      • 查看表的结构,也就是表的字段: desc 表名;

        • field 字段 表头的名称
        • type 字段的类型
      • 查看建表语句 :show create table 表名;

      • 删除表 :drop table 表名;

      • 在表中增加一个字段 :alter table 表名 add 字段 字段类型 字段约束;

      • 修改现有字段的字段类型 :alter table 表名 modify 字段名称 新类型 新约束;

      • 修改现有字段的字段名称 :alter table 表名 change 旧列名 新列名 新类型;

      • 删除表中的一个字段 :alter table 表名 drop 字段名;

      • 修改表的名称 :rename table 旧表名 to 新表名; //数据库名称无法修改

      • 修改表的默认编码集 :alter table 表名 charset 编码名称 ;

    • DML : 数据操作语言,对数据库中的表进行操作

      • 表数据的增加

        • inset into 表名 (字段1,字段2,字段3,.... ) values(字段值1,字段值2,字段值3,.....);
          • 注意事项 :
            • 传值时,传入数值的顺序要和字段的顺序一致
            • 传值时,传入的数值类型要和对应字段的数据类型一致
            • 传值时,除了数值类型以外,其他类型都需要引号包括,单双引号都可以
            • 传值时,给某一字段传入空值
              • 直接不写该字段
              • 给字段传入 null
      • 一次给数据库中传入多条数据:

        • inset into 表名 (字段1,字段2,字段3,...)

          value

          ​ (字段值1,字段值2,字段值3,..),

          ​ (字段值1,字段值2,字段值3,..),

          ​ (字段值1,字段值2,字段值3,..);

      • 表数据的删除

        • 删除一条记录 :delete from 表名 where 限定条件;
        • 删除多条记录:用 or 拼接在where后的限定条件;
        • 逐条删除全部记录:
          • delete from 表名;
          • truncate table 表名;
            • truncate:截断,删除
          • ==delete 与 truncate 的区别==
            • ==delete 删除数据时是逐条删除==
            • ==truncate是直接删除整个表,相当于 drop table 表名; 然后新建一个新表==
            • 数据量较大时,使用truncate效率较高.
      • 表数据的修改

        • update 表名 set 要修改的字段="修改后的字段值" 后一般增加限定条件 where
          • 如果不加限定字段,会将整列结果设置为指定值
          • 修改多条记录可用or链接
    • DQL:数据库查询语言,从数据的表中查找记录. Q querry 查询.

      • select 字段1,字段2,字段3,.... from 表名 where 限定条件
        • select * from 表名
          • 查询表中所有数据
        • 给查询字段起别名 as
          • select 字段 AS 给该字段起的别名 from 表名
          • 查询结果为源数据查询到的结果拼接而成,是临时的视图,并不是真实存在的.
          • as可以省略,但是需要在字段和别名见加一个空格
        • 去除重复数据 distinct
          • select distinct 要去重的字段 from 表名;
          • 对多个字段去重,去重时,去重的效果是多个字段拼接以后再去重.
            • select distinct 要去重的字段1,要去重的字段2 from 表名;
          • distinct 要写在所有字段的前面.
        • if null 如果是空,用指定值替换.
          • 在sql中,数值+数值可以正常运算.数值+字符串如果字符串可以转换为数值,则可以正常运算,如果不可以转换为数值,则为原来的数值.
          • if null(字段,0);如果字段为空,用0替换
        • 拼接字符串 concat("字符串","字段")
          • select concat("我的姓名是","sname") from 表名;
        • 使用限定的逻辑表达 与 and, 或 or, 非 not ; 大于 > ,小于 < ,等于 =,不等于 <>;
        • 和null比较的两种方法
          • <=> null; 是null
          • is null; 是null
          • is not null ;不是null
        • and
          • select * from emp where sal >10000 and sal < = 20000;
          • select * from emp where sal ==between== 10000 and 20000 between包含10000和20000
        • or
          • select * from emp where eid =10 or eid = 20;
          • select * from emp where eid in (10,20) ;
        • not
          • select * from emp where comm not null ;
        • like,模糊查询,
          • %任意个数 0-n;
          • _一个;
          • select * from 表名 like "张%";查找姓张的所有人
          • select * from 表名 like "张_"查找出姓张名字为一个字的人
          • select * from 表名 like "%一%"查找出名字中所有带有一的人
      • 限定条件
        • where
          • where 某字段(列名)=该字段的值(列值),以该字段值为条件限定
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351