当前位置: 澳门新濠3559 > 数据库 > 正文

MySQL是我们比较常用的一种数据库软件,关系数据

时间:2019-11-29 07:15来源:数据库
一、MySQL介绍 Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabase Management System:关系数据库管理系统)应用软件之一。 所谓的 关系型数据库 ,是建立

一、MySQL介绍

  Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

  所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

  RDBMSMySQL是我们比较常用的一种数据库软件,关系数据库管理系统)应用软件之一。关系数据库管理系统(Relational Database Management System)的特点

1、数据以表格的形式出现

2、每行为各种记录名称

3、每列为记录名称所对应的数据域

4、许多的行和列组成一张表单

5、若干的表单组成database

一、Mysql数据库入门及简介
  • MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
  • MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
  • MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
  • (RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server等。)
  • RDBMS的特点:
    1)数据以表格的形式出现;
    2)每行为各种记录名称;
    3)每列为记录名称所对应的数据域;
    4)许多的行和列组成一张表单;
    5)若干的表单组成database;
    对应目前主流的LAMP(Linux+Apache+Mysql+PHP)架构来说,Mysql更是得到各位IT运维、DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始人已独立出来自己重新开发了一个MariaDB,而且使用的人数越来越多。而且MariaDB兼容mysql所有的功能和相关参数。

Mysql 学习笔记(一)

Mysql是最流行的关系型数据库管理系统, 在WEB应用方面MySQL是最好的RDBMS

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

CRUD说的就是增查改删

C:Create 增加对应 CREATE, INSERT , REPLACE
R:Retrieve查询 SELECT *  from TBL

U:Update修改 UPDATE TBL ..SET ...

D:Delete删除  DELETE FROM TBL WHERE ....

二、MySQL 安装

  官网下载,百度安装步骤,直接安装就可以了。

二、Mysql数据库引擎详解

MySQL是我们比较常用的一种数据库软件。它有着诸多的优点,如开源的,免费的等等。其实它还有一个很好的特点,那就是有多种引擎可以供你选择。如果赛车手能根据不同的路况,地形随手更换与之最适宜的引擎,那么他们将创造奇迹。

  • MyISAMMySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务;
  • InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎;
    -BDB源自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性;
  • Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失;
  • Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?
  • MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。
  • InnoDB提供事务支持事务,外部键等高级 数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。

1、安装 (click here)

在MySQL官网上下载适合自己系统的MySQL版本。

三、Navicat for Mysql 安装

  Navicat for MySQL是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给MySQL或MariaDB新手以及专业人士提供了一组全面的工具。

  直接官网下载,傻瓜式安装。

三、服务安装
  • YUM安装yum install mysql-server mysql-devel mysql
    配置文件/etc/my.cnf
    服务文件 /etc/init.d/mysqld
    命令文件/usr/bin/mysql

-源码安装

[root@mini src]# tar zxvf mysql-5.1.63.tar.gz 
[root@mini src]# cd mysql-5.1.63
[root@mini mysql-5.1.63]# ls
aclocal.m4      config.guess  Docs                libmysqld    mysql-test  server-tools   tests
BUILD           config.sub    extra               libmysql_r   mysys       sql            unittest
ChangeLog       configure     include             ltmain.sh    netware     sql-bench      vio
client          configure.in  install-sh          Makefile.am  plugin      sql-common     win
CMakeLists.txt  COPYING       INSTALL-SOURCE      Makefile.in  README      storage        ylwrap
cmd-line-utils  dbug          INSTALL-WIN-SOURCE  man          regex       strings        zlib
config          depcomp       libmysql            missing      scripts     support-files
[root@mini mysql-5.1.63]# ./configure --prefix=/usr/local/mysql --enable-assembler 
#预编译指定安装目录,使用汇编模式提高性能
[root@mini mysql-5.1.63]# make   #编译
[root@mini mysql-5.1.63]# make install   #安装

2、mysql连接数据库

mysql -u [username] -p[password] -h[主机地址]

四、连接数据库

  安装好 Navicat 后,直接点击连接,输入用户名和密码和数据建立连接;连接名自己设置;IP 地址是数据库所在的地址;端口号默认为3306。

图片 1

图片 2

四、mysql 配置文件说明
[root@mini ~]# cat /etc/my.cnf 
[mysqld]     #mysql服务相关的配置
datadir=/var/lib/mysql  #数据目录,企业一般用单独目录存放如/data/mysql
socket=/var/lib/mysql/mysql.sock  #socket通信设置
user=mysql  #使用mysql用户启动数据库
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0  #是否支持快捷方式,0禁止,1支持
log-bin=mysql-bin #开启bin-log日志,二进制文件记录数据库的操作,用于数据库的还原,起备份作用
server-id=1 #mysql服务ID
character-set-server=utf8 #设置服务端字符集utf8

[mysqld_safe]   #安全启动设置
log-error=/var/log/mysqld.log  #错误日志保存目录
pid-file=/var/run/mysqld/mysqld.pid  #设置pid启动文件

[client]   #对其他客户端设置
default-character-set=utf8  #设置客户端字符集

[mysql]   #对本机设置
default-character-set=utf8  #设置本地客户端字符集

#######五、mysql数据库忘记密码重置办法

  • 首先通过命令停止mysqld服务
  • 然后以跳过权限方式后台启动(这里以yum安装为例):/usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
  • 直接通过命令mysql登录数据库后通过update修改user表对应用户的密码,update user set password=password('123456') where user='root and host='127.0.0.1';
  • 修改完密码后以正常方式重启mysqld服务

