zoukankan      html  css  js  c++  java
  • day42_MySql

    • mysql约束与设计

    DDL 操作数据库和表 drop alter create

    DML 增删改数据库表的记录 insert update delete

    DQL 查询表中记录 select

    DCL 管理用户与授权(grant操作)

    查询

    查询表中所有行与列的数据

    ​ select * from 表名

    查询指定列的数据

    ​ select 列名1,列名2,列名3,...from 表名

    查询时指定列的别名

    ​ 使用关键字as 好处:显示的时候指定新的名字,并不修改表的结构,方便多次查询

    ​ 对指定的列进行别名操作:select 列名1 as 新名,列名2 as 新名,列名3 as 新名 ...from表名

    ​ 对列和表同时进行别名草最:select 列名1 as 新名,列名2 as 新名,列名3 as 新名 ...from表名 as 新表名

    select 
    	s.age = 年龄
    	s.name = 姓名
    from
    	students  as  s
    关键字as类可以省略
    

    去除重复查询

    ​ 使用关键字:distinct 去掉重复记录

    ​ 语法格式:select distinct 字段名 from 表名;

    例如:

    查询本班同学来自哪个地方
    select distinct address from students;
    

    查询的结果值可以参与数据运算

    ​ 注意:能够参与数学运算的前提列的数据结构是Number

    条件查询

    ​ 查询的时候,有时候只想获取符合条件的结果值,并不是回去表中的所有记录

    ​ 语法: select 字段列表 from 表名 where 条件表达式

    ​ 结果值:符合条件记录的记录就会被返回,如果条件不符合,就不返回 (过滤)

    ​ 运算符:

    >、<、 >=、<= 、!=、 = <>(不等于)。,,没有' ==' 在sql中,不等于有两种表示方法
    between...and 表示具体的区间范围 [ ]
    in(具体范围) 里面放的是一个个数值,如果多个,逗号隔开
    like 模糊查询,根据关键字
    is nall 查询某一列为null的值,注意在sql不能这样表达
    is not null 查询某列不为null的值

    逻辑运算符

    ​ 与或非

    ​ && 、 ---> and

    ​ || 、 --->or

    ​ !

    在sql中建议使用单词来表示逻辑运算 and or

    在进行模糊查询的时候(like),通配符有两种表示方式:% 和 _

    % 匹配任意多个字符

    _匹配单个字符

    两者都需要注意书写的位置, 我们一般使用%作为通配符

    排序

    单列排序

    ​ 通过order by语句来实现排序,只是将查询出来的结果值进行排序,并不影响查询的结果,不进行条件过滤,影响的是显示的方式

    ​ 升序 asc

    ​ 降序 desc

    ​ 单列排序:根据表中的某个字段、某列进行排序

    ​ 如:

    -- 对查询出来的同学根据历史成绩降序排序
    select * from student as s order by s.history desc;
    select 字段列表 表名 where 条件 order by 字段 desc/asc;
    

    组合排序

    ​ 同时对表中的多个字段进行排序,如果前面的字段值相同,再根据后面的字段再次排序

    ​ select 字段列表 from 表名 where 条件列表 order by 字段1 desc/asc,字段名2 desc/asc;

    聚合函数

    ​ 求一个最大值 max

    ​ 求一个最小值 min

    ​ 求平均数 avg

    ​ 求总和 sum

    ​ 统计查询结果记录数 count

    使用count统计记录数的时候,如果count中填写的是表中的某个字段,如果某个条件中该字段为null,则该记录会被过滤掉

    ifnull(表达式1,表达式2)如果前面字段为null,后面的表达式2可以替换掉前面字段位null的表达式

    分组查询 group by

    select
    	字段列表
    from
    	表名列表
    where
    	分组之前的条件
    group by
    	分组字段
    having
    	分组之后的条件
    limit
    	分页限定条件
    

    概念 :使用group by 对查询的结果信息进行分组,相同的数据分成一组

    例如:

    ​ 将查询出来的结果内容,再按照其他条件进行分组

    having 和where的区别

    ​ where语句:将查询的结果分组前符合条件返回数据,不符合条件的过滤掉,即先过滤,where后不可以使用聚合函数(先过滤再分组)

    ​ having语句:在分组之后过滤数据,即后分组,having后可以使用聚合函数(先分组再过滤)

    分页查询

    ​ 使用关键字limit (mysql中的方言操作)

    ​ 作用:对查询的结果值进行分页展示,每次显示多少记录

    ​ 语法:limit 分页限定条件

    ​ 分页限定条件 --->起始值 展示的记录数 limit offset,length

    备注:

    >如果查询从第一条开始,起始值可以省略,如果查询最后几条,有几条显示几条,不会报分页错误。
    

    数据库的备份与还原

    • ​ 图形化界面工具 Navicat为例

    ​ 1.备份 转储sql文件 --->结构和数据--->存储到磁盘中

    ​ 2.还原 创建同名数据库 运行sql文件导入数据 刷新后还原成功

    • ​ Dos指令操作

      ​ 1.备份 :mysqldump -u用户名 -p密码 数据库名 >存储位置

      ​ 2.还原:登陆并创建同名数据库---> use 该数据库名--->source 跟备份路径

    数据库表的约束

    ​ 主键约束

    ​ 唯一约束

    ​ 非空约束

    ​ 外键约束

    ​ 默认约束

    对表中的数据进行限定,保证数据的有效性、完整性和正确性。一旦添加了约束,不正确的数据将无法正确添加,所以约束一般在创建表设定字段的时候添加

    主键约束

    ​ 主键:一般是用来唯一标识数据库表中的某一条记录,不能为空

    ​ 通常情况下 ,会给表添加一个id字段,用作唯一标识,设置为主键,主键一般是提供给数据库操作使用的(查询、修改、删除等),主键不能重复不能为空。

    ​ 比如:一个人的身份证号、手机号,学生学号,员工工号

    ​ 语法:使用关键字 primary key

    -- 非法数据插入
    INSERT INTO USER VALUES(6,'0007','656656','Alfred',110,'男',22);-- 无法插入
    INSERT INTO USER VALUES(null,'0007','656656','Alfred',110,'男',22);-- 无法插入
    INSERT INTO USER VALUES(7,'0007','656656','Alfred',110,'男',22);
    
    -- 删除主键
    alert TABLE USER DROP PRIMARY KEY; -- 删除主键
    alert TABLE USER add  PRIMARY KEY(id) -- 添加主键
    

    主键自增

    如果希望在添加表记录时,不设定表中主键值,系统会自动给主键添加自增值

    语法: auto_incremment 表示主键自增

    id int PRIMARY KEY auto_increment;
    

    修改自增起始值 alter table user auto increment = 起始值;

    唯一约束

    ​ 字段唯一、不允许重复 ,

    ​ 关键字 :unique

    ​ 语法 :字段名 字段数据类型 unique

    INSERT INTO role VALUES(NULL,'cto'); -- 可以插入   唯一
    INSERT INTO role VALUES(NULL,'cto'); -- 不能插入   违反唯一性
    

    备注:如果插入的是null,表明是没有数据的,不存在数据重复问题,可以重复插入

    非空约束

    ​ 记录中的字段不能为null

    ​ 语法:字段名 字段类型 not null

    默认约束

    ​ 当没有给该字段赋值,系统会赋上一个指定的默认值

    ​ 语法: 字段名 字段数据类型 default 默认值

    备注:如果给表中的某个字段既添加了非空约束又添加了非空约束,那么该字段是不是主键呢?

    一般情况下一张表只有一个主键

    外键约束
    • ​ 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)
    • ​ FOREIGN KEY 约束用于预防破坏表之间连接的行为。
    • ​ FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一

    ​ 语法:FOREIGN KEY (字段名) REFERENCES 其他表表名(其他表字段名)

  • 相关阅读:
    IOS总结_无需自己定义UITabbar也可改变UITabbarController的背景和点击和的颜色
    破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV
    HDUJ 2074 叠筐 模拟
    CSRF——攻击与防御
    Ant命令行操作
    C#软件开发实例.私人订制自己的屏幕截图工具(七)加入放大镜的功能
    qemu-kvm-1.1.0源代码中关于迁移的代码分析
    FileSystemWatcher使用方法具体解释
    configure交叉编译
    海量图片存储策略
  • 原文地址:https://www.cnblogs.com/mitoris/p/14231848.html
Copyright © 2011-2022 走看看