目录:导读

  • 一、数据库基础
    • 1、用户
    • 2、权限
  • 二、数据库基本语法
    • 1、引擎
    • 2、四大SQL语句
    • 3、DDL
    • 4、DML
  • 三、查询基础操作
    • 1、排序语句
    • 2、关键字
    • 3、查询条件
  • 四、约束
    • 1、主键(primary key)
  • 2、唯一(unique)
    • 3、非空(not null)
    • 4、默认值(default)
  • 五、总结

一、数据库基础

1、用户

a.增
创建用户:

create user ‘用户名’@‘服务器的ip地址’ identified by ‘密码’;

数据库ip地址,如果是本地,则是loaclhost

b.删

drop user ‘用户名’@‘ip地址’;

c.改
修改用户名:

rename user ‘用户名’@‘IP地址’ to ‘新用户名’@‘IP地址’;

修改密码:
(低级版本)

set password for ‘用户名’@‘IP地址’=password(‘新密码’);

(高级版本)

alter user ‘xiaoming'@'localhost' identified by ‘654321';

d.查
查看数据库:

show databases;

切换库:

use 数据库名;

查看数据表:

show tables;

查询数据表数据:

select * from 数据表名;

2、权限

a.单词
授权(grant),回收(revoke),权限(privilege)

b.授予权限:

grant 权限名 on 库名.表名 to ‘用户名’@’IP地址’;

all privilege:一次授予所有权限

grant all privileges on *.* to ‘用户名’@’IP地址’;

授予 所有数据库的 所有表的 所有权限

c.刷新权限:

flush privileges;

d.查看权限:
查看当前用户权限:

show grants;

查看指定用户权限:

show grants for ‘用户名’@’IP地址’;

e.回收权限:

revoke 权限名 on 库名.表名 from ‘用户名’@’IP地址’;
revoke all on *.* from ‘用户名’@’IP地址’;

回收 所有数据库的 所有表的 所有权限

二、数据库基本语法

1、引擎

查看数据库引擎:

show engines;

临时性修改数据库引擎:

set default_storage_engine = “引擎名”;

两个常用引擎:
myisam:性能好,安全性低
innodb:性能差,安全性高。支持外键,支持事务

2、四大SQL语句

数据定义语句DDL(操作表结构):create、alter、drop、truncate
数据操作语句DML(操作表数据):insert、delete、update、select
数据控制语句DCL:grant、revoke
事务控制语句TCL:begin、commit、rollback

3、DDL

a.数据库
创建数据库:

create database 数据库名;

显示创建的数据库信息:

show create database 数据库名;

删除数据库:

drop database 数据库名;

b.数据类型
①整型:int

②小数:decimal,float
用法:decimal(长度,小数位)
decimal(5,2)范围为:-999.99~999.99

③字符串:char,varchar
char和varchar区别:
char是定长,确定了长度之后,不管存放的数据有没有达到指定长度,都是按照指定的长度长度分配
varchar是不定长,确定了长度之后,如果存放的数据没有达到指定长度,就按照已经使用的长度来分配空间

c.表结构
①增:创建表格

create table 表格名(
字段名 数据类型 【约束条件】,
字段名2 数据类型
)【其他选项(例如储存引擎,字符集等)】;

【 】中的内容选填,中文设置:DEFAULT CHARSET =‘utf8’;
自增:auto_increment ,随着数据的插入,该字段会自动增加

②删:

drop table 表名;

③改:

alter table 表名 操作命令;

其中操作命令包括:
删除字段:drop 字段名;
新增字段:add 字段名 数据类型 约束条件;
修改字段名(可同时修改数据类型):change 旧字段名 新字段名 数据类型/新数据类型;
修改数据类型:modify 字段名 新数据类型;

修改表名:

rename table 旧表名 to 新表名;
alter table 旧表名 rename 新表名;

④查看创建表的详细信息:

show create table 表名;

查看表结构:

desc 表名;

4、DML

a.增(insert)
基本语法:

