MySQL的一些介绍

news/2024/11/23 5:32:56/

1.  SQLselect语句完整的行顺

SQL Select行顺 

1from自不同数 

2where指定的条 

3group by划分 

4使 

5使having分组 

6 

7select  

8使order by集进序。 

SQL 编程语言代码库语理。 SQL 一个子句 FROM SELECTSQL 骤序  (1) FROM <left_table> 

(2) <join_type> JOIN <right_table> 

(3) ON <join_condition>

(4) WHERE <where_condition> 

(5) GROUP BY <group_by_list> 

(6) WITH {CUBE | ROLLUP} 

(7) HAVING <having_condition>

(8) SELECT 

(9) DISTINCT 

(9) ORDER BY <order_by_list> 

(10) <TOP_specification> <select_list> 
以上个虚作下入。些虚(程序部查)不可。只一步成的才会用者如果有在指定一个句,将跳 

逻辑 
1 FROMFROM的前尔积(交叉)VT1 

2 ONVT1ON选器使被插TV2 

3 OUTER (JOIN):指定OUTER JOIN(CROSS JOININNER JOIN)到匹配VT2TV3FROM个以上的生成的结果13处理置。 

4 WHERETV3WHERE使trueTV4 

5 GROUP BYGROUP BYTV4TV5 

6 CUTE|ROLLUP组插VT5VT6 

7 HAVINGVT6HAVING使trueVT7 

8 SELECTSELECT表,VT8 

9 DISTINCTVT8VT9 

10 ORDER BYVT9中的ORDER BY列列(VC10) 11 TOPVC10选择,生TV11回给调用者。 

where 

2.  SQL合函数

聚合计算数,select语句group  by使用 

a. avg():返的平 

b. count()中的 

c. max()最大值。 

d. min():返回中的最小 

e. sum()的和,只忽略 

f. group by()分组执行group by函数的运。最having去掉条件having句中的每出现select针对mysql 

3.  SQL接查询左连接右连接的区别)

外连 
左连以左表作表数出来右表的数据据,null 

右连以右表作表数出来左表的数据据,null 

全连外连外连接。 

内连 

显示所有行。 

4.  SQLsql

WebSQL存在数据照设计者去执SQL。举sql  select * from user where username = admin or a=asql语句admin毫无 

sql式: 
1.  预编select * from user where username = sql语义不会生改变,sql示,使admin    or a= a”,体当做一询。 

2.  Mybatismapper  # 大程度的sql入($无法sql注入) 

5.  Mysql性能

1当只使limit 1 
查询条数limit  1 mysql引擎会搜索一条有记 

2选择引擎 

MysqlMyISAMInnoDB擎有 

MyISAM 适用一些大查询应用但对量写能的用不。甚你只update会被就算update完成之后才MyISAMselect count(*)快的 

InnoDB一个非常于一MyISAM还慢写操作比高级 

3.  not existsnot in 
Not exists够发的作not in使索引Not in 慢的较,作红使 

4.  对操采用 

如:in        not in        is null        is not null        <>    

某个为其 
Mysql 以利用 alter  table 字段添加alter table  add index () 

6.  sql学生__绩表_教师

7.  Mysql数据

MyISAMInnoDB是最常见点如下。 

