MYSQL

一.原理

一.原理

1.mysql逻辑架构

mysql 逻辑架构共三层

最上层的为客户端层(不是mysql独有的)

中间层包含mysql的核心服务 包括查询解析,分析,优化,缓存,内置函数,且所有的跨存储引擎的功能也在这一层实现

最下层为存储引擎,负责mysql中的数据存储和提取

2.mysql查询过程

img

注意事项:

客户端/服务器通信协议是“半双工”的,不可同时向对方发送数据

二.其他

DB :database

DBMS: batabase management system

分为两类:基于共享文件系统的DBMS(access)

基于客户机------服务器的DBMS

SQL: 结构化查询语言

字段 即为列

表中的数据是按行存储的

mysql常见命令

show databases

use+库名----打开库-----database changed

show tables----打开表

show tables from +库名

select database()

create table 表名(列名 列类型, 列名 列类型 ) -----创建表 -----指定列

desc +表名-----查看表的结构

select * from +表名 where +地址

insert into +表名+(内容)values(‘ ’ )-----在表中插入内容

update +表名 set +内容---修改表中内容

delete from +表名 +where +地址-----删除表中内容

查看Mysql版本: select version

mysql--version(不是mysql命令)

DQL语言(查询)

基础查询

语法: select +查询列表 from + 表名;

(查询列表可以是:表中的字段,常量值,表达式,函数)

查询的结果是一个虚拟的表格

查询表中的单个字段:select +字段名 from + 表名 ;

查询表中的多个字段:select +字段名1,字段名2........from +表名

查询表中的所有字段:select +所有字段名+from+表名

select * from +表名(*代表所有字段)

查询常量值: select +常量值;(字符常量加'')

查询表达式: select+表达式;

查询函数:select version();

起别名:法一:使用AS

select 表达式 AS 结果;

selectl last_name AS 姓,first_name AS 名 from +表名;

法二:使用空格

selectl last_name +空格 姓,first_name +空格 名 from +表名;

去重: select distinct +列名from+表名

+号的作用: 运算符 select last_name +first_name AS 姓名 from +表名

select 100+90; 俩个操作数都为数值型,则做加法运算

select'123'+90 其中一方为字符,试图将字符型数值转换成数值型

select 'john'+90 如果转换成功,则继续做加法运算

如果转换失败,则将字符型数值转换成0

select null+10 只要其中一方为Null,则结果肯定为null

连接:concat ( 列表名 )

判断null:ifnull(表达式1,表达式2):null 参与的运算,计算结果都是null

表达式1:那个字段需要判断是否为null

表达式2:如果该字段为null后的替换值

isnull(参数):判断某字段或表达式是否为null,如果是,返回1;否则返回0

条件查询

select +查询列表 +from+表名+where +筛选条件

分类: 按条件表达式筛选: 条件运算符:> < =!= >= <=

按逻辑表达式筛选: 逻辑运算符:&& ||

模糊查询

like :select *from 表名 where 字段名 like '通配符字符串'

通配符字符串:含有通配符的字符串

通配符有两个:-- %:表示 0 个或多个字符(任意个字符) -- _: 表示一个字符

in :判断某字段的值是否属于in列表中的某一项

is null /is no null : =或<>不能判断null 的值

范围查询

between 值1 and 值2 表示从值1 到值2 范围,包头又包尾

分组查询

select 分组函数,列 from 表 where 筛选条件 group by 分组的列表 order by 子句

分页查询

select 查询列表 from 表 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段 limit

排序查询

select 查询列表 from 表名 order by 排序列表【asc|desc】

asc升序 desc 降序

order by子句中支持单个字段、多个字段、表达式、函数、别名

联合查询

查询语句1 union 查询语句2

DML语言(增删改)

insert :插入

insert into 表名 values (数据)

update: 修改

update 表名 set 字段名=新值,列名2=新值,.....

delete:删除

delete from 表名[where 条件]

select;选择

DDL语言

create :创建数据库

retrieve:查询数据库

update:修改

delete:删除

DCL语言(数据控制语言)

创建用户: creat user '用户名'@主机名 BY ’密码';

授权用户: grant 权限1,权限2.....on 数据库.表名 to ‘用户名’ @'z主机名‘;

撤销授权:revoke 权限1,权限2......on 数据库名.表名 to '用户名'@’主机名‘;

查看权限: show grants for ‘用户名’@‘主机名’;

删除用户:drop user '用户名' @'主机名';

修改管理员密码: mysqladmin-uroot-p password(需要在未登录MYSQL的情况下操作,这是在命令行中操作)

修改普通用户密码:set password for '用户名'@'主机名'=password('新密码')

Mysql的语法规范

1.不区分大小写,但建议关键字大写,表名 列名小写

2.每条命令最好用分号结尾

3.每条命令根据需要,可以进行缩进或换行

4.注释

单行注释:#注释文字

单行注释:-- 注释文字

多行注释:/* 注释文字 */

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值