分类: Mysql/postgreSQL
2011-09-02 20:51:46
数据库:数据管理软件,数据
数据库发展:层次模型-------------网状模型----------------关系模型-------------对象-关系模型
DBMS: 数据库管理系统
RDBMS:关系型数据库管理系统
数据库的常用功能:
Managing storage:数据存储
Maintaining security:安全管理
Maintaining metadata:管理原数据
Managing transactions 管理事务
Supporting connectivity:检索
Optimizing performance:性能优化
Providing back-up and recovery mechanisms:提供备份和恢复
Processing request for data retrieval and modification:提供数据检索和修改的请求
DataBase:开发DBA:主要工作:数据库设计,存储过程,存储函数,触发器
管理DBA:数据库的升级、备份、恢复、安装、卸载,用户管理,安全管理,架构设计
SQL: 结构化查询语言
查询 语句:select , update , delete
ANSI SQL 标准: SQL-86--------SQL-89--------SQL-92--------SQL-99--------SQL-2003
Core SQL
RDBMS: 大型 Oracle , Sybase , Informix , DB2 中型: SQL Server 开源MySQL,PostgreSQLà EnterpriseDB
MySQL Community 社区版 免费
MySQL Enterprise 企业版 收费
客户端连接器:Connectors连接器:
Native C API ,JABC, ODBC, .NET, PHP , Perl , Python, Ruby, Cobol
DML 数据操作语言 DDL 数据定义语言 parser: 分析器 optimizer:
pluggable storage engines 存储引擎
一般安装需要的软件包,打对号的是需要安装的,其他的依情况
linux下Mysql启动次序:
如果启动时my.cnf都找到,则以他们的和,如果前者和后者冲突则,以后者为准, 如果mysql home没有设置则自动设置为basedir
windows 下mysql 启动次序:
MySQL安装完后默认生成5个用户分别是: , root@localhost , root@hostname , 两匿名用户 ‘’@localhost , ‘’@hostname
SHOW TABLES 查看数据库表
use mysql 更改默认某个数据库(如mysql)
DESC 表名 查看表内容
SELECT * FROM 表名 查看表信息
FLUSH PRIVILEGES 立即生效
SELECT DATABASE() 显示当前默认数据库
DROP DATABASES 数据库表名 删除某个表
SHOW CHARACTER SE\C 显示支持的字符集
SHOW COLLATION 现在字符集
SHOW CURRENT_DATE 显示日期
SHOW CURRENT_DATETIME() 显示时间
SHOW WARNINGS 查看警告
SHOW ENGINES 显示存储引擎
SHOW VARIABLES LIKE “%sql_mode%” 模式
SET sql_mode= 设置模式
例:SET sql_mode=”STRICT_all_tables” 严格模式,
常用的模式: ANSI 只能使用单引号 ; STRICT_ALL_TABLES严格模式,禁止非法数据插入; TRADITIONAL 默认模式
mysql变量类型:
全局变量: 对每一个新建的会话都生效
会话变量:只对当前会话有效
SHOW GLOBAL VARIALES 全局会话显示
SHOW SESSION VARIABLES 当前会话显示
例: SHOW GLOBAL VARIALES LIKE “%time%” 在全局中查含time字符
mysql> CREATE DATABASE IF NOT EXISTS aa; 如果不存在aa则创建,脚本中用
mysql> CREATE DATABASE IF NOT EXISTS aa CHARACTER SET ‘gbk’; 创建aa字符集为gbk
mysql> SHOW CREATE DATABASE aa; 查看创建aa的命令
mysql> DROP DATABASE IF EXISTS aa; 存在aa则删除
改变:
mysql>
主键: key :侯选键 ;主键 primary key ; 唯一键 unique key ;外键 foreign key
设置密码:共有三种:
# mysqladmin –uroot –hlocalhost password ‘redhat’
mysql> SET PASSWORD FOR ‘root’@’host_name’= PASSWORD(‘’);
mysql > UPDATE mysql.user SET Password=PASSW(‘REDHAT’ WHERE User=’root’ and Host=’127.0.0.1’;
授权: GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘redha’
FLUSH PRIVIEGES;
登录mysql
mysql –uroot –h 127.0.0.1 –p
常用选项: --user= --password= --host= --protocol (tcp ,socket, ) -D db_name
这样连接需要输入密码,如要不输入密码可以在.my.cf中加入以下内容:
[client]
user=root
password=redhat
删除用户: DROP USER ‘’@localhost或’root’@localhost
忘记密码解决方法:
#service mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
#mysql
mysql> SET PASSWORD FOR ‘root’@’host_name’= PASSWORD(‘’);
在Linux中执行批处理文件: # mysql –uroot –p < test.sql 在test.sql写数据脚本
或 mysql> SOURCE /root/test.sql
注:在mysql中写完一条命令需要用分号结尾,表示在服务端执行,不加分号在客户端执行
MySQL常用的客户端工具:mysql
数据库对象:
表, 索引,视图,触发器,存储过程,存储函数,事件调度器,游标,用户
\q 退出mysql \h 帮助 \c 取消命令 \d 重新定义结束符 \g 忽略结束符 \G 竖排显示
-E设置默认使用竖排显示
#mysql –e “SHOW DATABASES” 在Shell中执行MySQL命令
#mysql –e “SELECT User, Host,Password FROM mysql.user;” 这里必须加mysql.字符,否则会出错
光标跳转: Ctrul-e Ctrul-a Ctrul-u Ctrul-y Ctrl-w
命令补全功能: mysql> \# 或 rehash打开补全功能
mysqladmin –uroot –p ping 测试状态 mysqladmin drop 删除数据库
mysqladmin debug 日志 mysqladmin create sample 常见sample数据库
mysqladmin extended-status 显示mysql运行状态 mysqladmin flush-hosts 手动刷新日志
mysqladmin flush-privileges 刷新权限 mysqladmin flush-tables
mysqladmin processlist查看当前连接状态 mysqladmin reload
mysqladmin shutdown 关闭数据库 mysqladmin start-slave 从服务器启动
mysqladmin status 显示状态 mysqladmin stop-slave 从服务器关闭
mysqladmin version 现在版本
mysqladmin status –sleep 3 –count 2 睡3秒,显示2次
MySQL图形化工具: SQLyog , MySQL Front , phpMyAdmin , MySQL Query Browser, MySQL Administartor , MySQL Workbench