MyISAM存储 
MyISAM MySQL提供特点和全 OLAP(联分析度快 

MyISAM上存储成都和表名别是.frm(存)、.MYD (MYData,存储).MYI (MYIndex)特别要注意的MyISAM不缓存数文件 

InnoDB 
InnoDB 务, OLTP(联机事应用、支,并支Oracle锁定产生InnoDB在一(类OracleInnoDB并发控制ANSI4种隔离级Repeatable使种被称next-key locking策略 

对于InnoDBOracle引组Clustered的方式进储。 

InnoDB 供了具有复能Myisam引擎,InnoDB 的处理效率用更数据 

InnoDB 

8.  Mysql架构个模块是什

1证是 

每个与服线务器线理这  连接;如客户端需要连接MYSQL还需要进、密 主机 

2么? 

解析器的作用主要是分析查询语句,最终生成解析树;首先解析器会对查询语句的语法进行分析,分析语法否有问会查询缓对应结果执行提是缓存,当被清 

3用? 

优化器的作用主要是对查询语句进行优化操作,包括选择合适的索引,数据的读取方式,包括获取查询的开信息,统计信息等,这也是为什么图中会有优化器指向存储引擎的箭头。之前在别的文章没有看到优化器跟存储引之间的关系的理通过大致息。 4么? 

执行,返行计一些作。 

9.  Mysql存储哪些? 

1)、InnoDB储引 
InnoDB据库的首ACID定和InnoDBMySQL引擎 

2MyISAM储引 
MyISAMISAM存储引擎Web他应使存储之一MyISAM的插支持 

3MEMORY 
MEMORY将表中的未查提供访 

4NDB引擎 
DB 储引OracleRACShare Nothing 架构供更级别的NDB全部放在键查 

关于 NDB问题要注(join)作是在 MySQL 完成完成这意味复杂join需要询速 

5Memory (Heap)  
Memory 称为 Heap存放库重,因此它常适 

6Archive 
正如ArchiveINSERTSELECT其设的主要目和压能。 

7Federated引擎 
Federated放数一台MySQL器上类似Oracle透明网关 

8Maria 

Maria的引来取MyISAM储引MySQL默认的存擎。 

上述InnoDB 事务计上很多 Oracle 架构OLTP应用InnoDB为核引擎InnoDBInnobase Oy发,现已OracleHeikki Tuuri基人著名LinuxLinus友。 

10. MySQL介绍

MySQL品有事务MYISAM,MEMORY,ARCHIVE都不为了部执行失败。 
MySQL取自动提开始 

SHOW VARIABLES LIKE 'AUTOCOMMIT'; 

修改0=OFF,1=ON
注意:修改自提交对非事务类型的表无效的,因为它们本身没有提交和回滚的概念还有一些命令是会强DLL令、lock tables 

SET AUTOCOMMIT=OFF SET AUTOCOMMIT=0

10.1 事务的四特征是 

数据库事transanction正确ACID,子性(Atomicity)(Correspondence)隔离性(Isolation)久性(Durability) 

1务中的所可能执行过回滚(Rollback开始事务 

2之前据库破坏 

3行事使是系统在一操相同的 功能保每只有使这种称为串操作  必须 使个请 

4以后所作便在数回滚 

10.2 Mysql中四种隔离级分别是什么 

级别 

 

 

 

Read uncommitted(提交) 

 

 

 

Read committed(读已提交) 

 

 

 

Repeatable read(可重复读) 

 

 

 

Serializable串行读 

 

 

 

读未READ UNCOMMITTED离级务可交的数据 

读已交(READ COMMITTED它数据库系统SQL Server认的,已交读隔离交之务是 

可重REPEATABLE READ:保个事务中结果致的,比一个事务开始查询几秒是相mysql默认隔离级别。 

可串SERIALIZABLE取的询得个范围也同数据插入中。 

11. MySQL创建储过程2017-11-25-wzz 

MySQL  MySQL5.0 。存筐。行效SQL 码封  SQL 封装功能有存程序访问库时  SQL 。特别  SQL 件夹中,人不寒而  MySQL 程,业务逻中,而且 

一、MySQL 
下面pr_add MySQL MySQL 程有int  ab数的 

1drop procedure if exists pr_add;  pr_add储过程, 2:实的功能) 

create procedure pr_add   (   a int,   b int   )   begin    declare c int;

if a is null then   set a = 0;

end if;

if b is null then   set b = 0;

end if;

set c = a + b;

select c as sum;

调用  MySQL 过程 

call pr_add(10, 20); 

12. MySQL器怎写?2017-11-25-wzz 

MySQL的支作有触发事件调用事件执行 

MySQL器语下: 

CREATE TRIGGER trigger_name 

trigger_time

trigger_event ON tbl_name

FOR EACH ROW

trigger_stmt

其中 

trigger_name器名 

trigger_time时机  BEFORE   AFTER 
trigger_event事件  INSERTUPDATE   DELETE 
tbl_name触发器的建立 
trigger_stmt序体SQL句,  BEGIN   END  

由此6触发BEFORE INSERTBEFORE UPDATEBEFORE DELETEAFTER INSERTAFTER UPDATEAFTER DELETE 

另外时在2同类一个6发器 

假设 

1)  class(  classID,   stuCount) 

2)  student(  stuID,   classID)
要创使中的的添 

create trigger tri_stuInsert after insert 

on student for each row

begin

declare c int;

set c = (select stuCount from class where classID=new.classID); 

update class set stuCount = c + 1 where classID = new.classID; 

查看器: 
和查show databases;show tables;发器 

SHOW TRIGGERS [FROM schema_name]; 

schema_name   Schema   MySQL   Schema   Database 就是可以指定必先USE database_name;了。 

删除器: 

和删一样如下 

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name 

13. MySQL优化2017-11-26-wzz 

13.1 where 子句可以字段进null值判断吗? 

可以,比select id from t where num is null sql的。但是NULL尽可能的使 NOT NULL数据以为 NULL 不需char(100) 间就,不管NULL也包100varchar 变长字段null占用空可以num上设置默0numnull后这样查select id from t where num = 0 

13.2  select  *  from  admin  left  join  log on  admin.admin_id  =  log.admin_id  where log.admin_id>10如何优化? 

化为  select  *  from  (select  *  from  admin  where  admin_id>10)  T1  lef  join  log  on  T1.admin_id  = log.admin_id 

使JOIN 候,小的果(left join 小如边先处理right join 时尽的查分多query多个易到锁表阻塞)。 

13.3 limit 的基数较大使between 

例如select * from admin order by admin_id limit 100000,10
优化select * from admin where admin_id between 100000 and 100010 order by admin_id 

13.4 尽量避免列上做算,这样导致索 

例如select * from admin where year(admin_time)>2014

优化  select * from admin where admin_time> '2014-01-01 

14.   MySQL中文乱码问题完解决方案2017-12-07-lwl 

解决一编使 MySQL 尽量使荐的utf8码几有的 

数据设置就一设置utf8之后库和表如果使utf8去了很多 

数据以通编码 

1查询使认编 

show variables like %colla%”; 

show varables like %char% 

collation符串比较utf8_general_ci,代表使utf8集大小写不敏 

character_setutf8使如下修改utf8 

2修改utf8

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8'; 

如果不想设置据库软件的全局默认编,也可以单独修改或者置某个具体数据库的编也可以单独修改或设表的 

3创建使utf8编码 

CREATE DATABASE `test`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci'; 

4创建使utf8编码 

CREATE TABLE `database_user` (

`ID` varchar(40) NOT NULL default '',

`UserID` varchar(40) NOT NULL default '',

) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

如果,可以使show database ;和  show create table 看一下数据库utf8 ,如行下将数utf8. 

5修改 

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

15.  MySQL的安全2017-12-8-lwl 

1. MySQL 服务并通那么使 ssh 加密该连接的通信。 

2.使 set password 句来mysql  -u root数据后“mysql>  update mysql.user set password=password(newpwd)”,flush privileges 

3.MySQL攻击偷听篡改回放、拒用性所有的连查询使ACLACL访是一网络访由器应该允许或拒绝数据包通过,可监控流量,可自上向下检查网络的安全性,可检查和过滤数据和限制不必要路由更节约本的 ACL 术在广用。访安全 

4.root其他许访mysqluser 5.使grantrevoke句来访工作; 
6.使使md5()sha1()单向;

7.做密码; 

8.采用防火 50%的外部危险,让数据库系统躲在火墙后面工作,或放 DMZDMZ 是英文“demilitarized zone解决络的访访部网的问题全系缓冲; 

9.nmap3306telnet server_host 3306的方从非信任络中访问3306tcp在防火墙; 

10.SQL预编SQL入攻where id=234别人却输where id=234 or 1=1 

11.mysql时检; 

12.时应使号,给该; 

13.使tcpdumpstrings据的tcpdump -l -i eth0 -w -src or dst port 

3306 strings户来mysql服务;

14.mysql只有户才的权限; 

15.不许将 process  super ,该 mysqladmin  processlist 可以的查文本;super客户运行复制务器; 

16.dns司的称允ip地址; 

17.使max_user_connections使mysqld服务户限; 

18.grant资源控制; 

19.启动 mysqld 的安关,local-infile=0  1 0 客户使 local  load datagrant insert(user) on mysql.user to user_name@'host_name;使用skip-grant-tables的访访  mysqladmin flush-privilegesmysqladmin reload来开访控制;show databases语句对所skip-show-databases关闭掉。 

23.error 1045(28000) access denied for user root@'localhost  (using password:no)误时重新设置密码,具体方法是:先用skip-grant-tables 参数启 mysqld,然后执行  mysql  -u  root mysql,mysql>update  user  set  password=password(newpassword)  where  user=root;mysql>flush privileges;mysql了。


http://www.ppmy.cn/news/106783.html

相关文章

2022年长三角高校数学建模竞赛A题学在长三角解题全过程文档及程序

2022年长三角高校数学建模竞赛 A题 学在长三角 原题再现&#xff1a; 长三角高等教育规模和优质高等教育资源数量处于全国领先水平。从 2019年和 2013-2019 年的平均值来看&#xff0c;长三角地区人口数量在全国占比分别是 16.22&#xff05;和 16.10&#xff05;&#xff0c…

vue开发环境搭建-win7

vue开发环境搭建-win7 1. 安装node,js2. 设置node global(全局)和cache(缓存)路径3. 配置环境变量4. 基于 Node.js 安装cnpm&#xff08;淘宝镜像&#xff09;5. 安装vue6. 安装vue脚手架 vue-cli7. 项目创建8. 添加相关依赖9. 修改端口号10. 运行项目 1. 安装node,js 下载no…

LNMT架构之LNMT与nginx动静分离

LNMT架构之LNMT与nginx动静分离 目录 一、实验前提环境配置 &#xff08;一&#xff09;关闭防火墙&#xff0c;安装本地yum &#xff08;二&#xff09;部署tomcat &#xff08;三&#xff09;部署Mariadb &#xff08;四&#xff09;部署nginx 二、动静分离 步骤一&a…

ts对象笔记

对象作为函数形参 var obj{x:1,y:"你" } interface objType{x:number,y:string } var fun(obj1:objType)>{console.log(obj1.x,obj1.y); } fun(obj); 对象作为返回值 var a{x:1,y:"你" } var b{x:2,y:"好" } interface objType{x:number,y:…

黄金期货CFD会亏损吗?有哪些黄金期货CFD常见问题

差价合约(Contract For Difference&#xff0c;CFD)是一种热门的衍生性金融商品&#xff0c;CFD 可以在不实际持有资产的情况下&#xff0c;透过保证金方式来针对股市指数、外汇、贵金属、原物料等商品进行多、空任一方向之交易。投资者在选择黄金交易时&#xff0c;会遇到哪些…

Pytest 高级进阶用法Hook使用pdm打包成插件

系列文章目录 提示&#xff1a;阅读本章之前&#xff0c;请先阅读目录 文章目录 系列文章目录前言一、创建项目二、安装pdm三、使用pdm创建项目四、创建src五、src下面&#xff0c;再创建包名六、编写plugin七、编写配置pyproject.toml八、使用pdm&#xff0c;添加pytest到该插…

Linux函数库管理

文章目录 Linux函数库管理动态与静态函数库静态函数库动态函数库 ldconfig与 /etc/ld.so.confldconfig使用案例 程序的动态函数库解析&#xff1a;lddldd使用案例 校验软件的正确性常见的校验软件有哪些&#xff1f;使用案例 Linux函数库管理 在 Linux 操作系统中&#xff0c;…

Stable Diffusion教程(5) - 文生图教程

配套视频教程&#xff1a; https://v.douyin.com/UyHNfYG/ 文生图界面标注如下 1 提示词和反向提示词 提示词内输入的东西就是你想要画的东西&#xff0c;反向提示词内输入的就是你不想要画的东西 提示框内只能输入英文&#xff0c;所有符号都要使用英文半角&#xff0c;词语…