数据库

1.数据库的定义:

数据库就是用来存储和管理数据的仓库!

数据库的优点:
  • 可存储大量数据;

  • 方便检索;

  • 保持数据的一致性、完整性;

  • 安全,可共享;

  • 通过组合分析,可产生新数据。

2.数据库分类*(重点面试题)
  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

3.DDL数据定义语言

        DDL(数据定义语言):CREATE DROP ALTER

--数据库的创建 CREATE DATABASE [IF NOT EXISTS] 数据库名称 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则字符集];

--删除数据库 DROP DATABASE [IF EXISTS] 数据库名称;

--修改数据库 ALTER DATABASE 数据库名称 CHARACTER SET utf8

--查看表数据: SHOW 表名

--查看表结构: DESC 表名

4.数据表定义

-数据类型

非空约束NOT NULL
主键约束PRIMARY KEY
自增列AUTO_INCREMENT (默认1,增量1)
默认约束DEFAULT
检查约束CHECK
唯一约束UNIQUE KEY
外键约束FOREIGN KEY

-创建表 CREATE TABLE [IF NOT EXISTS] 表名( 字段名 数据类型 约束 , 字段名 数据类型 约束 , 字段名 数据类型 约束 , ... 字段名 数据类型 约束 );

-删除表 DROP TABLE [IF EXISTS] 表名;

  • 不能删除外键约束 TURNCATE 表名;

5.DML数据操作语言

        DML(数据操作语言):主要进行插入元组、删除元组、修改元组的操作。主要由insert(主要用于插入数据库插入数据插入一行或者多行数据)、update(用于数据库修改数据更改表中的现有数据)、delete(删除数据从表中删除一行或者多行数据) 语法组成。

6.DQL数据库查询语言
        6.1.DQL(数据库查询语言):用来进行数据库中数据的查询的select语句。

   SELECT  字段列表    FROM    表名  
​
    [where  +   条件语句]
​
    [GROUP   BY     +   字段]
​
    [HAVING     分组条件]
        6.2.WHERE和HAVING区别

               WHERE条件是筛选分组的之前的数据,后不能使用聚合函数

               HAVING条件是筛选分组后的数据,支持使用聚合函数

                聚合函数:1>.COUNT() 统计函数

                                  2>.SUM() 求和函数

                                  3>.MAX() 求最大值函数

                                  4>.MIN() 求最小值函数

                                  5>.AVG() 求平均值函数

        6.3多表查询

                                a.子查询

                                b.复合查询

          c.内连接:

INNER JOIN ....... ON .......

         d.外连接:

[LEFT|RIGHT] JOIN ....... ON .......

~ 注意:内连接和外连接的区别 内连接只要有一张表的所有数据是NULL,则查结果不显示。 外连接如果有一张表的所有数据是NULL,则取决主从表的关系。

        6.4查询函数

        -数值型

        -字符串型

        -日期型

7.DCL数据控制语言

        DCL(数据控制语言):用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。

8.Mysql高级

-视图

        视图与数据表的区别:数据表(保存数据+数据字段信息)(真实存在的表)、 视图(虚拟表+查询逻辑)

        1>视图创建

CREATE [OR REPLACE] VIEW 视图名称 AS SELECT .......

        2>删除视图

DROP VIEW 视图名称,视图名称 ......

        3>查询视图

SELECT * FROM 视图名称

        4>修改视图

ALTER VIEW 视图名称 AS SELECT ......

        5>CASCADED级联与LOCAL本地

CASCADED不仅会检查v2,还会级联检查v2关联的v1.

LOCAL只会检查v2,不会检查v2关联的视图v1.

-存储过程

1)定义存储过程
    CREATE PROCEDURE 存储过程名称 ([ IN/OUT/INOUT 参数名 参数类型 ]) 
  BEGIN
	-- SQL语句 
   END ;
2)存储过程删除
DROP PROCEDURE IF EXISTS 存储过程名称;
3)存储过程调用
CALL 存储过程名称;
4)查看存储过程
SHOW CREATE PROCEDURE 存储过程名称;
-变量定义和使用

1).系统变量

#查看所有系统变量 SHOW [ SESSION | GLOBAL ] VARIABLES ;

#可以通过LIKE模糊匹配方 式查找变量 SHOW [ SESSION | GLOBAL ] VARIABLES LIKE '......';

#查看指定变量的值 SELECT @@[SESSION | GLOBAL] 系统变量名;

A. 全局变量(GLOBAL): 全局变量针对于所有的会话。 B. 会话变量(SESSION): 会话变量针对于单个会话,在另外一个会话窗口就不生效了。

2).设置变量

SET [ SESSION | GLOBAL ].系统变量名 = 值 ;

SET @@[SESSION | GLOBAL].系统变量名 = 值 ;

3).用户自定义变量

->定义变量

SET @var_name = expr [, @var_name = expr] ... ; 
SET @var_name := expr [, @var_name := expr] ... ;

->变量查询

SELECT 字段名 INTO @var_name FROM 表名;

->使用变量

SELECT @var_name ;

4).局部变量

->局部变量的定义

DECLARE 变量名 变量类型 [DEFAULT ... ] ;

变量类型就是数据库字段类型:INT、BIGINT、CHAR、VARCHAR、DATE、TIME等

->变量赋值

SET 变量名 = 值 ; SET 变量名 := 值 ; SELECT 字段名 INTO 变量名 FROM 表名 ... ;

 

-索引

数据库索引是为了提高查询速度而对表字段附加的一种标识。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值