MySQL基础实战

一.数据库基础:

DBMS数据库管理系统(Database Management System)

RDBMS:关系数据库管理系统(Relational Database Management System)

C/S:通过专有协议

关系模型:表(行,列),二维关系

范式:第一范式,第二范式,第三范式;

关系运算:

选择

投影

数据库:表,索引,视图(虚表)

SQL:结构化查询语言

DDL:数据定义语言

DML:数据操作语言

编程接口

自行定义存储过程

自行定义存储函数

触发器:

时间调度器:类似Linux中的定时任务

过程式编程:选择、循环

三层模型

物理层:表空间(管理)

逻辑层:表,索引,视图(DBA)

视图层:用户角度视图(用户)

解决方案

Oracle,Sytbase,Informix,DB2(IBM)

Mysql,MariaDB,Postgresql,SQLite,

二.MySQL基础

版本:---5.1---5.5---5.6---5.7

MariaDB:

插件式存储引擎:

单进程多线程:

连接线程:维护用户连接

守护线程:对应的数据写入到磁盘上

Mysql配置文件:集中式配置,能够为mysql的多个应用程序提供配置信息

[mysqld]:mysql的服务器

[mysqld_safe]:mysql的的启动服务器

[mysqld_multi]:单机多实例配置,适合集中管理

[server]:mysql服务端

[mysql]:mysql数据存放

[mysqldump]:mysql数据导出

[client]:mysql客户端

安装方式

os vendor:rpm

MySQL:

rpm

展开可用

源码,编译

安装后的设定:

(1)为所有root用户设定密码:

mysql>set passwrod

mysql>update mysql.user SET password=PASSWORD(‘you_passwd‘) WHERE cluase;

#mysqladmin:命令行设置

(2)删除所有匿名用户

mysql>DROP USER ‘‘@‘localhost‘;

上述两步骤可运行命令:mysql_secure_installation即可设置

(3)建议关闭主机名反解功能:

[mysqld]
skip-name-resolve

元数据数据库:mysql,user,host等

获取元数据有三种思路,第一种,各种show,第二种,各种select,第三种,是mysql的命令行下的命令,不是sql语句

1show

[sql] 
show databases; 
--列出所有数据库  
show create database
db_name;  --查看数据库的DDL  
show tables; --列出默认数据库的所有表  
show tables from db_name; 
--列出指定数据库的所有表  
show table status; 
--查看表的描述性信息  
show table status from
db_name;  --查看具体表的信息
show create table tbl_name; 
--查看表的DDL  
show columns from tbl_name; 
--查看列信息  
show index from tbl_name; 
--查看索引信息

有几种show语句还可以带有一条like ‘pattern‘字句,用来限制语句的输出范围,其中‘pattern‘允许包含‘%‘和‘_‘通配符,比如下面这条语句返回domaininfo表中以s开头的所有列:

show
columns from domaininfo like ‘s%‘;

2select

像上面这张支持like字句的所有show都可以改写成一条where字句,如:

show
columns from domaininfo where field=‘sysdomain‘;

:desc tbl_name和explain tbl_name的效果和show columns from tbl_name一致。

从INFORMATION_SCHEMA数据库里查询相关表

INFORMATION_SCHEMA是MySQL自带的一个系统数据库,它里面存储了所有的元数据,通过select里面的相关表就可以获取你想要的元数据。和show语句相比,它比较麻烦,但它的好处是标准的SQL语句,更具有可移植性,且更灵活,可以通过各种表达式获取你真正需要的信息。

3:从命令行获取元数据

前面两种方法都必须得在MySQL命令行里执行,而mysqlshow和mysqldump提供了从OS命令行获取元数据库的方法,如:

mysqlshow  --列出所有数据库   例:mysqlshow
-uroot -p123456

mysqlshow db_name  --列出给定数据库的所有表

mysqlshow db_name tbl_name  --列出给定数据库表的所有列

mysqlshow --keys db_name tbl_name  --列出索引信息

mysqlshow --status db_name  --列出数据库的描述性信息

mysqldump可以让你看到create table语句(就想show create table语句一样),如:

[sql]

mysqldump --no-data db_name [tbl_name] ...

