Home > Database > Mysql Tutorial > MySQL知识总结_MySQL

MySQL知识总结_MySQL

WBOY
Release: 2016-06-01 13:45:06
Original
834 people have browsed it

bitsCN.com

数据库发展历程:
 层次模型-->
 网状模型(耦合度高)-->
 关系模型(对象-关系模型)
 
  DBMS数据库管理系统
  RDBMS关系数据库管理系统
  managing storage 存储管理
  managing security 安全管理
  managing metadata 元数据管理
  managing trasactions 事务管理
  supporting connectivity 支持扩展
  optimizing performance 性能优化
  providing back-up and recovery mechanisms 备份和恢复
  processing requests for data retreval an modifaction 数据检索和修改
 
 DataBase发展方向:
  开发DBA
    数据库设计
    存储过程,存储函数,触发器(SQL)
  管理DBA
    软件安装,卸载,升级
    数据导入和导出
    数据的备份和恢复
    用户管理,权限管理
    安全管理
    架构设计
  
 SQL(Structure query langue)结构化查询语言
 内建的语句:
   select ,update,drop,update ...
 查询语句:select ,update , delate
 
常见数据库管理系统
 大型的:
 oracle
 sybase
 informix
 DB2
 
 小型的:
 sql server
 
 开源的:
 Mysql
 postgreSQL-->EnterpriseDB(除了崩溃后恢复不如mysql,其他的性能是相当优越的)
 
mysql的安装和升级:
 mysql是基于线程工作
DML 数据操作语言
DDL 数据定义语言
存储引擎:将逻辑结构转化成物理结构
Mysql版本:
  GA (general availability)稳定版本
  RC 发行版
  beta 测试版
  alpha 测试版
mysql的软件包
rpm包:
mysql-client 客户端*
mysql-debuginfo 调试信息
mysql-devel开发库*
mysql-embedded 嵌入式mysql
mysql-ndb-management mysql的集群
mysql-server 服务器的端口,提供mysqld*
mysql-shared 共享工具*
mysql-shared-compat 提供老版本库的
mysql-test 测试组件

Linux上的启动查找配置的次序
/etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf-->/path/to/file when default-extra-file=/path/to/file is specifid-->~/.my.cnf
启动查找顺序,如果有冲突以最后找到的为准,如果没冲突就综合考虑
从头到尾都要查询
安装完成以后mysql会自动生成5个帐号,而且密码为空
3个管理员帐号:root@localhost、root@127.0.0.1、root@hostname
2个匿名帐号:''@localhhost、''@hostname
#mysql
>use mysql 使用mysql
>SHOW TABLES; 显示表
>DESC TABLE_NAE;显示表格式
>SELECT Host,User,Password FROM user; 显示表中指定列
>SELECT * FROM user /G; 按照列的方式显示
>DORP DATABASE db_name; 删除数据库
装完mysql的第一步工作是为root设置密码,删除匿名用户,提高安全性
设置密码:
方法1:
#mysqladmin -uroot -hlocalhost password'redhat' 设置密码:-u用户名,-h主机名
方法2:
#mysql
>UPDATE user SET Password=PASSWORD('redhat') WHERE User='root' and Host='127.0.0.1';
只要原密码相同,加密后的密码就一样
>FLUSH PRIVILEGES;通知mysql把修改的内容加载到内存
方法3:
#mysql
>SET PASSWORD FOR  'root'@'host_name'=PASSWORD('new_password');
>FLUSH PRIVILEGES;
删除匿名用户
>DROP USER ''@localhost;
>DROP USER root@'::1';
>DROP USER ''@hostname;
>FLUSH PRIVILEGES;
授权:
>GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat';
>FLUSH PRIVILEGES;
这个时候就可以是window客户端连接进来
mysql AB工具:
mysql
mysqladmin
mysqldump
Options for user:
--user==-u  用户
--password==-p  密码
Options for host:
--protocol
  tcp  客户端和服务端不在同一个主机上
  socket    客户端和服务端在同一个主机上且是Linux或unix上
  pipe    mysql-server 在window上
  memory    mysql-server 在window上
--host==-h   主机
--port
--socket
-D db_name
--database db_name
mysql 的应用:
eg;mysql -uroot -h192.168.1.101 -D mysql -p
>SELECT DATABASE();显示当前默认数据库
>SELECT USER();显示当前默认用户
#cd ~
#vim .my.cnf
[client]
user=root
password=redhat
然后在使用
#mysql 就不用输入密码了,但是你要注意这个文件的权限

#vim test.sql
 CREATE DATABASE test;
批处理方法:
方法一:
#mysql -uroot -p 方法二:
#mysql
>SOURCE /etc/test.sql;

