MySql高级一
2015-12-17 13:26
483 查看
一、关系型数据库三范式:
1、第一范式--原子性:所有属性都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项。
2、第二范式--完全依赖:非主属性必须完全依赖于主键。
3、第三范式--不传递依赖,非主属性不可传递依赖于主键,即任何非主属性不能依赖于其它非主属性。
二、MySql常用的产品家族:
1、MySql Server(mysqld ,mysql)
2、MySql Proxy
3、MySql Drivers and Connectors
注:2007年8月开始,MySql分为两种类型的版本:Community(社区版)和Enterprise(企业版)
三、MySQL客户端工具:
1、mysql
2、mysqladmin
3、mysqldump
4、mysqlcheck
四、MySQL工作模式:
1、交互式模式:
mysql>select user,host,password from mysql where user='root';
2、脚本模式:
#mysql -uroot -h172.30.100.100 -p </home/zhangsan/test.sql
<==>
mysql> \. /home/zhangsan/test.sql
五、[b]mysql的初始化[/b]
1、处理配置文件:
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf因在安装时,datadir进行了调整,所以/etc/my.cnf的[mysqld]段要加上=/data/mydata说明:/usr/local/mysql/support-files/下可用的mysql配置文件有很多,如my-large.cnf 、my-innodb-heavy-4G.cnf、my-medium.cnf、my-small.cnf1.1通过/usr/local/mysql/bin/mysqld --help --verbose作用:(1.1.1)、显示mysqld程序启动时可用的选项,通常都是长选项。(1.1.2)、显示mysqld的配置文件中可用的服务器变量命令。 mysql> show GOLBAL VARIABLES; mysql> show SESSION VARIABLES;1.2、mysql读取配置文件的顺序(注意不同的安装方式,读取顺序会略有不同):通过/usr/local/mysql/bin/mysqld --help --verbose | head -20命令,可以找到:Default options are read from the following files in the given order:/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf1.3、mysql使用配置文件的方式:(1.3.1)、它依次查找每个需要查找的文件,结果是所有文件的并集。(1.3.2)、如果某参数在多个文件中出现多次,那么后读取的有效。2、执行初始化脚本:
[b][b]/usr/local/mysql/scripts/mysql_install_db --datadir=/data/mydata --user=mysql[/b][/b]
[b]3、处理匿名用户件:[/b]
删除匿名用户:
mysql> drop user ''@'localhost'或者 delete from user where user='' and host='localhost'[b][b][b]4、[b][b][b][b]给所有的root用户设置密码[/b][/b][/b]:[/b][/b][/b][/b]
[b][/b]
4.1、第一种方式: mysql> SET PASSWORD FOR username@host =PASSWORD('your_password'); mysql> FLUSH PRIVILEGES; 4.2、第二种方式: mysql> update user set password =PASSWORD('your_password') where user='root'; mysql> FLUSH PRIVILEGES;[b][b][b][b][b][b][b]5、[b][b][b][b]mysql用户账户[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]:
5.1、用户账户由两部分组成:用户名@主机名
5.2、主机名可以使用通配符:
%:任意长度的任意字符
_:任意字符单个字符[b][/b]
六、MySql客户端命令以及服务器端帮助:
1、help获取客户端命令:
mysql>help显示mysql的命令。
如:\G:是结果集不在以行展示。
\c:取消当前sql的语句的执行。
\q:退出mysql
2、help keyword 获取服务器端帮助:
如:mysql>help create database 获取创建库的帮助
mysql>help create table 获取创建表的帮助
七、Mysql常用的命令选项:
1、-V:显示mysql的版本。
#mysql -V,
结果如下:mysql Ver 14.14 Distrib 5.5.33, for linux2.6 (x86_64) using readline 5.1
2、--database= 或者-D 默认打开某个数据库。
#mysql -p -D mysql或者#mysql -p --database=mysql
3、-H 或者--html:数据结果为html格式的文档,如:
# mysql -H -p
# mysql>select user,host from mysql.user;
<TABLE BORDER=1>
<TR><TH>user</TH><TH>host</TH></TR>
<TR><TD>root</TD><TD>127.0.0.1</TD></TR>
<TR><TD>root</TD><TD>localhost</TD></TR>
</TABLE>
4、-X 或者--xml:数据结果为xml格式的文档,如:
# mysql -X -p
# mysql>select user,host from mysql.user;
<?xml version="1.0"?>
<resultset statement="select user,host,password from mysql.user;" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="user">root</field>
<field name="host">localhost</field>
</row>
<row>
<field name="user">root</field>
<field name="host">127.0.0.1</field>
</row>
</resultset>
5、--safe-updates:拒绝使用无where的update或者delete命令。
# mysql --safe-updates -p
6、-e:不用登录,直接执行sql
如:#mysql -uroot -p -e 'show databases;'
八、mysqladmin工具:
Mysqladmin的命令格式:mysqladmin [options] command [arg] [command [arg]]...
1、options选项同mysql
2、command:
2.1、create dbName:不用登录,直接创建数据库,如:
#mysqladmin -uroot -p create testdb
#mysql -uroot -p -e 'show databases'
2.2、drop dbName:不用登录,直接删除数据库,如:
#mysqladmin -uroot -p drop testdb
#mysql -uroot -p -e 'show databases;'
2.3、debug:打开调试日志并记录于myqsl的error_log中。
#mysqladmin -uroot -p debug
2.4、status:显示mysql的简要状态信息。
--sleep #:间隔时长
--count #:显示的次数。
如: #mysqladmin -uroot -p status --sleep 1 --count 5,间隔1秒,共显示5次status信息。
2.5、extended-status:输出mysql的各状态变量以及其值,相当于执行"mysql> show global status"
如: #mysqladmin -uroot -p extended-status。
2.6、flush-hosts:清空主机相关的缓存,DNS解析缓存。
如: #mysqladmin -uroot -p flush-hosts。
2.7、flush-logs:主要完成日志滚动。
如: #mysqladmin -uroot -p flush-logs。
2.8、flush-status:重置状态变量。
如: #mysqladmin -uroot -p flush-status。
2.9、flush-privileges:重读授权信息。
如: #mysqladmin -uroot -p flush-privileges。
2.10、flush-tables:关闭当前打开的表文件句柄。
如: #mysqladmin -uroot -p flush-tables。
2.11、flush-threads:清空线程缓存。
如: #mysqladmin -uroot -p flush-threads。
2.12、kill:杀死指定的线程。
如: #mysqladmin -uroot -p kill。
2.13、processlist:显示mysql线程列表。
如: #mysqladmin -uroot -p processlist。
2.14、shutdown:关闭mysqld进程
如: #mysqladmin -uroot -p shutdown。
2.15、start-slave/stop-slave:启动/关闭从服务器线程。
九、mysql数据类型属性修饰符:
1、char/varchar/text的常见的几种修饰符
not null
null
default 'string',不适用于text类型
character set '字符集'
collatioin '排序规则'
2、binary/varbinary/blob的常见的几种修饰符
not null
null
default 不适用于blob
3、整型常用的属性修饰符:
null
not null
default
auto_increment
primary key
unsigned 无符号
4、浮点型常用的属性修饰符:
null
not null
default
unsigned 无符号
5、日期时间型常用的属性修饰符:
null
not null
default
十、mysql的sql模式(sql_mode):
空模式:mysql默认使用空模式。
traditional:传统模式。
strict_trans_tables仅对事务表严格模式。
strict_all_tables对所有表严格模式。
使用场景:比如定义一个字段的长度为2,在插入数据时,内容长度>2.
如果空模式,则可以插入成功(但会截取),如果使用严格模式则添加失败。
十[b]一、mysql服务器的工作特性的是通过服务器变量实现的,那么查看服务器变量的方法有:[/b]
1、mysql> show {global 全局的|session 会话的} variables [like clause];
而mysql服务器运行中的状态是通过状态变量输出的。
show {global 全局的|session 会话的} status [like clause];
2、mysql> select @@{global|session}.variable_name
3、 select * from information_schema.{global|session}_variables where variable_name='some_variable_name';
1、第一范式--原子性:所有属性都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项。
2、第二范式--完全依赖:非主属性必须完全依赖于主键。
3、第三范式--不传递依赖,非主属性不可传递依赖于主键,即任何非主属性不能依赖于其它非主属性。
二、MySql常用的产品家族:
1、MySql Server(mysqld ,mysql)
2、MySql Proxy
3、MySql Drivers and Connectors
注:2007年8月开始,MySql分为两种类型的版本:Community(社区版)和Enterprise(企业版)
三、MySQL客户端工具:
1、mysql
2、mysqladmin
3、mysqldump
4、mysqlcheck
四、MySQL工作模式:
1、交互式模式:
mysql>select user,host,password from mysql where user='root';
2、脚本模式:
#mysql -uroot -h172.30.100.100 -p </home/zhangsan/test.sql
<==>
mysql> \. /home/zhangsan/test.sql
五、[b]mysql的初始化[/b]
1、处理配置文件:
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf因在安装时,datadir进行了调整,所以/etc/my.cnf的[mysqld]段要加上=/data/mydata说明:/usr/local/mysql/support-files/下可用的mysql配置文件有很多,如my-large.cnf 、my-innodb-heavy-4G.cnf、my-medium.cnf、my-small.cnf1.1通过/usr/local/mysql/bin/mysqld --help --verbose作用:(1.1.1)、显示mysqld程序启动时可用的选项,通常都是长选项。(1.1.2)、显示mysqld的配置文件中可用的服务器变量命令。 mysql> show GOLBAL VARIABLES; mysql> show SESSION VARIABLES;1.2、mysql读取配置文件的顺序(注意不同的安装方式,读取顺序会略有不同):通过/usr/local/mysql/bin/mysqld --help --verbose | head -20命令,可以找到:Default options are read from the following files in the given order:/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf1.3、mysql使用配置文件的方式:(1.3.1)、它依次查找每个需要查找的文件,结果是所有文件的并集。(1.3.2)、如果某参数在多个文件中出现多次,那么后读取的有效。2、执行初始化脚本:
[b][b]/usr/local/mysql/scripts/mysql_install_db --datadir=/data/mydata --user=mysql[/b][/b]
[b]3、处理匿名用户件:[/b]
删除匿名用户:
mysql> drop user ''@'localhost'或者 delete from user where user='' and host='localhost'[b][b][b]4、[b][b][b][b]给所有的root用户设置密码[/b][/b][/b]:[/b][/b][/b][/b]
[b][/b]
4.1、第一种方式: mysql> SET PASSWORD FOR username@host =PASSWORD('your_password'); mysql> FLUSH PRIVILEGES; 4.2、第二种方式: mysql> update user set password =PASSWORD('your_password') where user='root'; mysql> FLUSH PRIVILEGES;[b][b][b][b][b][b][b]5、[b][b][b][b]mysql用户账户[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]:
5.1、用户账户由两部分组成:用户名@主机名
5.2、主机名可以使用通配符:
%:任意长度的任意字符
_:任意字符单个字符[b][/b]
六、MySql客户端命令以及服务器端帮助:
1、help获取客户端命令:
mysql>help显示mysql的命令。
如:\G:是结果集不在以行展示。
\c:取消当前sql的语句的执行。
\q:退出mysql
2、help keyword 获取服务器端帮助:
如:mysql>help create database 获取创建库的帮助
mysql>help create table 获取创建表的帮助
七、Mysql常用的命令选项:
1、-V:显示mysql的版本。
#mysql -V,
结果如下:mysql Ver 14.14 Distrib 5.5.33, for linux2.6 (x86_64) using readline 5.1
2、--database= 或者-D 默认打开某个数据库。
#mysql -p -D mysql或者#mysql -p --database=mysql
3、-H 或者--html:数据结果为html格式的文档,如:
# mysql -H -p
# mysql>select user,host from mysql.user;
<TABLE BORDER=1>
<TR><TH>user</TH><TH>host</TH></TR>
<TR><TD>root</TD><TD>127.0.0.1</TD></TR>
<TR><TD>root</TD><TD>localhost</TD></TR>
</TABLE>
4、-X 或者--xml:数据结果为xml格式的文档,如:
# mysql -X -p
# mysql>select user,host from mysql.user;
<?xml version="1.0"?>
<resultset statement="select user,host,password from mysql.user;" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="user">root</field>
<field name="host">localhost</field>
</row>
<row>
<field name="user">root</field>
<field name="host">127.0.0.1</field>
</row>
</resultset>
5、--safe-updates:拒绝使用无where的update或者delete命令。
# mysql --safe-updates -p
6、-e:不用登录,直接执行sql
如:#mysql -uroot -p -e 'show databases;'
八、mysqladmin工具:
Mysqladmin的命令格式:mysqladmin [options] command [arg] [command [arg]]...
1、options选项同mysql
2、command:
2.1、create dbName:不用登录,直接创建数据库,如:
#mysqladmin -uroot -p create testdb
#mysql -uroot -p -e 'show databases'
2.2、drop dbName:不用登录,直接删除数据库,如:
#mysqladmin -uroot -p drop testdb
#mysql -uroot -p -e 'show databases;'
2.3、debug:打开调试日志并记录于myqsl的error_log中。
#mysqladmin -uroot -p debug
2.4、status:显示mysql的简要状态信息。
--sleep #:间隔时长
--count #:显示的次数。
如: #mysqladmin -uroot -p status --sleep 1 --count 5,间隔1秒,共显示5次status信息。
2.5、extended-status:输出mysql的各状态变量以及其值,相当于执行"mysql> show global status"
如: #mysqladmin -uroot -p extended-status。
2.6、flush-hosts:清空主机相关的缓存,DNS解析缓存。
如: #mysqladmin -uroot -p flush-hosts。
2.7、flush-logs:主要完成日志滚动。
如: #mysqladmin -uroot -p flush-logs。
2.8、flush-status:重置状态变量。
如: #mysqladmin -uroot -p flush-status。
2.9、flush-privileges:重读授权信息。
如: #mysqladmin -uroot -p flush-privileges。
2.10、flush-tables:关闭当前打开的表文件句柄。
如: #mysqladmin -uroot -p flush-tables。
2.11、flush-threads:清空线程缓存。
如: #mysqladmin -uroot -p flush-threads。
2.12、kill:杀死指定的线程。
如: #mysqladmin -uroot -p kill。
2.13、processlist:显示mysql线程列表。
如: #mysqladmin -uroot -p processlist。
2.14、shutdown:关闭mysqld进程
如: #mysqladmin -uroot -p shutdown。
2.15、start-slave/stop-slave:启动/关闭从服务器线程。
九、mysql数据类型属性修饰符:
1、char/varchar/text的常见的几种修饰符
not null
null
default 'string',不适用于text类型
character set '字符集'
collatioin '排序规则'
2、binary/varbinary/blob的常见的几种修饰符
not null
null
default 不适用于blob
3、整型常用的属性修饰符:
null
not null
default
auto_increment
primary key
unsigned 无符号
4、浮点型常用的属性修饰符:
null
not null
default
unsigned 无符号
5、日期时间型常用的属性修饰符:
null
not null
default
十、mysql的sql模式(sql_mode):
空模式:mysql默认使用空模式。
traditional:传统模式。
strict_trans_tables仅对事务表严格模式。
strict_all_tables对所有表严格模式。
使用场景:比如定义一个字段的长度为2,在插入数据时,内容长度>2.
如果空模式,则可以插入成功(但会截取),如果使用严格模式则添加失败。
十[b]一、mysql服务器的工作特性的是通过服务器变量实现的,那么查看服务器变量的方法有:[/b]
1、mysql> show {global 全局的|session 会话的} variables [like clause];
而mysql服务器运行中的状态是通过状态变量输出的。
show {global 全局的|session 会话的} status [like clause];
2、mysql> select @@{global|session}.variable_name
3、 select * from information_schema.{global|session}_variables where variable_name='some_variable_name';
相关文章推荐
- Mysql的字段类型,查询语句,高级操作
- mysql高级 视图,触发器,存储过程
- MySQL复制 -- 应用场景
- mysql_jdbc连接说明
- mysql_jdbc连接说明
- 将log4j的日志配置输出到mysql中
- MySQL-Checkpoint
- 自动化安装MySQL-5.6.27
- Mysql 常见错误代码: 1064
- mysql-5.7.10-winx64安装配置
- new relic 安装mysql 扩展
- Mysql慢查询日志分析工具
- MySQL 替换某字段部分内容的UPDATE语句
- mysql的存储引擎
- 【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法
- mysql中and和or
- 性能调优之MYSQL高并发优化
- MYSQL性能优化
- 【mysql】新增、修改、删除、查询 语法讲义
- 与Mysql服务器相互作用的通讯协议