注意:在用mysqldump查看表结构时,一定要加上--no-data,否则你看到的将是数据库表里的数据

mysql--->mysqld    C/S架构

客户端程序:

mysql:交互式的client工具

mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保                      存文本文件中;

mysqladmin:基于mysql协议管理mysqld;

mysqlimport:数据导入工具(但并不是mysqldump导出的数据)

非客户端类的管理工具:

myisamchk,myisampack

如何获取程序默认的使用配置:

mysql --print-defaults:获取mysql客户端程序默认的配置

mysqld --print-defaults:获取mysql服务端程序的默认配置

客户端类应用程序的可用选项:

-u --user=               :用户

-h --host=               :主机IP

-p --password=           :密码

-P --port=               :端口

--portcol=(tcp|sock)     :协议

-s --socket=             :Linux默认连接范式,mysql还可以使用TCP进行连接

-D --database=           :数据库名

-c --compress             :mysql压缩

mysql -e
"SQL"  命令行执行命令,不进入交互式运行

例:mysql -uroot -p123456 -e "show databases;"

mysql的使用模式:

交互式模式:

可运行命令有两类:

Mysql>\h

Mysql>help

服务器端命令:

SQL,需要语句结束符;

脚本模式:

#mysql -uusername -hHOST -pPASSWORD
</path/from/somefile.sql

mysql>source
/path/from/somefile.sql

服务器端( mysqld):工作特性有多种定义方式

命令行选项

配置文件参数

获取可用参数列表:mysqld --help --werbose

获取运行中的mysql进程各参数及其值:

mysql>SHOW
GLOBAL VARIABLES;

mysql>SHOW
SESSION VARIBLES;

注意:其中有些参数支持运行时修改,有些参数不支持,且只能通过修改配置文件,并重启服务器程序                      生效。

有些参数作用域是全局的,不可改变;有些可以为每个用户单独提供的设置。

修改服务器变量的值:

mysql>help SET      获取语法

全局:

mysql>SET GLOBAL
system_var_name=value;

mysql>SET
@@global.system_var_name=value;

会话:

mysql>SET [SESSION]
system_var_name=value;

mysql>SET
@@[session.]system_var_name=value;

状态变量:用于保存mysql运行中的统计数据的变量;

mysql>SHOW GLOBAL STATUS;

mysql>SHOW [SESSION]
STATUS;

三.SQL语句基础

SQL标准:ANSI SQL标准

SQL-86,SQL-89,SQL-92,SQL-99,SQL-03

mysql 数据类型

字符型

数值型

日期时间型

内建类型:

字符型:

char,binary:定长数据类型

VARCHAR,VARBINWRY:变长数据类型;需要结束符

TEXT:TINYTEXT
,TEXT,MEDIUMTEXT,LONGTEXT

BLOB:TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB

MEUM,SET

数值型:

精确数值型:

整型:微整形,小整型,中等整型,大整型

十进制型:十进制

近似数值型:

浮点型:单精度,双精度,

日期时间型:日期(三字节),时间(三字节),日期时间(八字节),时间戳,年份;

内建型:

字符类型的修饰符:

NOT NULL:非空约束;

NULL:空

DEFAULT ‘STRING‘:指定默认值;

CHARACTER SET ‘‘:使用字符集

COLLATION:使用的排序规则

mysql>SHOW CHARACTER SET;

mysql>SHOW COLLATION;

整型修饰符:

NOT NULL

NULL

DEDAULT NUMBER

日期修饰符:

内建类型SET和EMUM的修饰符

SQL 模型:定义mysqld对约束等的响应行为:

修改方式:

mysql>SET GLOBAL
sql_mode=‘MODE‘;

mysql>SET
@@GLOBAL.sql_mode=‘MODE‘;

需要修改权限:仅对修改后新创建的回话有效,对已创建的回话无效

mysql>SET SESSION
sql_mode=‘MODE‘;

mysql>SER
@@session.sql_mode=‘MODE‘;

常用模型:TRADITIONAL,STRICT_TRANS_TABLES,or STRICT_ALL_TABLES

修改模型之后可以对sqlserver或者oracle兼容

SQL语句:DDLDML

      DDL:数据定义语言:主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

CREATE,ALTER,DROP   :创建,添加、删除

