您好,欢迎访问一九零五行业门户网

MySQL知识总结_MySQL

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
其它类似信息

推荐信息