insert into 表名(字段名 #不填默认为全部) values(数据);

b.删(delete,truncate)

delete删除:delete from 表名;
truncate删除:truncate table 表名;

区别:
truncate可以将自增字段清零,重新开始自增,delete不能清零
c.改(update)
基本语法:

update 表名 set 字段名=新值 where 查询条件;

如果不加查询条件,默认修改字段下的所有的值
替换(replace):
基础语法:

replace into 表名 values(值);

insert,update,replace区别:
insert是插入语句,永远都是在最下面插入新的行,不会对已有数据造成影响;
update是更新语句,是在已有数据的基础上对数据内容做修改;
replace是替换语句,如果原数据已存在则覆盖原数据(类似update,但其字段需要有约束条件),如果不存在则插入新数据(类似insert)

d.查(select)
基本语法:

select 字段名 from 表名 where 查询条件;

别名(as):给字段或者表在查询时设置的一个临时的名字:

SELECT 新表名.字段名1 AS ‘新字段名',新表名.字段名2 AS ‘新字段名2' FROM 表名 AS 新表名;

说明:AS可不填,旧字段名与新字段名用空格隔开即可。如果表名没有设新表名,则“字段名”前面的“新表名.”不填

SELECT name “姓名”,age “年龄” FROM student;

e.综合
①插入其他表的数据:

insert into 表名(字段名) select 查询字段名 from 表名 where 查询条件;

②使用已有表的表结构及数据,创建一个新的表:

CREATE TABLE stu SELECT * FROM student;

③创建一个新的表,只使用已有表的表结构

CREATE TABLE stu2 SELECT * FROM student 查询条件;

其中查询条件为恒假,例如1=2

④数据备份和还原(source):
第一步:新建一个数据库(新建new)
第二步:切换到新建的数据库(use new)
第三步:source 保存的sql文件路径(source d:/test.sql)

三、查询基础操作

1、排序语句

order by
语法:

select 字段名 from 表名 order by 排序字段 排序方式;

asc:升序
desc:降序
默认升序排序

2、关键字

a.limit
作用:限制返回数据的行数

select 字段名 from 表名 limit 起始行下标,行数;

起始行下标默认为0

b.distinct
作用:去重,去掉重复出现的内容,保留其中一份

select distinct 去重字段名 from 表名;

注:空值和NULL是两个概念

3、查询条件

①between…and…:求在某一范围内的值

select 字段名 from 表名 where 查询字段 between 起始范围 and 截止范围;

②like:模糊查询

select 字段名 from 表名 where 查询字段 like 查询内容;

%:表示0个或多个字符
_:表示1个字符

③in:查询字段在指定数据中是否出现

select 字段名 from 表名 where 查询字段 in (值1,值2, 值3);

比较字符:
a.不等于:!=,<>
b.等与:=,,<=> --------->第二个可用于NULL,即<=>NULL等价于is NULL

拓展字符:
a.必须使用rlike操作符
b.范围:[]
[1-5]:表示1-5的范围(即1,2,3,4,5,)

c.‘^’:表示以什么字符开头(用在字符前)
^a :以a开头字符

d.‘’:表示以什么字符结尾(用在字符后)a’:表示以什么字符结尾(用在字符后) a’:表示以什么字符结尾(用在字符后)a:以a结尾的字符

四、约束

分类:主键(primary key)、外键(foreign key)、唯一(unique)、非空(not null)、默认值(default)、检查(check)

1、主键(primary key)

定义:同时拥有非空和唯一的性质,在同一张表中只能出现一次
添加主键约束:
(常用)

create table 表名(字段名 数据类型 primary key
);

(可改主键名)

create table 表名(
字段名 数据类型,
constraint 主键名 primary key(约束字段)
);

(其他)

create table 表名(
字段名 数据类型,
primary key(约束字段)
);

添加主键(表已存在):

alter table 表名 add primary key(字段名);

删除主键:

alter table 表名 drop primary key;

复合主键:将两个以上字段都赋予主键约束
语法:
(加在建表时最后面)
primary key(字段名1,字段名2);

2、唯一(unique)

定义:确保修饰的字段数据内容不能重复
添加:

alter table 表名 add unique(字段名);

删除:

alter table 表名 drop index 字段名;

3、非空(not null)

添加:

alter table 表名 modify 字段名 数据类型 not null;

删除:

alter table 表名 modify 字段名 数据类型;

4、默认值(default)

定义:是指定为空字段的默认内容
删除:

alter table 表名 change 字段名 字段名 数据类型;

添加:

alter table 表名 add 字段名数据类型 default '默认值';

五、总结

在光芒万丈之前,我们都要欣然接受眼下的难堪和不易,接受一个人的孤独和偶尔的无助。

不是井里没有水,而是挖的不够深;不是成功来得慢,而是放弃速度快。得到一件东西需要智慧,放弃一样东西则需要勇气!

如果只有过美好的经历,那么你不会变得勇敢,不要怕前路坎坷,请一直勇敢向前。

全网最详细,MySQL数据库知识总结,你要的我都有......相关推荐

  1. 肝了三天的四万字MySQL数据库知识总结

    mysql数据库知识梳理总结 即使再小的帆也能远航~ 一. 目录 数据库介绍 数据库安装 SQL概念 DDL DML操作表中的数据 DQL单表查询 数据库备份和还原 DCL 数据库表的约束 表与表之间 ...

  2. mysql数据库知识解析(一)

    文章目录 1. 数据库的介绍和环境搭建 1.1 数据库介绍 1.1.1 数据存储 1.1.2 理解数据库 1.1.3 MySQL 1.2 环境搭建 2. 数据类型及约束 2.1 SQL介绍&常 ...

  3. MySQL数据库知识汇总

    MySQL总结汇总,整理了包括MySQL数据库的基础知识,SQL优化.事务管理以及一些常见的问题,包含了作为一个Java工程师在面试中需要用到或者可能用到的基础性知识.一来为了加深学习印象,二来为以后 ...

  4. mysql参数优化51cto_超详细MySQL数据库优化

    前言 数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷. 1. 优 ...

  5. Mysql数据库知识总结

    Mysql学习资料参考: MySQL操作笔记(五万字详解)_Coder Xu的博客-CSDN博客 MySQL数据库面试题(2020最新版)_ThinkWon的博客-CSDN博客_mysql数据库面试题 ...

  6. 学习C++项目——mysql 数据库知识学习(关于 mysql 8.0 版以后基础部分学习)

    学习数据库知识 一.思路和学习方法   本文学习于:B站平台UP主 IT 小当家,学习 MySQL 数据库,里面仅仅用于自己学习,进行复现,并加以自己的一些学习过程和理解,如果有侵权会删除.因为 Or ...

  7. 全网最细MySQL数据库下载及安装教程

    MySQL 8.0.25的下载及安装 一.下载MySQL 1.从[官方网站](MySQL :: Download MySQL Community Server)下载(选择第一个) 2.将压缩包放入你要 ...

  8. MySQL数据库知识体系

    MySQL为关系型数据库 文章目录 一 数据库介绍 1 相关定义 数据(data) 数据库(database.DB) 数据库管理系统(DataBase Management System , DBMS ...

  9. 全网最详细软件测试基础知识,零基础自学的【建议收藏】

    目录 一.软件的定义 二.软件测试的定义与原则 三.测试模型的介绍 四.软件测试的流程 五.软件测试的分类 测试开发工程师技能成长路径 一.软件的定义 1. 软件的定义 软件测试(英语:Softwar ...

最新文章

  1. PLSQL基础语法二-流程控制,循环
  2. C# 参考之访问关键字:base、this
  3. 这个高度站立办公十分的棒
  4. Android 中单选框或复选框点击其中一个,其余取消操作
  5. array_merge与array+array的区别
  6. redis数据库及与python交互
  7. HTTP协议头部与Keep-Alive模式详解-Content-Length Transfer-Encoding
  8. dell r230u盘启动安装2008_dell r230服务器 怎么u盘开启
  9. 【Step By Step】将Dotnet Core部署到Docker(中)
  10. Python之路-(列表、元组、字典、集合、字符串)
  11. 4.软件架构设计:大型网站技术架构与业务架构融合之道 --- 操作系统
  12. 微信小程序 自定义底部导航栏(tabBar)
  13. 基于hadoop的商品推荐引擎
  14. 柴油车污染治理4G远程排放管理车载终端H6 (远程OBD)GB-17691
  15. 第三章 隐藏通信隧道技术
  16. Linux 获取磁盘唯一ID方式
  17. web单页面应用与多页面应用区别
  18. java button click事件_java处理按钮点击事件的方法
  19. 盛迈坤电商:关键词的优化方法
  20. Spring Security 的 RememberMe 详解 !!!!!

热门文章

  1. PHP上传文件到FTP服务器
  2. switch开关点击无效的解决办法:element中switch v-model绑定的值为数字类型情形
  3. POJ 2080 Calendar (Java)
  4. 智能车竞赛技术报告 | 智能视觉组 - 哈尔滨工程大学 - 济海追风0队
  5. 新人福利——Cheat Engine功能之基础篇
  6. 手动挡五个档位示意图_手动挡汽车档位图解?
  7. windows10下面 Prolific USB转串口没法使用的解决
  8. 管理信息系统【七】之 系统实施与评价
  9. mac 两种视频转音频方法
  10. 一位实习生对软件测试的看法