DB组件:数据库、表、索引、视图、用户、存储过程、存储函数、触发器、时间调度器

CREATE相关的常用命令:(CREATE可以用的,相应的ALTER也可以用)

CREATE DATABASE     :创建库

CREATE EVENT      :创建事件

CREATE FUNCTION   :创建函数

CREATE FUNCTION UDF      :

CREATE INDEX          :创建索引

CREATE LOGFILE GROUP  :创建测试日志

CREATE PROCEDURE      :创建程序

CREATE SERVER         :创建服务

CREATE TABLE          :创建表

CREATE TABLESPACE      :创建表空间

CREATE TRIGGER        :创建触发器

CREATE USER         :创建用户

CREATE VIEW         :创建视图

 
    DML:数据操作语言:一般是对数据库里的数据进行操作的语言

INSERT,DELETE,UPDATE,SELECT     :插入、修改、更新、查询

数据库级别:

CREATE,ALTER,DROP

{DATABASE|SCHEMA}

{IF EXISTS}

{IF NOT EXISTS}

表级别:二位关系

设计表:遵循规范;表使用规范,统一规范

定义:字段,索引

字段:字段名,字段数据类型,修改符

约束:索引:应该创建在经常用作查询条件的字段上;

索引:实现级别在存储引擎;

索引分类:

稠密索引、稀疏索引

B+树索引、hash索引、R树索引、FULLTEXT索引

聚集索引、非聚集索引

简单索引、组合索引

创建表:CREATE TABLE

(1)直接创建

(2) 通过查询先存的表创建:新表会被直接复制插入查询而来的数据

(3)通过复制现存的表的表结构创建:不复制数据

注意:Storage Engine是指表的类型,也即在表创建指明其使用的存储引擎

同一个库中表要使用同一种存储引擎类型

查看表结构:DESCRIBE TABLE_NAME;

修改表:ALERT TABLE

删除表:DROP TABLE

 

四.MYSQL基础架构及SQL语句

Mysql架构:

1.Connectors

指的是不同语言中与SQL的交互:

Native C API :调用接口

JDBC:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API

ODBC:开放数据库连接(Open Database Connectivity)

2 Management Serveices & Utilities

系统管理和控制工具:集群、复制、备份、还原、实例管理控制等信息

3 Connection Pool: 连接池

连接池,管理缓冲用户连接,线程处理等需要缓存的需求(用户与mysql进行通讯需要走的一座桥)

管理缓冲用户连接,线程处理等需要缓存的需求。

负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的主要工作就是负责 MySQL Server 与客户端的通信,
接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等。

4 SQL Interface: SQL接口。

接受用户的SQL命令,并且返回用户需要查询的结果。比如select
from就是调用SQL
Interface

5 Parser: 解析器。

SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。

在 MySQL中我们习惯将所有 Client 端发送给 Server 端的命令都称为 query ,在
MySQL Server 里面,连接线程接收到客户端的一个 Query 后,会直接将该 query 传递给专门负责将各种 Query 进行分类然后转发给各个对应的处理模块。
主要功能:
a . 将SQL语句进行语义和语法的分析,分解成数据结构,然后按照不同的操作类型进行分类,然后做出针对性的转发到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
b.  如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的

6 Optimizer: 查询优化器。

查询优化器(sql的顺序是:from --> where --> 列名)

SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端请求的 query(sql语句) ,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query
语句的结果

他使用的是“选取-投影-联接”策略进行查询。
       用一个例子就可以理解: select uid,name from user where gender =
1;
       这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
       这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
       将这两个查询条件联接起来生成最终查询结果

7 Cache和Buffer: 查询缓存。(也就是查询结果缓存在里面)

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

他的主要功能是将客户端提交 给MySQL 的 Select 类 query 请求的返回结果集
cache 到内存中,与该 query 的一个 hash 值 做
一个对应。该 Query 所取数据的基表发生任何数据的变化之后,
MySQL 会自动使该 query 的Cache 失效。在读写比例非常高的应用系统中,
Query Cache 对性能的提高是非常显著的。当然它对内存的消耗也是非常大的。

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

8 、存储引擎接口

存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。
Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)
现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,NDB
默认下MySql是使用MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术,但是它不支持事务。
InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。
Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。