3、mysql操作

1) 创建数据库

创建名为demo的数据库,字符编码和校对集都是mysql默认值

create database if not exists 数据库名 default character set utf8 collate utf8_general_ci;

2)显示数据库

show databases; ------显示所有数据库

show databases like '%m%'; --------显示含有m的数据库

show create database demo; ------显示创建数据库demo语句

图片 3

3)使用数据库  

use demo

4)修改数据库 

alter database if exists demo character set gbk collate utf8_general_ci;  修改字符编码集

5)删除数据库

drop database if exists demo;

图片 4

6)创建表

create table student(id varchar(10) primary key,name varchar(20),age int(2),sex varchar(5));

6) 显示数据库中的所有表

show tables;

7) 删除数据库中的指定表

drop table [表名]

 五、新建数据库

CREATE DATABASE - 创建新数据库

图片 5

五、修改mysql的工作引擎

由于版本原因5.1使用的是默认myISAM,而且编译安装里面也没有innodb引擎

mysql> show engines;
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                   | Transactions | XA   | Savepoints |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
| CSV        | YES     | CSV storage engine                                        | NO           | NO   | NO         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                     | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
4 rows in set (0.00 sec)
#安装innodb
mysql> install plugin innodb soname 'ha_innodb.so';
Query OK, 0 rows affected (1.65 sec)
mysql> show engines;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
5 rows in set (0.00 sec)

修改my.cnf配置文件

[mysqld]
skip-external-locking #原句是skip-locking,有报错需要修改
default-storage-engine = INNODB #新增定义默认引擎

重启mysqld服务/etc/init.d/mysqld restart

六、新建数据表

CREATE TABLE - 创建新表

1、命名规则:

  • 见名知意 ,千万不要使用中文拼音。
  • 多个单词使用下划线。
  • 不要使用关键字,例如 INSERT INTO  VALUES。

图片 6

备注:源码安装错误日志

以实验机器为例错误日志路径/usr/local/mysal/var/mini.err
发生错误时查看该日志可以帮助排错
如果是yum安装机器日志一般在/var/log/mysqld.log

 七、常用的 SQL 语句(CRUD)

六、慢查询

慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些Sql语句比较耗费资源。

  • 查看当前mysql慢查询
mysql> show variables like "%slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| log_slow_queries    | OFF                                |  
| slow_launch_time    | 2                                   | #超过2秒定义为慢查询
| slow_query_log      | OFF                                | #慢查询状态,关闭
| slow_query_log_file | /usr/local/mysql/var/mini-slow.log | # 慢查询日志文件
+---------------------+------------------------------------+
4 rows in set (0.01 sec)
  • 在mysql数据库里临时开启慢查询
mysql> set global slow_query_log=on;
Query OK, 0 rows affected (0.34 sec)

mysql> show variables like "%slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| log_slow_queries    | ON                                 |
| slow_launch_time    | 2                                  |
| slow_query_log      | ON                                 |
| slow_query_log_file | /usr/local/mysql/var/mini-slow.log |
+---------------------+------------------------------------+
4 rows in set (0.00 sec)
  • 修改配置文件永久开启慢查询
log-slow-queries = /data/mysql/var/db-Test2-slow.log   #日志目录。
long_query_time = 0.1    #记录下查询时间查过1秒。
log-queries-not-using-indexes  #表示记录下没有使用索引的查询。

1、新增

语法:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

示例:

INSERT INTO product (product_name, product_price) VALUES ('产品1', '20');
附件:实际生产mysql数据库配置文件my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
server_id = 10
port = 3306
socket = /tmp/mysql.sock
datadir = /data/mysql/data1
old_passwords = 1
lower_case_table_names = 1
character-set-server = utf8
default-storage-engine = MYISAM
log-bin = bin.log
log-error = error.log
pid-file = mysql.pid
long_query_time = 2
slow_query_log
slow_query_log_file = slow.log
binlog_cache_size = 4M
binlog_format = mixed
max_binlog_cache_size = 16M
max_binlog_size = 1G
expire_logs_days = 30
ft_min_word_len = 4
back_log = 512
max_allowed_packet = 64M
max_connections = 4096
max_connect_errors = 100
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
sort_buffer_size = 2M
query_cache_size = 64M
table_open_cache = 10000
thread_cache_size = 256
max_heap_table_size = 64M
tmp_table_size = 64M
thread_stack = 192K
thread_concurrency = 24
local-infile = 0
skip-show-database
skip-name-resolve
skip-external-locking
connect_timeout = 600
interactive_timeout = 600
wait_timeout = 600
#*** MyISAM
key_buffer_size = 512M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_repair_threads = 1
concurrent_insert = 2
myisam_recover
#*** INNODB
innodb_buffer_pool_size = 16G
innodb_additional_mem_pool_size = 32M
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 120
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_thread_concurrency = 16
innodb_open_files = 10000
#innodb_force_recovery = 4
#*** Replication Slave
read-only
#skip-slave-start
relay-log = relay.log
log-slave-updates

2、删除

语法:

DELETE FROM table_name [WHERE Clause];

示例:

DELETE FROM product WHERE id = 1;

3、更新

语法:

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause];

示例:

UPDATE product SET product_name = '修改产品', product_price = '23' WHERE id= 20;

4、查询

语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M];

示例:

SELECT * FROM product WHERE product_name = '产品1';

* 表示查询所有字段。

 

编辑:数据库 本文来源:MySQL是我们比较常用的一种数据库软件,关系数据

关键词: