MySQL数据库-DDL、DML、DQL、DCL的介绍

一、数据库的概括:

1.数据库:用来存储数据的仓库

2.数据库管理系统:专门管理数据的软件或系统

3.数据库分类:层次型:用树结构表示数据联系

网络型:用若干结点表示数据联系

关系型:用若干个二维表来表示数据联系

MySQL、Oracle

非关系型:使用键对值的方式存储数据,且结构不固定

redis、mongoDe、

4.MySQL优势:开源免费,

小巧便捷,

可以运行在各种平台

可以开发各类应用

5.结构化查询语言(SQL)

DDL(数据定义)create、drop、alter
DML(数据操作)insert、update、delete
DQL(数据查询)select
DCL(数据控制)grant、commit、rollback

第二、数据库的操作

1.创建数据库:

create database 数据库名;

2.删除数据库:

drop;

3.使用数据库:

use数据库名;

4.查看数据库:

show databases

5.创建数据表:

create table `表名`(

`字段1` 类型(长度),

`字段2` 类型(长度),

.....

)engine=myisam charset=utf8;

6.查看数据表:show tables;

7.查看数据表结构:desc 表名;

三、MySQL中数据类型:

数值类型:

类型注释
int标准整数 1-10位数
tinyint非常小的数据0-255
float单精度浮点数
double双精度浮点数

字符串类型:

类型注释
char固定长度 0-255
varchar可变长度 0-65535
text备注2^16-1

日期和时间类型

datetime:YY-MM-DD hh:mm:ss

区间:1000-01-01 00:00:00------9999-12-31 23:59:59

NULL:空:没有值,不参与运算0和null都为假

1.MySQL中关键字:

关键字注释
unsigned无符号的 数据列不能为负数
zerofill0填充,不足的位数用0填充 如int(3) 5即005
auto_increment自增,每增加一条数据,自动在上一个基础上加1
default默认值
comment设置注释(字段,表)

2.删除数据表:

drop table 表名;

3.数据表类型:

myisam:非事务表:经常不变动的数据;不支持事务;支持全文索引;占用空间小;效率高

innodb:事务表:支持事务,不支持全文索引,占用空间大,效率较慢 事务;不支持全文索引;占用空间大;效率较低

4.修改表名:alter table 旧表名 rename as 新表名;

5.添加字段:alter table 表名 add 字段名 类型(长度);

6.修改字段:alter table 表名 change 旧字段名 新字段 类型;

7.删除字段:alter table 表名 drop 字段名;

8.添加数据:

1.insert into 表名(字段1,字段2....)values('值1','值2'.....)

2.insert into `表名`set `字段1`=值1;

9.查看版本:

4.>version()函数:查看当前使用的MySQL版本;

eg:select version();

10.DML添加数据

1.指定字段添加数据:

insert into 表名(字段名1,字段名2.....)values(值1,值2....)

2.给全部字段添加数据

insert into 表名 values(值1,值2....)

3.批量添加数据:

insert into 表名(字段名1,字段名2,...)values(值1,值2...),(值1,值2...)

insert into 表名 values(值1,值2...),(值1,值2...)

11.修改数据:

update`表名` set `字段1`=`值1`,`字段2`=`值2`....where 修改条件

注意:修改条件必须要有,否则会将所有的数据修改

12.删除数据:

delete from `表名` where 删除条件

注意:修改条件必须要有,否则会将所有的数据删除,清除表中所有数据且恢复计数器(从1开始自增)

truncate `表名`

区别于delete恢复,不会影响事务

13.DQL:语法

SELECT 字段 FROM 表名

WHERE 条件

GROUP BY 分组字段

HAVING 分组后条件

ORDER BY 排序字段

LIMIT 分页参数

14.查询数据:

select 字段1,字段2,.... from 表名;

select*from 表名;

15.设置别名:

SELECT 字段1[as 别名1],字段2[as 别名2]...FROM 表名;

