MySQL--学习笔记

1:连接mysql的三种方式:

  1.通过mysql客户端连接服务器;

  2.通过cmd命令行的形式;

  3.通过第三方工具,例如navicat。

2:数据库只是框架,数据表才是实质性内容。

3.含有业务逻辑意义的字段不适合设为主键。

4:唯一约束与主键约束的区别?

  与主键约束相比,唯一约束也用于确保列中不存在重复值,但其列值可以为空(NULL)

  主键用于识别每一条记录唯一约束用于保证某条字段的唯一性

  主键定义主键约束,索引定义唯一约束(unique唯一的)

  域完整性由非空约束和默认值约束实现

  实体完整性由主键约束和唯一约束实现。

5:参照完整性:由外键与另外一张表的主键相连。

    四个基本术语:主表,从表,参照列,被参照列

 主表:被参照的表。

6:DDL和DML(DDL是针对表结构,DML是针对数据)

  DML(Data Manipulation Language)数据操作语言-数据库的基本操作,SQL中处理数据等操作统称为数据操纵语言,简而言之就是实现了基本的“增删改查”操作。包括的关键字有:select、update、delete、insert、merge

  DDL(Data Definition Language)数据定义语言-用于定义和管理 SQL 数据库中的所有对象的语言,对数据库中的某些对象(例如,database,table)进行管理。包括的关键字有:

create、alter、drop、truncate、comment、grant、revoke

  1.DML操作是可以手动控制事务的开启、提交和回滚的。

  2.DDL操作是隐性提交的,不能rollback

7:删除被从表引用的主表记录时需要设置为set null,删除时从表关联的记录为null,如果选择为cascade则会级联删除。

8:distinct关键字,选择列可以为表达式:删除重复项。

  判断字段值是否为空只能用 is null 而不能用 = (有字符的意思),

9:运算符

  算数运算符,比较运算符,逻辑运算符(or and not)

10:定制显示查询结果的关键字

  order by     limit:num_start,num(也可以省略num_start)

11:排序可以按照多列排序,即在优先列相等的情况下对第二列排序

12:模糊查询(like)---区间,范围查询。

  通配符%可以匹配0或多个任意字符, _ 只匹配一个字符。

  运算符:in 和between and

13:mysql函数

  1.数学函数:ceil ,floor,随机函数rand(),round函数

  2.控制流函数:if,ifnull

  3.字符函数:

    计算字符串长度:char_length(str)

    字符串的替换函数:

      insert(str,pos,len,new_str)一次只能替换一次,

      replace(str,from_str,to_str):一次可以替换多个相同的字符串

      substr(str,pos,len):截取子字符串。

  4.日期时间函数

      curdate:当前日期

      now:当前时间

      格式化时间:date format

  5.系统信息函数和加密函数

      version():显示版本信息

      database()

      user()

      charset()

      加密:md5(str)

  6:聚合函数(聚合函数一般与group by联合使用,聚合函数会忽略空值)

    求和:SUM(column)

    AVG(column)

    MAX(column)

    COUNT(*/column):统计column不为空的数量

    group by

    order by

使用where可以过滤数据

  7:多字段分组和having字句

where与having的区别:        

  都是过滤,where在分组前过滤,having在group by分组后过滤

  8.分组查询和聚合查询一般需要联合使用

14:内连接:(只出现满足匹配条件的记录) 将两张表匹配相同的部分从新组成新表。

  语法:from 表1  [inner] join  表2  on(连接条件).....表1.字段1 = 表2.字段2 [where 条件表达式] 字段1和字段2分别为相连两表的主键和外键 

 笛卡尔集:交叉连接,叉乘 cross join  

  join:是完全匹配操作

  多表连接采用两两连接的方式

  简单多表连接查询的方法:在from子句中直接列出所有要连接的表,不同的表用逗号隔开,然后在where子句中指定连接条件

15:外连接(不满足连接条件的记录出现在查询结果中)   

  左外连接:(from ... left join ...on...)结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件,来源于右表的列值为null

  右外连接

16:设计数据库的重点是转化为物理设计模型。

17:MYSQL编程

  1.(set赋值)变量赋值的两种方法

    set @ 变量 = '  '

    1.2:显示变量结果:select @变量

  2.(select赋值)使用select用法只对一个变量赋值:select 表达式 from 表 into  @变量

         使用select对多个变量赋值:select 表达式1 into  @变量1 , 表达式2 into @变量2 from 表

  3.重置命令标识符(delimiter $$,将分号更改为$$)

    概念:每天mysql表达式都使用 '; '作为结束标识,由于begin-end语句块中的多条mysql表达式密不可分,避免这些表达式被拆开,需要重置命令结束标识符。

    将几个独立语句作为一个整体来执行

18:游标本质是一种能从select结果集中每次提取一条记录的机制,因此游标与select语句息息相关;

 19:DB与DBMS,SQL的区别

  db:database,数据库,实际在硬盘上以文件的形式存在

  dbms:数据库管理系统,常见的有mysql,Oracle,mongodb等等。

  sql:结构化查询语言,标准的的sql适合于所有的数据库产品;sql语句的编译有dbms完成。

  dbms负责执行sql语句,通过执行sql语句来操作db中的数据。

20.事务

  事务是由用户所定义的完整的工作单元,一个事务内的所有语句作为一个整体来执行。表现特征为:全部执行成功,或者全部不执行。

21.in与between and的区别

  

BETWEEN … AND … Number is within range of two values (inclusive) 在两个数之间 col_name BETWEEN 1.5 AND 10.5
IN (…) Number exists in a list 在一个列表 col_name IN (2, 4, 6)

 22.

LIKE Case insensitive exact string comparison 没有用通配符等价于 = col_name LIKE "ABC"

23.order by 排序

  DISTINCT 关键字来指定某个或某些属性列唯一返回,主要目的是去重。

posted on 2021-06-03 10:09  看不见的风  阅读(63)  评论(0)    收藏  举报

导航