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

37 篇文章 1 订阅
2 篇文章 0 订阅


一、数据库基础

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 '默认值';

五、总结

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

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

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

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值