MySQL基础知识总结

SQL语言分类

  1. DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性
    • INSERT:添加数据到数据库中
    • UPDATE:修改数据库中的数据
    • DELETE:删除数据库中的数据
    • SELECT:选择(查询)数据 (SELECT是SQL语言的基础,最为重要。)
  2. DDL(Data Definition Language):数据定义语句,用于库和表的创建、修改、删除。
    • CREATE TABLE:创建数据库表
    • ALTER TABLE:更改表结构、添加、删除、修改列长度
    • DROP TABLE:删除表
    • CREATE INDEX:在表上建立索引
    • DROP INDEX:删除索引
  3. DCL(Data Control Language):数据控制语句,用于定义用户的访问权限和安全级别。
    • GRANT:授予访问权限
    • REVOKE:撤销访问权限
    • COMMIT:提交事务处理
    • ROLLBACK:事务处理回退
    • SAVEPOINT:设置保存点
    • LOCK:对数据库的特定部分进行锁定

MySQL语法规范

  1. 进入 mysql, 在命令行中输入: mysql –uroot –p#### (其中:####表示密码)
  2. 查看 mysql 中有哪些个数据库: show databases;
  3. 使用一个数据库: use 数据库名称;
  4. 新建一个数据库: create database 数据库名;
  5. 查看指定的数据库中有哪些数据表: show tables;
  6. 建表
create table customer(
	id varchar(30),
	age int,
	name varchar(30),
	birthday date
);
  1. 查看表的结构:desc 表名;
  2. 删除表: drop table 表名;
  3. 查看表中的所有记录: select * from 表名;
  4. 向表中插入记录:insert into 表名(列名列表) values(列对应的值的列表);
insert into customer(id,name,age,email,birthday) values('10002','Jerry',22,'jerry@aa.com','2000-02-12');
  1. 注意:插入 varchar 或 date 型的数据要用单引号引起来
  2. 修改记录: update 表名 set 列1 = 列1的值, 列2 = 列2的值 where …
update customer set age=22,birthday='1988-03-05' where id='10002';
  1. 删除记录: delete from 表名 where ….
delete from customer  where id='10001'
  1. 查询所有列: select * from 表名;
  2. 查询特定的列: select 列名1,列名2, … from 表名
select id,name from customer;
  1. 对查询的数据进行过滤:使用 where 子句
select id,name,age from customer where age > 21;
  1. 运算符:
-- 查找salary>=2000且salary<=2000
(1) select * from customer where salary >= 2000 and salary <= 3000;
    select * from customer where salary between 2000 and 3000;
-- 查找salary=1000或salary=2000或salary=3000
(2) select * from customer where salary = 1000 or salary = 2000 or salary = 3000;
    select * from customer where salary in (1000,2000,3000);
-- 查询 name 中有 o 的人的名字
(3) select name from customer where name like '%o%';
-- 查询 name 中 第 3 个字母是 r 的人的名字
(4) select name from customer where name like '%__r%';
-- 查询 email 为 空 的所有人的信息
(5) select * from customer where email is null;
-- 查询 email 不为 空 的所有人的信息
(6) select * from customer where email is not null;
-- 查询所有客户信息, 且按 salary 升序排列
(7) select * from customer order by salary;
-- 查询所有客户信息, 且按 salary 降序排列
(8) select * from customer order by salary desc;
  1. 分组函数
    • AVG()
    • COUNT()
    • MAX()
    • MIN()
    • SUM()

不区分大小写
每句话用;或\g结尾
各子句一般分行写
关键字不能缩写也不能分行
用缩进提高语句的可读性

事务

事务定义

事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。

事务的ACID属性

  1. 原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  2. 一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。
  3. 隔离性(Isolation)事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
  4. 持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响

事务的使用

  1. 以第一个 DML 语句的执行作为开始
  2. 以下面的其中之一作为结束:  COMMIT 或 ROLLBACK 语句
    • DDL 或 DCL 语句(自动提交)
    • 用户会话正常结束
    • 系统异常终了

MySQL 中的存储引擎

  1. 概念:在mysql中的数据用各种不同的技术存储在文件(或内存)中。
  2. 通过show engines;来查看mysql支持的存储引擎。
  3. 在mysql中用的最多的存储引擎有:innodb,myisam ,memory 等。其中innodb支持事务,而myisam、memory等不支持事务。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值