Mysql基础

Mysql基础和Sql结构化语言


Mysql
什么是Mysql
  1. Mysql是一个开放的、快速的、多线程的、多用户的,支持多种API的,可以实现跨数据库连接的、国际化的、拥有巨大体积的关系型数据库管理系统

  2. Mysql的工作模式是基于客户机/服务器结构的。

Sql结构化查询语言
  • 在这里插入图片描述

  • DDL 数据定义语言(create创建 ,alter修改 ,drop删除,truncate删除表中所有行)

    1.TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少
    2.DELETE 语句每次删除一行,会在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 则是通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
    3.TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
    4.对于由 外键约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

  • DDL的基本语法:

    • create table 表名(字段名 字段类型 是否非空 是否为主键, 字段名 字段类型 是否非空…);
      • 注意的是字段和字段之间要用,分开,而且只能声明一个主键,最后声明的字段不用加,但是一定要在所有的语句结束完的右括号加;
    • alter系列
      • 修改字段的类型 alter table 表名 modify(字段名 要修改的字段类型(修改内容));
      • 修改字段的名称 alter table 表名 rename column 原有字段名称 to 新的字段名称;
      • 增加一个字段列 alter table 表名 add(新增的字段名 新增的字段类型(新增字段内容));
    • drop系列
      • 删除一个字段列 alter table 表名 drop column 要删除的字段列;
      • 将数据表重命名 alter table 表名 rename to 新表名;
      • 删除已存在的表 drop table 要删除的表名;

  • DCL 数据控制语言
    • 数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。
    • 主要由 GRANT 和 REVOKE 两个指令组成。DCL以控制用户的访问权限为主,GRANT为授权语句,对应的REVOKE是撤销授权语句。
    • 系统权限:是在数据库中执行某种特定操作的权利,系统权限并不针对某个特定的对象,而是针对整个数据库范围。常用的系统权限有:
      • CREATE SESSION 连接到数据库上
      • CREATE SEQUENCE 创建序列,序列是一系列数字,通常用来自动填充主键列
      • CREATE SYNONYM 创建同名对象
      • CREATE TABLE   创建表
      • CREATE ANY TABLE 在任何模式中创建表
      • DROP TABLE 删除表
      • DROP ANY TABLE 删除任何模式中的表
      • CREATE PROCEDURE 创建存储过程
      • EXECUTE ANY PROCEDURE 执行任何模式中的存储过程
      • CREATE USER 创建用户
      • DROP USER    删除用户
      • CREATE VIEW 创建视图
    • 对象权限:是针对特定的模式对象执行操作的权利,只能针对模式对象来设置和管理对象权限,这些对象包括表、视图、存储过程等,常用的对象权限有:
      • SELECT 允许执行查询操作
      • INSERT 允许执行插入操作
      • UPDATE 允许执行修改操作
      • DELETE 允许执行删除操作
      • EXECUTE 语序执行存储过程
  • DCL的基本语法:
    • 创建用户 create user 新创建用户名 identified by 已有用户名;
    • 给用户分配权限 grant create session,create user,create table to 新创建用户名;
    • 查看当前用户下对应的系统权限和对象权限 select * from user_sys_privs; select * from user_tab_privs;

  • TCL 事务控制语言
    • 事务是用于确保数据的一致性,由一组相关的DML组成的,该组DML的操作要么全确认,要么全取消。事务控制就是指对关系型数据库管理系统(RDBMS)里可能发生的各种事务的管理能力。
    • 事务由隐式事务和显示事务之分,区别在于有没有显式的事务开启和结束的标记,默认的DML语句都是会自动提交的,而且事务一旦提交是不能够进行回滚的,这跟数据库的autocommit属性的设置有关,默认情况下都是自动提交的,我们可以通过show variables;查看数据库的属性设置
  • TCL的基本语法
    • COMMIT 提交
    • SAVEPOINT 保存点
    • ROLLBACK 回滚
    • SET TRANSACTION 设置当前事务的特性,他对后面的事务没有影响
  • TCL的具体应用
    • 隐式事务举例 delete from 表名 where id =1;
    • 显示事务(在开启显示事务之前一定要关闭事务的自动提交) set autocommit=0; delete form 表明 where id=1; commit;

  • DQL数据查询语言
    • 数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块
  • DQL常用的字段有
    • SELECT [要提取的字段,或是用"*"代表全部的字段]
    • FROM [要提取的数据来源对象,包含数据表,视图表等] – 可搭配JOIN做连接。
    • WHERE [提取的查询條件] – WHERE可有可無。
    • GROUP BY [要做聚合的分组字段] – GROUP BY在使用聚合指令時必须要有。
    • HAVING [要做为条件的聚合字段] – 要使用聚合函数作为条件时使用
    • ORDER BY [要排序的字段和方向] – ORDER BY可有可无,若沒有则是按照查询引擎的输出顺序为主

  • DML 数据操纵语言
    • 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。
    • INSERT语句:利用INSERT语句可以向表中快速的添加数据 insert into 表(字段名1,字段名2) VALUE (表达式1,表达式2……)
    • UPDATE语句:利用UPDATE语句可以一次修改一行,也可以修改多行 update 表名称 set 字段名称=表达式1,字段名称=表达式2 where 条件;(UPDATE语句通过SET子句为制定字段指定新值,将字段值修改为指定的表达式)
    • DELETE语句:默认情况下,DELETE语句可以不使用WHERE子句,这个时候将删除表中的所有行。如果希望只删除表中的一部分数据,则需要通过WHERE指定条件 delete from 表名 where 条件;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值