Mysql逻辑架构图

简略描述:

每个虚线框为一层,总共三层。

第一层,服务层(为客户端服务):为请求做连接处理,授权认证,安全等。

第二层,核心层:查询解析,分析,优化,缓存,提供内建函数;存储过程,触发器,视图。

第三层,存储引擎层,不光做存储和提取数据,而且针对特殊数据引擎还要做事务处理

>  在解析查询之前,服务器会“询问”是否进行了查询缓存(只能缓存SELECT语句和相应结果)。缓存过的直接返回结果,未缓存的就需要进行解析查询,优化,重新执行返回结果。

> 解析查询时会创建一个内部数据结构(树),然后对其进行各种优化。

> 优化:重写查询,决定查询的读表顺序,选择需使用的索引。

Mysql属于单进程多线程

用户连接:连接线程

mysql数据文件类型:

数据文件、索引文件

重做日志、撤销日志、二进制日志、磁错误日志、查询日志、慢查询日志、(中继日志)

五.Msyql的DDL
& DML 语句

 

索引:INDEX

索引管理:

按特定数据结构存储数据:

索引类型:

聚集索引、非聚集索引:数据是否与索引存储在一起;

主键索引、辅助索引:一一对应的

稠密索引、稀疏索引:是否索引了每一个数据项

B+树索引、hash索引、R树索引(空间索引)、全文索引

简单索引、组合索引

左前缀索引

覆盖索引

管理索引的途径:

创建索引:创建表时指定:CREATE INDEX

创建或删除索引:修改表的命令

删除索引:DROP INDEX

查看表上的索引:

SHOW
{INDEX | INDEXES | KEYS}

{FROM | IN} tbl_name

[{FROM | IN} db_name]

[WHERE expr]

EXPLAIN:查看执行索引语句的情况

视图:VIEW

虚表:

创建方法:

CREATE

[OR REPLACE]

[ALGORITHM = {UNDEFINED | MERGE |
TEMPTABLE}]

[DEFINER = { user | CURRENT_USER }]

[SQL SECURITY { DEFINER | INVOKER }]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

删除视图:

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

[RESTRICT | CASCADE]

视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对于基表实现;其修改操作受基表限制

DML

INSERT、DELETE、UPDATE、SELECT

INSERT:

一次插入一行或多行数据:如果一次插入一百行,最好触发一次索引更新

Syntax:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name

[PARTITION (partition_name,...)]

[(col_name,...)]

{VALUES | VALUE} ({expr |
DEFAULT},...),(...),...

[ ON DUPLICATE KEY UPDATE

col_name=expr

[, col_name=expr] ... ]

INSERT
tal_name [(col1,...)] VALLUES (vall,...),(val21,...)

Or:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name

[PARTITION (partition_name,...)]

SET col_name={expr | DEFAULT}, ...

[ ON
DUPLICATE KEY UPDATE

col_name=expr

[, col_name=expr] ... ]

Or:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name

[PARTITION (partition_name,...)]

[(col_name,...)]

SELECT ...

[ ON DUPLICATE KEY UPDATE

col_name=expr

[, col_name=expr] ... ]

DELETE:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

FROM tbl_name[.*] [, tbl_name[.*]] ...

USING table_references

[WHERE where_condition]

注意:一定要有限制条件,否则将清空表中的所有数据

限制条件

WHERE

LIMIT

UPDATE:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference

SET col_name1={expr1|DEFAULT} [,
col_name2={expr2|DEFAULT}] ...

[WHERE where_condition]

[ORDER BY ...]

[LIMIT row_count]

注意:一定要有限制条件,否则将修改所有行中的指定字段

   限制条件:

WHERE

LIMIT

SELECT:

重要组件:Query Cache

查询执行路劲中的组件:查询缓存、解析器、预处理器、优化器、查询执行引擎、存储引擎

SELECT语句的执行流程:

FROM
Clause---WHERE Clause---GROUP BY---HAVING Clause--ORDER BY---SELECT--LIMIT

单表查询:

SELECT

[ALL | DISTINCT | DISTINCTROW ]

[SQL_SMALL_RESULT] [SQL_BIG_RESULT]
[SQL_BUFFER_RESULT]