送到服务器端的要在后面加上“;”
而客户端执行的不需要加
>STATUS
mysql提示符:
-> 命令未执行完
'> 缺少对应的"’”
"> 缺少对应的“””
/*> 缺少对应的注释符号
 
数据库对象:
 表,二维关系
 索引
 视图
 触发器
 存储过程
 存储函数
 事件调度器
 游标
 用户
物理
 文件
存储引擎
 插件式的存储引擎
 
 
mysql 会记录下命令历史,放在用户家目录下的.mysql_history
开启命令补全
>/#
>rehash
/c 取消命令
/d 定义结束符号
  eg:/d // 就是以//结束
/g 忽略默认定义的结束符,直接送到服务器端执行
/G 以列的方式显示
-E or --veri
HELP  COMMAND 查看命令帮助
-e
mysql -e "SHOW DATABASE" 直接在shell中执行mysql语句,在脚本中很常用
mysql  -e "SELECT User,Host,Password FROM mysql.user;" 如检索某个表

mysqladmin的使用:
mysqladmin [option] command [arg] [command]
#mysqladmin ping 探测服务器是否处于运行状态
#mysqladmin -h 172.16.100.1 ping
#mysqladmin create sampledb 创建数据库
#mysqladmin  drop 删除
#mysqladmin  debug 调试信息(mysql的数据目录下的)
#mysqladmin extended-status== >SHOW STATUS;
#mysqladmin flush-hosts
#mysqladmin flush-logs
#mysqladmin flush-privileges
#myaqladmin flush-status 
#mysqladmin flush-tables  清空表
#mysqladmin flush-thread
#mysqladmin processlist 查看当前用户连接进来,并做什么操作
            reload
            refresh
            shutdown
            start-slave 启动从服务器
            status 显示全局状态信息
            variables
            version 显示版本号
            status 显示
#mysqladmin status --sleep 3 --count 2
#top -d 2 -n 2 两秒刷新一次,显示两次退出
>show variables like '%datadir%';查看数据文件的目录

mysql图形化工具:
SQLyog
MySQLFront
phpMyAdmin
MySQL Query Browser
MySQL Administrator
MySQL Workbench
 
mysql开发知识:
 >use sampledb;
 >CREATE TABLE stus (Name CHAR(18),GENDER CHAR(1));
NO NULL
 
>SHOW CHARACTER SET; 查看支持字符集
>SHOW COLLATION;查看排序方式
SELECT CURRENT_DATE();
SELECT CURRENT_TIME();
SELECT CURRENT_DATETIME();
CREATE TABLE user (ID UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name VARCHAR(100) NO NULL,Gender ENUM('M','F') NO NULL DEFAULT 'M',Age TINYINT UNSIGNED);
INSERT INTO user (Name,Age) values ('luowei',18); 插入
SHOW WARNINGS;查看错误警告
SET sql_mode='ansi'设置sql的模型
SHOW VARIABLES LIKE "%sql_mode%";查看模型
SHOW VARIABLES LIKE '%sql_mode%';
常用的模式:
 ansi
 ignore_space
 strict_all_tables
 strict_trans_tables
 traditional
mysql变量类型
 全局变量:对每一个新建立的会话都有效
 会话变量:只对当前会话有效
 SHOW VARIABLES
  SHOW GLOBAL VARIABLES;显示全局变量
  SHOW SESSION VARIABLES; 显示会话变量
   LIKE ''
         %任意长度的字符串
         ?匹配一个
   SELECT @@global.sql_mod; 明确知道变量名字
  修改变量值:
     SET sql_mode='TRADITIONAL'
     SET GLOBAL sql_mode='TRADITIONAL'
     设置的会话变量立即生效,但是只对当前会话有效
     设置全局变量不会立即生效,重新登录对所有的有效
大小写:
 关键字和函数名不区分大小写,如select
 表名,数据库名在window上不区分大小写,在Linux上区分
 存储过程和存储函数不区分大小写
 触发器区分大小写
 mysql的别名区分大小写
database:
 CREATE DATABASE db_name; 创建
 CREATE DATABASE IF NOT EXISTS mydb; 脚本中常用,如果不存在就创建
 CREATE DATABASE CHARACTER SET 'gbk' COLLATE 'gbk_bin' mydb;
 SHOW CREATE DATABASE db_name;显示使用什么语句创建的数据库
 DROP DATABASE db_name;
 DROP DATABASE IF EXISTS db_name; 删除数据库
 SHOW WARDINGS;显示警告
 ALTER DATABASE db_name COLLATE chartset 修改数据库
 
tables && Index
  key(键),index
    候选键
    主键 primary key
    唯一键 unique key
    外键  foreign key  表和表之间用的
  范式
 
 SHOW ENGINES;显示系统默认引擎,default是默认的
 对于mysql,如果使用外键,就要有支持事务的引擎
 索引能加快查询速度,但是对数据库的修改会降低速度
 
 《warn:未完,待续。。。》
作者“IT梦-齐-分享”

bitsCN.com
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template