16.查询语句关键词DISTINCT;

DISTINCT:去掉select查询后的重复数据;

select distinct name from stu;

17.DQL条件查询:

SELECT 字段列表 FROM 表名 WHERE 条件列表

where之后的运算:

=:等于

<>或!= 不等于

>: 大于

>=:大于等于

between: 在范围

and: 并且

or: 或

where之后的逻辑操作符:

and:与

or: 或

not: 非

where之后的比较操作符:

between:介于范围之间(数据是连续的)

like:模糊匹配查询

注意:配合%和_使用

%:匹配多个

_:匹配单个

select name from stu name like '%l%'

select name from stu name like 'l_'

in:介于范围之间(可以不连续)

select name from stu id in (3,5,6)

18.数据排序:

order by 字段 排序方式

排序方式:desc(降序) asc(升序,默认)

注意:一般不进行排序就不排序(影响查询效率)

select * from stu order by id desc;

19.限制查询条数:

1.>:limit m,n

m:查询起始位置;n:查询数目:

起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数

select * from stu limit 3

2.>:limit n offset m;

20.子查询:

在一个查询中嵌套另外一个查询

一般结合in使用

select * from stu where id in(select id from class);

21.分组排序:

group by

asc:默认

desc:倒序

select * from stu group by sex desc;

22.分组查询:

语法:

SELECT 字段列表 FROM 表名[WHERE 条件]GROUP BY 分组字段名[HAVING 分组后过滤条件]

23.where与having区别:

1.执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而hanving是分组后对结果进行过滤

2.判断条件不同:where 不能对聚合函数进行判断,而hanving可以

注意:

执行顺序:where > 聚合函数 > hanving

24.数据库备份:

防止数据丢失或数据转移

1.数据库管理工具

2.直接拷贝

3.使用命令

清屏:cls;

格式:mysqldump -h主机地址 -u用户名 -p密码

要备份的数据库名>保存的地址和文件名

mysqldump -h127.0.0.1 -uroot -proot php50>d://php50.sql

注意:本地服务器不需要写主机地址

命令结束不需要分号

保存到本地文件名需要使用sql作为后缀

25.数据库恢复:防止数据丢失或数据转移

1>source 地址/文件名;

注意:必须是登录MySQL的状态

必须是use到要导入的数据库中

后面必须要加分号

2>MySQL -u用户名 -p密码 要导入的数据库名 (地址/文件名)

注意:必须是未登录的MySQL状态

后面不需要加分号

26.数据库的索引:为了加快查询效率而产生

作用:使查询效率大大提升

确保数据唯一

加强表与表之间的连接

分类:主索引(primary key)

注意:一个表只能有一个人

速度最快

内容不能重复(建议是数字)

唯一索引(unique)

注意:一个表可以存在多个

速度仅次于主索引

内容可重复

常规索引(index)

注意:一个表可以存在多个

速度最慢

内容可重复

全文索引(fulltext)

注意:只能用于myisam数据类型

只用在字符串数据类型列

27.创建:创建表的时候直接创建

追加索引

alter table 表名 add 索引类型(字段)

eg:alter table stu add index(name)

删除:1.drop index 索引名 on 表名

2.alter table 表名 drop index 索引名

注意:索引名若没有特别定义 则用字段名

查看:show index from 表名

准则:索引不是越多越好

不能给经常变动的数据列加索引

一般给查询条件后的字段加索引

28.检查SQL:

explain sql语句;

29.如何优化数据库:

1.结构优化:拆分数据表

2.SQL优化:

减少使用order by ,select *,group by

多使用limit

3.缓存优化

使用redis

4.工具优化

5.字段优化

30.数据库事务:

集中处理一系列事项

特性:

原子性

一致性

隔离性

持久性

31.MySQL运行的端口号:3306;

管理数据库的软件:

网页版:phpmyadmin

软件版:navicat

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据牧马人

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值