MySQL基础语法速查
2023-07-04 08:39:21 0 举报
AI智能生成
MySQL基础语法速查文件是一个包含MySQL数据库常用SQL语句和相关操作的参考手册。它可以帮助用户快速了解和掌握MySQL的基本语法,提高工作效率。 该文件通常包括以下内容: 1、创建数据库、表和索引的语句:如CREATE DATABASE、CREATE TABLE、CREATE INDEX等。 2、数据查询语句:如SELECT、INSERT、UPDATE、DELETE等。 3、数据修改语句:如ALTER TABLE、DROP TABLE等。 4、数据管理语句:如GRANT、REVOKE等。 5、数据备份与恢复语句:如BACKUP、RESTORE等。 6、其他常用命令:如SHOW、EXPLAIN等。 通过查阅MySQL基础语法速查文件,用户可以快速找到所需的SQL语句并进行相应的操作,从而更好地管理和维护自己的数据库。
作者其他创作
大纲/内容
show databases;
1、查看已有库
create database 库名 [character set utf8];
2、创建库
select database();
3、查看当前使用的库
use 库名;
4、切换库
drop database 库名;
5、删除库
数据库管理
1、数字类型
2、字符串类型
基础数据类型
1、创建表
show tables;
2、查看数据表
desc 表名;
3、查看表结构
show create table 表名;
4、查看数据表创建信息
drop table 表名;
5、删除表
数据表管理
1、插入
2、查询
3、更新表记录
delete from 表名 where 条件;
4、删除表记录
算数运算符:+、-、*、/或DIV、%
比较运算符:=、!=、>、>=、<、<=、between、not between、in、not in、is null、is not null
逻辑运算符:not 、and、or
5、运算符
时间类型:date、datetime、timestamp、time、year
6、时间类型数据
表数据基本操作
1、数据库基本操作
模糊查询
select font color=\"#a23735\
as 用法
排序
分页/限制
联合查询
当一个select 查询语句使用()括起来,放在其他sql语句中,作为其他sql语句的一部分是,即是一个子查询语句。
子查询
2、高级查询语句
聚合函数
group by
聚合分组
having语句,对分组聚合后的结果进行进一步筛选
聚合筛选
distinct语句
去重语句
select窗口函数 OVER ([partition by 字段名 order by 字段名 ASC|DESC])from [table];
窗口函数
3、聚合操作
普通(MUL)
唯一索引(UNI)
主键索引(PRI)
索引分类
1、创建表时直接创建索引:create table 表名(字段名 数据类型,字段名 数据类型,index 索引名(字段名),unique 索引名(字段名),primary key(字段名));
2、在已有表中创建索引:create [unique] index 索引名 on 表名(字段名);
3、主键索引添加:alter table 表名 add primary key(id);
4、查看索引:(1)desc 表名; --> KEY标志为:MUL 、UNI。(2)show create table [tb];
5、删除索引:drop index 索引名 on 表名;alter table 表名 drop primary key; # 删除主键
创建索引
4、索引操作
1、外键的定义语法:[constraint symbol] foreign key(外键字段)references tbl_name (主表主键)[on delete {RESTRICT | CASCADE | SET NULL}] [on update {RESTRICT | CASCADE | SET NULL}]
3、建表后增加外键:alter table person addconstraint dept_fkforeign key(dept_id)references dept(id);
4、通过外键名称解除外键约束:alter table person drop foreign key dept_fk;
外键约束
一对多
多对多
1、表关系
2、实体、属性、关系
表关联关系和E-R模型图
1、简单多表查询
SELECT 字段列表 FROM 表1 inner join 表2 on 表1.字段 = 表2.字段;
2、内连接
SELECT 字段列表 FROM 表1 left join 表2 on 表1.字段 = 表2.字段;
3、左连接
SELECT 字段列表 FROM 表1 right join 表2 on 表1.字段 = 表2.字段;
4、右连接
表关联查询
5、外键约束和表关联关系
create [OR REPLACE] view [view_name] as [SELECT_STATEMENT];
创建视图
视图的增删改查操作与一般表的操作相同
视图表的增删改查操作
show full tables in stu;
查看现有视图
参考创建视图,将create关键字改为alter
修改视图
drop view [视图名];
删除视图
6、视图
1、创建函数前,有些数据库系统没有开启创建函数必须的日志管理权限。需要这时需要设置一下:set global log_bin_trust_function_creators=1;
2、delimiter 自定义符号create function 函数名(形参列表) returns 返回类型 -- 注意是retrunsbegin 函数体 -- 若干sql语句,但是不要直接写查询 return val;end 自定义符号delimiter ;
set @[变量名] = 值;使用时用@[变量名]
定义用户变量
在函数内部设置declare [变量名] [变量类型]; 局部变量可以使用set 赋值或者使用into关键字
定义局部变量
3、设置变量
函数创建
1、delimiter 自定义符号create procedure 存储过程名(形参列表)begin 存储过程 -- sql语句构成存储过程语句集end 自定义符号delimiter ;
in类型
out类型
inout类型
2、存储过程三个参数的区别
存储过程创建
1、调用存储函数
2、调用存储过程
show create {procedure|function} 存储过程或存储函数的名称
3、使用show create语句查看存储过程和函数的定义
show procedure|function status where db=\"stu\";
4、查看所有函数或者存储过程
drop {PROCEDURE | FUNCTION} 存储过程或存储函数的名称
5、删除存储过程或存储函数
存储函数和存储过程的操作
函数和存储过程区别
7、函数和存储过程
mysql>begin;
1、开启事务
2、终止事务
事务操作
1. 原子性(atomicity)
事务完成时,数据必须处于一致状态,数据的完整性约束没有被破坏。
2. 一致性(consistency)
数据库允许多个并发事务同时对其数据进行读写和修改的能力,而多个事务相互独立。隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
3. 隔离性(isolation)
一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。
4. 持久性(durability)
事务四大特性
事物A和事物B,事物A未提交的数据,事物B可以读取到这里读取到的数据叫做“脏数据”这种隔离级别最低,这种级别一般是在理论上存在,数据库隔离级别一般都高于该级别
1、读未提交:read uncommitted
事物A和事物B,事物A提交的数据,事物B才能读取到这种隔离级别高于读未提交换句话说,对方事物提交之后的数据,我当前事物才能读取到这种级别可以避免“脏数据”这种隔离级别会导致“不可重复读取”
2、读已提交:read committed
事务A和事务B,事务A提交之后的数据,事务B读取不到事务B是可重复读取数据这种隔离级别高于读已提交MySQL默认级别虽然可以达到可重复读取,但是会导致“幻像读”
3、可重复读:repeatable read
事务A和事务B,事务A在操作数据库时,事务B只能排队等待这种隔离级别很少使用,吞吐量太低,用户体验差这种级别可以避免“幻像读”,每一次读取的都是数据库中真实存在数据,事务A与事务B串行,而不并发
3、串行化:serializable
事务隔离级别
8、事务控制
合理的设计字段 做到不可在分割
1、第一范式
合理的设计主键
2、第二范式
合理的设计外键
3、第三范式
.....
数据库设计范式
mysql> show engines;
查看所有存储引擎
mysql> show create table 表名;
查看已有表的存储引擎
create table 表名(...)engine=MyISAM;
创建表指定
alter table 表名 engine=InnoDB;
已有表指定
1、基本操作
子主题
InnoDB
MyISAM
2、常用存储引擎特点
1. 执行查操作多的表用 MyISAM(使用InnoDB加过多的锁浪费资源)2. 执行写操作多的表用 InnoDB,默认是InnoDB
3、如何选择存储引擎
MySQL存储引擎
explain工具
SQL语句优化方法
SQL优化
9、数据库优化
create table 表名 select 查询命令;
表内容复制
mysqldump -u 用户名 -p 源库名 > stu.sql
1、备份命令格式
mysql -u root -p 目标库名 < stu.sql
2、恢复命令格式
数据库备份
10、数据备份和导入
mysql -u root -p 密码
1、用root用户登录mysql
create user 'username'@'host' identified by 'password';
2、添加用户 % 表示自动选择可用IP
grant 权限列表 on 库.表 to \"用户名\"@\"%\" with grant option;
增加权限
删除权限 注意该操作指定的库.表必须与grant时写法一致
3、权限管理
flush privileges;
4、刷新权限
drop user \"用户名\"@\"%\"
5、删除用户
添加用户权限
all privileges ,select ,insert ,update,delete,alter,create,drop等。库.表 : *.* 代表所有库的所有表
权限列表
11、用户与权限
sudo pip3 install pymysql
第三方库pymysql安装
1. 建立数据库连接:db = pymysql.connect(...)2. 创建游标对象:cur = db.cursor()3. 游标方法: cur.execute(\"insert ....\")4. 提交到数据库或者获取数据 : db.commit() / cur.fetchall()5. 关闭游标对象 :cur.close()6. 断开数据库连接 :db.close()
pymysql使用流程
常用函数
12、pymysql模块
MySQL基础语法速查
收藏
0 条评论
下一页
为你推荐
查看更多