[SQL_CACHE | SQL_NO_CACHE]
[SQL_CALC_FOUND_ROWS]

select_expr [, select_expr ...]

[FROM table_references

[PARTITION partition_list]

[WHERE where_condition]

[GROUP BY {col_name | expr | position}

[ASC | DESC], ... [WITH ROLLUP]]

[HAVING where_condition]

[ORDER BY {col_name | expr | position}

[ASC | DESC], ...]

[LIMIT {[offset,] row_count | row_count
OFFSET offset}]

[FOR UPDATE | LOCK IN SHARE MODE]

DISTINCT:数据去重

SQL_CACHE:显式指定存储查询结果于缓存中

SQL_NO_CACHE:显式查询结果不予缓存

query_cache_type的值为“ON”是,查询缓存功能打开

SELECT的结果符合缓存条件及会缓存,否则,不予缓存

显式执行SQL_NO_CACHE,不予缓存;

query_cache_type的值为“DEMANG”时,查询缓存功能按需进行

显式指定SQL_CACHE的SELECT语句才会缓存,其它均不予缓存

SHOW GLOBAL VARIABLES LIKE ‘query%‘; 查询缓存是否开启,和缓存空间大小

SHOW GLOABL STATUS LIKE ‘Qcache%‘;   查询缓存命中次数

Qcache_hits缓存命中次数值

SHOE GLOABL STATUS LIKE ‘Com_se%‘;   查询次数

Com_select查询次数值

使用查询命中次数除以查询次数就是命中率

字段显式可以使用别名:

col1 AS alias1,col2 AS alias2,...

WHERE字句:指明过滤条件以实现"选择"的功能;

过滤条件:布尔型表达式

算术操作符:+,-,*,/

比较操作符:=,!=,<>,<=>,>,<,>=,<=

BETWEEN min_num AND max_num

IN (element1,elemnt2,...)

IS NULL

IS NOT NULL

LIKE:

%:任意长度的任意字符

_:任意单个字符

RLIKE:

REGEXP:匹配字符串可用正则表达式书写模式

逻辑操作符:

NOT

AND

OR

XOR

GROUP字句:根据指定的条件把查询结果进行“分组”以用于做“聚合”运算

avg(),max(),min(),count(),sum()

HAVING字句:对分组聚合运算后的结果指定过滤条件;

ORDER BY字句:根据指定的字段对查询结果进行排序;

升序:ASC

降序:DESC

LIMIT [offset,]row_count:对查询的结果进行输出行数数量限制;

[FOR UPDATE | LOCK IN SHARE MODE]

对查询结果中的数据请求施加“锁”;

FOR UPDATE:写锁,拍他锁;

LOCK IN SHARE MODE:读锁,共享锁

练习:导入helldb.sql生成数据库

(1)在Students表中,查询年龄大于25岁的,且为男性的同学的名字和年龄;

(2)以ClassID为分组依据,显示每组的平均年龄;

(3)显示第2题中的平均年龄大于30的分组及平均年龄

(4)显示以L开头的名字的同学的信息

(5)显示TeacherID非空的同学的相关信息;

(6)以年龄排序后,显示年龄最大的前10位同同学的信息

(7)查询年龄大于等于20岁,小于等于25岁的同学的信息;用三种方法

多表查询:

交叉连接:笛卡尔乘积

内连接:

等值连接:让表之间的字段以“等值”建立连接关系

不等值连接

自然连接

自连接

外连接:

左外连接:

FORM tb1 LEFT JOIN tb2 ON tb1.col=tb2.col

右外连接:

FORM tb1 RIGHT JOIN tb2 ON tb1.col=tb2.col

子查询:在查询语句嵌套这查询语句

基于某语句的查询结果再次进行的查询

用WHERE字句中的子查询:

(1)用于比较表达式中的子查询,子查询仅能返回单个值

SELECT Name,Age FROM students
WHERE Age>(SELECT avg(Age) FORM students);

(2)用于IN中的子查询:子查询应该单键查询并返回一个或多个值从而构成列表;

(3)用于EXISTS;

用于FORM字句中的子查询;

使用格式:SELECT tb_alais.col... FROM (SELECT clause) AS tb_alias WHERE Clause;

联合查询:UNION

时间: 2024-10-07 05:59:54

MySQL基础实战的相关文章

MySQL的初次见面礼基础实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/61614366 出自[zejian的博客] 本篇将以最简单的方式呈现并演绎mysql数据库的必知必会的知识点,通过本篇博文您将会对mysql从起点到终点的较为全面的认识,关于mysql的知识,将分两篇来记录,即MySQL的基础实战篇和MySQL的进阶实战篇,以下是本篇的主要知识点. 基础实战篇 环境准备 数据库与表的创建以及SQL增

mysql颠覆实战笔记(七)--白话理解事务

今天我们学习web开发级mysql颠覆实战课程第9课没MYSQL事务(一):白话理解事务.前面有两节课第7讲:商品系统设计(四):商品属性设计之自定义属性,第8讲:商品系统设计(五):一维属性的商品价格表设计的笔记本人省略,没有原因,个人爱好. 所谓事务,用老师白话理解就是: 1.不止要执行一个步骤.2.这些步骤每一步都按照既定想法去执行,错一步那么整个过程都反悔.3.事务进行时,外界干扰无法影响. 这算是老师的一个基础讲解,首先我们来建一张用户余额表,这个表我们采用的是Innodb模式,在这个

MySQL基础1

类型 mysql sqlserver http Tomcat oracle 端口 3306 1433 80 8080 1521 |-----启动mysql服务的dos命令 停止mysql:net stop mysql 启动mysql:net start mysql |-----连接.退出mysql 格式:mysql  -h主机地址 -u用户名 p用户密码 -前均有空格,h代表进入的服务器(本机可以不写),u代表用户名(用户名默认为root),p代表密码(默认密码为p0).mysql提示符是mys

Mysql入门实战上

前面讲解了Mysql的安装以及连接工具.本文是Mysql入门实战的上,主要讲解mysql服务的启动与停止,数据库管理,表管理以及数据的增删改: 源码下载地址 1.Mysql服务的启动,停止 一般只要你安装好了,每次启动电脑时mysql服务都是自动启动的.当然mysql也有他自己的启动停止等命令: 1.1windows下Mysql的启动与停止: 在 Windows 命令提示符下运行: 启动: net start MySQL 停止: net stop MySQL 重启: net restart My

MySql基础教程(三)——查询训练

在MySql两轮基础的学习之后,来一波实战演习... 三张表:学生表,课程表,成绩表. 建表详细信息见 MySql基础教程(一)

mysql基础----&gt;基本命令与13道练习

mysql基础入门的总结 关于数据库: 数据库是软件开发人员要掌握的基本工具,软件的运行的过程就是操作数据的过程,数据库中的数据无非就是几个操作:增-删-查-改. Mysql安装完成后,需要配置变量环境,找到配置路径path,然后把mysql安装目录bin文件导入就可以了. 然后运行cmd进入dos. 进入dos后输入:mysql -uroot -p密码 mysql实战练习: 然后就可以进入mysql的操作环境了.如下图:登录后我执行了一条: show databases命令,查看所有的库. 创

基于源码编译和yum安装的LNP+MYSQL主从实战

1.基于源码编译安装的LNP+MYSQL主从实战准备3台服务器,其中一台作为Nginx WEB服务器+PHP-FPM(FastCGI),另外两台作为MYSQL主从服务器,服务器IP信息:? 10.10.10.4-Linux+Nginx+PHP? 10.10.10.5-MYSQL Master:? 10.10.10.6-MYSQL Slave:? 1) Nginx安装配置? #安装PCRE库和基础库支持? yum install pcre-devel pcre gcc-c++ openssl op

【夯实Mysql基础】记一次mysql语句的优化过程!

1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使用了 2个 order by和 1个limit的分页 sql. 一个sql是上一个sql的count(*),即链接了5个表,当然没有limit了(取总数). 2. [着手优化] 1)[优化思路] 第一条是 做client调用 service层的数据缓存 第二条就是 优化sql本身. 这里着重讲一下

MySQL 基础(二)

MySQL 基础(二) ============================================================================== 概述: ============================================================================== MySQL   1.数据结构: ★分类: 结构化数据:  关系型数据库 半结构化数据:YAML.XML.JSON 非结构化数据:日志文件,NoSQL