㈠ 什么是mysqlshow
它担当SHOW SQL 语句的命令行接口的作用。 mysqlshow用法如下: mysqlshow [option] [db_name [tbl_name [col_name]]] 如果没有指定数据库名, mysqlshow 将列出服务器主机中所有数据库。如果指定数据库名但未指定表名,则列出该数据库中所有的表。如果数据库和表名都被指定,但未指灶闹腔定列名,则列出该表的所有列。如果所有的名字都被指定, mysqlshow 将显示有关指定列弯侍的信息。 如果最后的参数中包含外壳程序通配符(‘*’或‘?’),输出结果隐衫将被限制为与该通配符相配的值。‘*’和‘?’被视为LINK 操作符的‘%’和‘_’SQL 通配符。 mysqlshow专有选项如下: 一、-k, --keys 显示除表列信息外的表索引信息。该选项只在指定表名时才有意义。 二、-i, --status 显示由SHOW TABLE STATUS 语句显示的相同类型的表的信息。--status 选项是在MySQL 3.23 中引入的。
㈡ mysql数据库执行sql语句怎么写
Mysql常用命令详解
Mysql安装目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqlmp等命令)
启动脚本
/etc/init.d/mysql(启动脚本文件mysql的目录)
系统管理
连接MySQL
格式:
mysql -h 主机地址 -u用户名 -p用户密码
例 1:连接到本机上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:连接到远程主机上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
修改新密码
在终端输入:mysql -u用户名 -p密码,回车进入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密码') where
user='用户名';
> flush privileges; #更新权限
> quit; #退出
增加新用户
格式:grant select on 数据库.* to
用户名@登录主机 identified by '密码'
举例:
例 1:增加一个用户 test1 密码为
abc,让他可以在任何主机上登录,并对所有数据库有
查询、插入、修改、删除的权限。首先用以 root 用户连入
MySQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然后刷新权限设置。
flush privileges;
例
2:如果你不想 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
删除用户
hadoop@ubuntu:~$ mysql
-u用户名 -p密码
mysql>delete from user where user='用户名' and
host='localhost';
mysql>flush privileges;
//删除用户的数据库
mysql>drop
database dbname;
数据库操作
显示所有的数据库
mysql> show databases;(注意:最后有个
s)
创建数据库
mysql> create database
test;
连接数据库
mysql> use
test;
查看当前使用的数据库
mysql> select
database();
当前数据库包含的表信息
mysql>
show tables; (注意:最后有个 s)
删除数据库
mysql> drop database
test;
表操作
备注:操作之前使用“use
<数据库名>”应连接某个数据库。
建表
命令:create
table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));
获取表结构
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;
删除表
命令:drop table <表名>
例如:删除表名为
MyClass 的表
mysql> drop table MyClass;
插入数据
命令:insert into <表名> [( <字段名
1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查询表中的数据
查询所有行
mysql>
select * from MyClass;
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表
MyClass 中编号为 1 的记录
mysql> delete from MyClass where id=1;
修改表中数据
命令:update 表名 set 字段=新值,... where
条件
mysql> update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 类型
其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改为 YouClass
mysql> rename table MyClass to
YouClass;
更新字段内容
命令:update 表名 set
字段名 = 新内容
update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');
例如:文章前面加入 4
个空格
update article set content=concat(' ', content);
数据库导入导出
从数据库导出数据库文件
使用“mysqlmp”命令
首先进入 DOS
界面,然后进行下面操作。
1)导出所有数据库
格式:mysqlmp -u [数据库用户名] -p
-A>[备份文件的保存路径]
2)导出数据和数据结构
格式:mysqlmp -u [数据库用户名] -p
[要备份的数据库名称]>[备份文件的保存路径]
举例:
例 1:将数据库 mydb 导出到 e:\MySQL\mydb.sql
文件中。
打开开始->运行->输入“cmd”,进入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
例
2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:将数据库 mydb
的结构导出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
备注:-h localhost
可以省略,其一般在虚拟主机上用。
3)只导出数据不导出数据结构
格式:
mysqlmp -u [数据库用户名] -p -t
[要备份的数据库名称]>[备份文件的保存路径]
4)导出数据库中的Events
格式:mysqlmp -u [数据库用户名] -p
-E [数据库用户名]>[备份文件的保存路径]
5)导出数据库中的存储过程和函数
格式:mysqlmp -u [数据库用户名]
-p -R [数据库用户名]>[备份文件的保存路径]
从外部文件导入数据库中
1)使用“source”命令
首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。
mysql>source
[备份文件的保存路径]
2)使用“<”符号
首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS
界面。最后执行下面操作。
mysql -u root –p < [备份文件的保存路径]
㈢ MySQL数据库存储引擎详解
存储引擎是什么?
MySQL中的数据用各种不同的技术存储在文件(或者内存)中 这些技术中的每一种技术都使用不同的存储机制 索引技巧 锁定水平并且最终提供广泛的不同的功能和链掘脊能力 通过选择不同的技术 你能够获得额外的速度或者功能 从而改善你的应用的整体功能
例如 如果你在研究大量的临时数据 你也许需要使用内存存储引擎 内存存储引擎能够在内存中存储所有的表格数据 又或者 你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)
这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型) MySQL默认配置了许多不同的存储引擎 可以预先设置或者在MySQL服务器中启用 你可以选择适用于服务器 数据库和表格的存储引擎 以便在选择如何存储你的信息 如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性
选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因 其它数据库系统(包括大多数商业选择)仅支持一种类型的数据存储 遗憾的是 其它类型的数据库解决方案采取的 一个尺码满足一切需求 的方式意味着你要么就牺牲一些性能 要么你就用几个小时甚至几天的时间详细调整你的数据库 使用MySQL 我们仅需要修改我们使用的存储引擎就可以了
在这篇文章中 我们不准备集中讨论不同的存储引擎的技术方面的问题(尽管我们不可避免地要研究这些因素的某些方面) 相反 我们将集中介绍这些不同的引擎分别最适应哪种需求和如何启用不同的存储引擎 为了实现这个目的 在介绍每一个存储引擎的具体情况之前散册 我们必须要了解一些基本的问题
如何确定有哪些存储引擎可用
你可以在MySQL(假设是MySQL服务器 以上版本)中使用显示引擎的命令得到一个可用引擎的列表
这个表格显示了可用的数据库引擎的全部名单以及在当前的数据库服务器中是否支持这些引擎
对于MySQL 以前版本 可以使用mysql> show variables like have_% (显示类似 have_% 的变量):
你可以通过修改设置脚本中的选项来设置在MySQL安装软件中可用的引擎 如果你在使用一个预先包装好的MySQL二进制发布版软件 那么 这个软件就包含了常用的引擎 然而 需要指出的是 如果你要使用某些不常用的引擎 特别是CSV RCHIVE(存档)和BLACKHOLE(黑洞)引擎 你就需要手工重新编译MySQL源码
使用一个指定的存储引擎
你可以使用很多方法指定一个要使用的存储引擎 最简单的方法是 如果你喜欢一种能满足你的大多数数据库需求的存储引擎 你可以在MySQL设置文件中设置一个默认的引擎类型(使用storage_engine 选项)或者在启动数据库服务器时在命令行后面加上 default storage engine或 default table type选项
更灵活的方式是在随MySQL服务器发布同时提供的MySQL客户端时指定使用的存储引擎 最直接的方式是在创建表时指定存储引擎的类型 向下面这样:
CREATE TABLE mytable (id int title char( )) ENGINE = INNODB
你还可以改变现有的表使用的存储引擎 用以下语句:
ALTER TABLE mytable ENGINE = MyISAM
然而 你在以这种方式修改表格类型的时候需要非常仔细 因为对不支持同样的索引 字段类型或者表大小的一个类型进行修改可能使你丢失数据 如果你指定一个在你的当前的数据库中不存在的一个存储引擎 那么就会创建一个MyISAM(默认的)类型的表
各存储引擎之间的区别
为了做出选择哪一个存储引擎的决定 我们首先需要考虑每一个存储引擎提供了哪些不同的核心功能 这种功能使我们能够把不同的存储引擎区别开来 我们一般把这些核心功能分为四类:支持的字段和数据类型 锁定类型 索引和处理 一些引擎具有能过促使你做出决定的独特的功能 我们一会儿再仔细研究这些具体问题
字段和数据类型
虽然所有这些引擎都支持通用的数据类型 例如整型 实型和字符型等 但是 并不是所有的引擎都支持其它的字段类型 特别是BLOG(二进制大对象)或者TEXT文本类型 其它引擎也许仅支持有限的字符宽度和数据大小
这些局限性可能直接影响到你可以存储的数据 同时也可能会对你实施的搜索的类型或者你对那些信息创建的索引产生间接的影响 这些区别能够影响你的应用程序的性能和功能 因为你必须要根据你要存储的数据类型选择对需要的存储引擎的功能做出决策
锁定
数据库引擎中的锁定功能决定了如何管理信息的访问和更新 当数据库中的一个对象为信息更新锁定了 在更新完成之前 其它处理不能修改这个数据(在某些情况下还不允许读这种数据)
锁定不仅影响许多不同的应用程序如何更新数据库中的信息 而且还影响对那个数据的查询 这是因为查询可能要访问正在被修改或者更新的数据 总的来说 这种延迟是很小的 大多数锁定机制主要是为了防止多个处理更新同一个数据 由于向数据中插入信息和更新信息这两种情况都需要锁定 你可以想象 多个应用程序使用同一个数据库可能会有很大的影响
不同的存储引擎在不同的对象级别支持锁定 而且这些级别将影响可以同时访问的信息 得到支持的级别有三种:表锁定 块锁定和行锁定 支持最多的是表锁定 这种锁定是在MyISAM中提供的 在数据更新时 它锁定了整个表 这就防止了许多应用程序同时更新一个具体的表 这对应用很多的多用户数据库有很大的影响 因为它延迟了更新的过程
页级锁定使用Berkeley DB引擎 并且根据上载的信息页( KB)锁定数据 当在数据库的很多地方进行更新的时候 这种锁定不会出现什么问题 但是 由于增加几行信息就要锁定数据结构的最后 KB 当需要增加大量的行 也别是大量的小型数据 就会带来问题
行级锁定提供了最佳的并行访问功能 一个表中只有一行数据被锁定 这就意味着很多应用程序能够更新同一个表中的不同行的数据 而不会引起锁定的问题 只有InnoDB存储引擎支持行级锁定
建立索引
建立索引在搜索和恢复数据库中的数据的时候能够显着提高性能 不同的存储引擎提供不同的制作索引的技术 有些技术也许会更适合你存储的数据类型
有些存储引擎根本就不支持索引 其原因可能是它们使用基本表索引(如MERGE引擎)或者是因为数据存储的方式不允许索引(例如FEDERATED或者BLACKHOLE引擎)
事务处理
事务处理功能通过提供在向表中更新和插入信息期间的可靠性 这种可靠性是通过如下方法实现的 它允许你更新表中的数据 但仅当应用的应用程序的所有相关操作完全完成后才接受你对表的更改 例如 在会计处理中每一笔会计分录处理将包括对借方科目和贷方科目数据的更改 你需要要使用事务处理功能保证对借方科目和贷方科目的数据更改都顺利完成 才接受所做的修改 如果任一项操作失败了 你都可以取消这个事务处理 这些修改就不存在了 如果这个事务处理过程完成了 我们可以通过允许这个修改来确认这个操作
lishixin/Article/program/MySQL/201311/29301
㈣ mysql 常用命令手册
之前介绍了一系列的mysql基础知识,今天我们将MySQL常用的功能命令整理出来,供大家参考使用!
1.导出整个数据库
mysqlmp -u 用户名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqlmp -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
A:常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source wcnc_db.sql
B:使用mysqlmp命令
mysqlmp -u username -p dbname < filename.sql
C:使用mysql命令
mysql -u username -p -D dbname < filename.sql
启动与退出
1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。此时的提示符是:mysql>
2、退出MySQL:quit或exit
库操作
1、创建数据库
命令:create database <数据库名>
例如:建立一个名为sqlroad的数据库
mysql> create database sqlroad;
2、显示所有的数据库
命令:show databases (注意:最后有个s)
mysql> show databases;
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 sqlroad的数据库
mysql> drop database sqlroad;
4、连接数据库
命令:use <数据库名>
例如:如果sqlroad数据库存在,尝试存取它:
mysql> use sqlroad;
屏幕提示:Database changed
5、查看当前使用的数据库
mysql> select database();
6、当前数据库包含的表信息:
mysql> show tables; (注意:最后有个s)
表操作,操作之前应连接某个数据库
1、建表
命令:create table <表名> ( <字段名> <类型> [,..<字段名n> <类型n>]);
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ’′,
> degree double(16,2));
2、获取表结构
命令:desc 表名,或者show columns from 表名
mysql>DESCRIBE MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
3、删除表
命令:drop table <表名>
例如:删除表名为 MyClass 的表
mysql> drop table MyClass;
4、插入数据
命令:insert into <表名> [( <字段名>[,..<字段名n> ])] values ( 值 )[, ( 值n )]
例如,往表 MyClass中插入二条记录, 这二条记录表示:编号为的名为Tom的成绩为.45, 编号为 的名为Joan 的成绩为.99,编号为 的名为Wang 的成绩为.5.
mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);
5、查询表中的数据
11)、查询所有行
命令:select <字段,字段,...> from < 表名 > where < 表达式 >
例如:查看表 MyClass 中所有数据
mysql> select * from MyClass;
12)、查询前几行数据
例如:查看表 MyClass 中前行数据
mysql> select * from MyClass order by id limit 0,2;
或者:
mysql> select * from MyClass limit 0,2;
6、删除表中数据
命令:delete from 表名 where 表达式
例如:删除表 MyClass中编号为 的记录
mysql> delete from MyClass where id=1;
7、修改表中数据:
update 表名 set 字段=新值,…where 条件
mysql> update MyClass set name=’Mary’where id=1;
8、在表中增加字段:
1命令:alter table 表名 add字段 类型 其他;
3例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为
5mysql> alter table MyClass add passtest int(4) default ’′
9、更改表名:
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改为YouClass
mysql> rename table MyClass to YouClass;
更新字段内容
update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名,’旧内容’, 新内容’)
update article set content=concat(‘’,content);
字段类型和数据库操作
1.INT[(M)] 型:正常大小整数类型
2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(双精密)浮点数字类型
3.DATE 日期类型:支持的范围是-01-01到-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOB TEXT类型,最大长度为(2^16-1)个字符。
6.VARCHAR型:变长字符串类型
7.导入数据库表
创建.sql文件
先产生一个库如auction.c:mysqlbin>mysqladmin -u root -p creat auction,会提示输入密码,然后成功创建。
导入auction.sql文件
c:mysqlbin>mysql -u root -p auction < auction.sql。
通过以上操作,就可以创建了一个数据库auction以及其中的一个表auction。
8.修改数据库
在mysql的表中增加字段:
alter table dbname add column userid int(11) not null primary key auto_increment;
这样,就在表dbname中添加了一个字段userid,类型为int(11)。
9.mysql数据库的授权
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用户名@localhost
identified by ‘密码’;
如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:
mysql> grant usage
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:
mysql> exit
DDL操作
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2、创建一个数据库MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> Create TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values (“hyq”,”M”);
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt”INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex=”f”where name=’hyq’;
㈤ MySQL入门经典的作品目录
前言
第一篇 基础知识
第1章 初识庐山真面目——MySQL数据库
视频讲解:4分钟
1.1 为什么选择MySQL数据库
1.1.1 什么是MySQL数据库
1.1.2 MySQL的优势
1.1.3 MySQL的发展史
1.2 MySQL特性
1.3 MySQL的应用环境
1.4 MySQL的管理软件
1.5 如何学MySQL
1.5.1 如何学好MySQL
1.5.2 MySQL学习常见问题
1.6 小结
1.7 习题
第2章 再识庐山真面目——简单的MySQL环境
视频讲解:37分钟
2.1 数据根源——MySQL下载
2.2 搭建桥梁——MySQL环境安装
2.3 启动、连接、断开和停止MySQL服务器
2.3.1 启动和停止MySQL服务器
2.3.2 连接和断开MySQL服务器
2.4 使用免安装的MySQL
2.5 MySQL Workbench图形化管理工具
2.5.1 MySQL Workbench安装
2.5.2 创建数据库和数据表
2.5.3 添加数据
2.5.4 数据的导入和导出
2.6 phpMyAdmin图形化管理工具
2.6.1 数据库操作管理
2.6.2 管理数据表
2.6.3 管理数据记录
2.6.4 导入导出数据
2.6.5 phpMyAdmin设置编码格式
2.6.6 phpMyAdmin添加服务器新用户
2.6.7 phpMyAdmin中重置MySQL服务器登录密码
2.7 上机实践
2.7.1 启动、停止服务器
2.7.2 连接MySQL服务器
2.8 小结
2.9 习题
第3章 如何存储和获取数据——MySQL存储引擎、数据类型和运算符
视频讲解:34分钟
3.1 最常用的引擎类型——MySQL存储引擎
3.1.1 什么是MySQL存储引擎
3.1.2 查询MySQL中支持的存储引擎
3.1.3 InnoDB存储引擎
3.1.4 MyISAM存储引擎
3.1.5 MEMORY存储引擎
3.1.6 如何选择存储引擎
3.1.7 设置数据表的存储引擎
3.2 数据是如何分类的——MySQL数据类型
3.2.1 数字类型
3.2.2 字符串类型
3.2.3 日期和时间数据类型
3.3 最基本的程序元素——MySQL运算符
3.3.1 算术运算符
3.3.2 比较运算符
3.3.3 逻辑运算符
3.3.4 位运算符
3.3.5 运算符的优先级
3.4 上机实践
3.4.1 查看存储引擎、创建和删除数据库
3.4.2 位运算的比较
3.4.3 逻辑运算符的使用
3.5 小结
3.6 习题
第4章 最实用的编程语句——MySQL基本操作
视频讲解:38分钟
4.1 MySQL数据库操作
4.1.1 创建数据库CREATE DATABASE
4.1.2 查看数据库SHOW DATABASES
4.1.3 选择数据库USE DATABASE
4.1.4 删除数据库DROP DATABASE
4.2 MySQL数据表操作
4.2.1 创建数据表CREATE TABLE
4.2.2 查看表结构SHOW COLUMNS或DESCRIBE
4.2.3 修改表结构ALTER TABLE
4.2.4 重命名表RENAME TABLE
4.2.5 删除表DROP TABLE
4.3 MySQL语句操作
4.3.1 插入记录INSERT
4.3.2 查询数据库记录SELECT
4.3.3 修改记录UPDATE
4.3.4 删除记录DELETE
4.4 上机实践
4.4.1 操作teacher表
4.4.2 存在外键约束时,不能删除、更新主表
4.4.3 登录数据库系统
4.5 小结
4.6 习题
第5章 在迷宫中寻找出口——掌握函数
视频讲解:37分钟
5.1 程序的灵魂——MySQL函数
5.2 数字的趣味——数学函数
5.2.1 ABS(x)函数
5.2.2 FLOOR(x)函数
5.2.3 RAND()函数
5.2.4 PI()函数
5.2.5 TRUNCATE(x,y)函数
5.2.6 ROUND(x)函数和ROUND(x,y)函数
5.2.7 SQRT(x)函数
5.3 让字符舞起来——字符串函数
5.3.1 INSERT(s1,x,len,s2)函数
5.3.2 UPPER(s)函数和UCASE(s)函数
5.3.3 LEFT(s,n)函数
5.3.4 RTRIM(s)函数
5.3.5 SUBSTRING(s,n,len)函数
5.3.6 REVERSE(s)函数
5.3.7 FIELD(s,s1,s2,…)函数
5.4 时间如宝——日期和时间函数
5.4.1 CURDATE()函数和CURRENT_DATE()函数
5.4.2 CURTIME()函数和CURRENT_TIME()函数
5.4.3 NOW()函数
5.4.4 DATEDIFF(d1,d2)函数
5.4.5 ADDDATE(d,n)函数
5.4.6 ADDDATE(d,INTERVAL expr type)函数
5.4.7 SUBDATE(d,n)函数
5.5 多种选择——条件判断函数
5.6 系统信息函数
5.6.1 获取MySQL版本号、连接数和数据库名的函数
5.6.2 获取用户名的函数
5.6.3 获取字符串的字符集和排序方式的函数
5.7 安全设置——加密函数
5.7.1 加密函数PASSWORD(str)
5.7.2 加密函数MD5(str)
5.8 其他函数
5.8.1 格式化函数FORMAT(x,n)
5.8.2 改变字符集的函数
5.8.3 改变字段数据类型的函数
5.9 上机实践
5.9.1 字符串函数的使用
5.9.2 查看当前数据库版本号
5.9.3 生成3个1~100之间的随机整数
5.10 小结
5.11 习题
第6章 不可不知的查询方法——数据查询
视频讲解:52分钟
6.1 简单明了——基本查询语句
6.2 最通俗易懂——单表查询
6.2.1 查询所有字段
6.2.2 查询指定字段
6.2.3 查询指定数据
6.2.4 带IN关键字的查询
6.2.5 带BETWEEN AND的范围查询
6.2.6 带LIKE的字符匹配查询
6.2.7 用IS NULL关键字查询空值
6.2.8 带AND的多条件查询
6.2.9 带OR的多条件查询
6.2.10 用DISTINCT关键字去除结果中的重复行
6.2.11 用ORDER BY关键字对查询结果排序
6.2.12 用GROUP BY关键字分组查询
6.2.13 用LIMIT限制查询结果的数量
6.3 掺杂数字趣味——聚合函数查询
6.3.1 COUNT()函数
6.3.2 SUM()函数
6.3.3 AVG()函数
6.3.4 MAX()函数
6.3.5 MIN()函数
6.4 串联一起——连接查询
6.4.1 内连接查询
6.4.2 外连接查询
6.4.3 复合条件连接查询
6.5 从外到内——子查询
6.5.1 带IN关键字的子查询
6.5.2 带比较运算符的子查询
6.5.3 带EXISTS关键字的子查询
6.5.4 带ANY关键字的子查询
6.5.5 带ALL关键字的子查询
6.6 合并查询结果
6.7 字段昵称——定义表和字段的别名
6.7.1 为表取别名
6.7.2 为字段取别名
6.8 使用正则表达式查询
6.8.1 匹配指定字符中的任意一个
6.8.2 使用“*”和“+”来匹配多个字符
6.9 上机实践
6.9.1 使用聚合函数SUM对学生成绩进行汇总
6.9.2 查询大于指定条件的记录
6.9.3 使用比较运算符进行子查询
6.10 小结
6.11 习题
第二篇 核心技术
第7章 让程序速度加快——MySQL索引
视频讲解:23分钟
7.1 MySQL索引概貌
7.1.1 MySQL索引概述
7.1.2 MySQL索引分类
7.2 创建索引
7.2.1 在建立数据表时创建索引
7.2.2 在已建立的数据表中创建索引
7.2.3 修改数据表结构添加索引
7.3 删除索引
7.4 上机实践
7.4.1 使用CREATE INDEX创建索引
7.4.2 使用ALTER TABLE语句创建全文索引
7.4.3 删除唯一索引
7.5 小结
7.6 习题
第8章 一次编写多次调用——MySQL存储过程
视频讲解:33分钟
8.1 创建存储过程和存储函数
8.1.1 创建存储过程
8.1.2 创建存储函数
8.1.3 变量的应用
8.1.4 光标的运用
8.2 流程控制语句
8.2.1 IF语句
8.2.2 CASE语句
8.2.3 WHILE循环语句
8.2.4 LOOP循环语句
8.2.5 REPEAT循环语句
8.3 调用存储过程和存储函数
8.3.1 调用存储过程
8.3.2 调用存储函数
8.4 查看存储过程和函数
8.4.1 SHOW STATUS语句
8.4.2 SHOW CREATE语句
8.5 修改存储过程和函数
8.6 删除存储过程和函数
8.7 捕获存储过程中的错误
8.7.1 定义条件
8.7.2 定义处理程序
8.8 上机实践
8.8.1 使用存储过程实现用户注册(PHP)
8.8.2 修改存储函数
8.8.3 从information_schema.Routines表中查看存储过程
8.9 小结
8.10 习题
第9章 定时炸弹——触发器
视频讲解:22分钟
9.1 MySQL触发器
9.1.1 创建MySQL触发器
9.1.2 创建具有多个执行语句的触发器
9.2 查看触发器
9.2.1 SHOW TRIGGERS
9.2.2 查看triggers表中触发器信息
9.3 应用触发器
9.4 删除触发器
9.5 上机实践
9.5.1 创建一个由INSERT触发的触发器
9.5.2 获取数据库中的触发器
9.5.3 使用DROP TIRGGER删除触发器
9.6 小结
9.7 习题
第10章 虚拟世界——MySQL视图
视频讲解:22分钟
10.1 MySQL视图
10.1.1 视图的概念
10.1.2 视图的作用
10.2 创建视图
10.2.1 查看用户是否具有创建视图的权限
10.2.2 创建视图
10.2.3 创建视图的注意事项
10.3 查看视图
10.4 修改视图
10.5 更新视图
10.6 删除视图
10.7 上机实践
10.7.1 在views表中查看视图详细信息
10.7.2 在单表上创建视图
10.7.3 使用MySQL视图查询学生信息表
10.8 小结
10.9 习题
第11章 让程序听话——MySQL事务
视频讲解:15分钟
11.1 MySQL事务概述
11.1.1 原子性
11.1.2 一致性
11.1.3 孤立性
11.1.4 持久性
11.2 MySQL事务的创建与存在周期
11.2.1 初始化事务
11.2.2 创建事务
11.2.3 应用SELECT语句查看数据是否被正确输入
11.2.4 提交事务
11.2.5 撤销事务(事务回滚)
11.2.6 事务的存在周期
11.3 MySQL行为
11.3.1 自动提交
11.3.2 事务的孤立级
11.3.3 修改事务的孤立级
11.4 事务和性能
11.4.1 应用小事务
11.4.2 选择合适的孤立级
11.4.3 死锁的概念与避免
11.5 MySQL伪事务
11.5.1 用表锁定代替事务
11.5.2 应用表锁实现伪事务
11.6 上机实践
11.6.1 使用事务处理技术实现银行的安全转账(PHP)
11.6.2 批处理中使用事务(Java)
11.7 小结
11.8 习题
第12章 实施管理任务——MySQL系统管理
视频讲解:18分钟
12.1 MySQL系统管理
12.1.1 管理职责概述
12.1.2 日常管理
12.1.3 安全问题
12.1.4 数据库修复和维护
12.2 数据目录的位置
12.3 数据目录的结构
12.4 MySQL服务器如何提供对数据的访问
12.5 MySQL数据库在文件系统里如何表示
12.6 MySQL数据表在文件系统里如何表示
12.6.1 ISAM数据表
12.6.2 MyISAM数据表
12.6.3 MERGE数据表
12.6.4 BDB数据表
12.6.5 InnoDB数据表
12.6.6 HEAP数据表
12.7 SQL语句如何映射为数据表文件操作
12.7.1 创建数据表
12.7.2 更新数据表
12.7.3 删除数据表
12.8 操作系统对数据库和数据表命名的限制
12.9 数据目录的结构对系统性能的影响
12.10 MySQL状态文件和日志文件
12.11 小结
12.12 习题
第三篇 高级技术
第13章 保存数据必备——数据库备份与还原
视频讲解:3分钟
13.1 数据备份
13.1.1 使用mysqlmp命令备份
13.1.2 直接复制整个数据库目录
13.1.3 使用mysqlhot工具快速备份
13.2 数据还原
13.2.1 使用mysql命令还原
13.2.2 直接复制到数据库目录
13.3 数据库迁移
13.3.1 MySQL相同版本的数据库之间的迁移
13.3.2 不同数据库之间的迁移
13.4 表的导出和导入
13.4.1 用SELECT...INTO OUTFILE导出文本文件
13.4.2 用mysqlmp命令导出文本文件
13.4.3 用mysql命令导出文本文件
13.5 上机实践
13.5.1 将表中的内容导出到文件中
13.5.2 使用mysql命令导出HTML文件
13.5.3 导出XML文件
13.6 小结
13.7 习题
第14章 提高程序的便捷——MySQL性能优化
视频讲解:11分钟
14.1 优化简介
14.2 优化查询
14.2.1 分析语句查询
14.2.2 索引对查询速度的影响
14.2.3 使用索引查询
14.3 优化数据库结构
14.3.1 将字段很多的表分解成多个表
14.3.2 增加中间表
14.3.3 优化插入记录的速度
14.3.4 分析表、检查表和优化表
14.4 查询高速缓存
14.4.1 检验高速缓存是否开启
14.4.2 使用高速缓存
14.5 优化多表查询
14.6 优化表设计
14.7 上机实践
14.7.1 查看MySQL服务器的连接、查询次数
14.7.2 检查表
14.7.3 优化表
14.8 小结
14.9 习题
第15章 进入了武器库——MySQL数据库安全技术
视频讲解:11分钟
15.1 MySQL基本的安全保护策略
15.2 用户和权限管理
15.2.1 使用CREATE USER命令创建用户
15.2.2 使用DROP USER命令删除用户
15.2.3 使用RENAME USER命令重命名用户
15.2.4 GRANT和REVOKE命令
15.3 MySQL数据库安全技术的常见问题
15.3.1 权限更改何时生效
15.3.2 设置账户密码
15.3.3 使密码更安全
15.4 小结
15.5 习题
第16章 琐碎小事——MySQL日常管理
视频讲解:8分钟
16.1 连接故障恢复
16.1.1 MySQL套接字被误删
16.1.2 忘记root口令
16.2 日志文件管理
16.2.1 错误日志
16.2.2 通用查询日志
16.2.3 二进制日志
16.2.4 慢速查询日志
16.2.5 日志文件维护
16.2.6 日志失效处理
16.3 MySQL服务器镜像配置
16.3.1 镜像机制概念
16.3.2 建立主-从镜像关系
16.3.3 MySQL双机热备份
16.4 MySQL服务器的一些优化配置
16.4.1 对MySQL服务器的连接监听情况进行控制
16.4.2 启用或禁用LOAD DATA语句的LOCAL能力
16.4.3 国际化和本地化
16.4.4 对老数据表进行转换以激活MySQL 4.1的字符集支持
16.5 优化MySQL服务器
16.5.1 服务器参数变量的设置
16.5.2 通用的MySQL服务器变量
16.5.3 InnoDB处理程序变量
16.6 运行多个MySQL服务器
16.6.1 运行多个MySQL服务器需要注意的问题
16.6.2 设置MySQL服务器启动选项的策略
16.6.3 用mysql_multi脚本启动多个MySQL服务器
16.6.4 在Windows系统上运行多个MySQL服务器
16.7 小结
16.8 习题
第17章 更上一层楼——PHP访问MySQL数据库
视频讲解:39分钟
17.1 PHP语言概述
17.1.1 什么是PHP
17.1.2 为什么选择PHP
17.1.3 PHP的工作原理
17.1.4 PHP结合数据库应用的优势
17.2 PHP操作MySQL数据库的步骤
17.3 使用PHP操作MySQL数据库
17.3.1 mysql_connect()函数连接MySQL服务器
17.3.2 mysql_select_db()函数连接MySQL数据库
17.3.3 mysql_query()函数执行SQL语句
17.3.4 mysql_fetch_array()函数将结果集返回到数组中
17.3.5 mysql_fetch_row()函数从结果集中获取一行作为枚举数组
17.3.6 mysql_num_rows()函数获取查询结果集中的记录数
17.3.7 mysql_free_result()函数释放内存
17.3.8 mysql_close()函数关闭连接
17.4 PHP管理MySQL数据库中的数据
17.4.1 向数据库中添加数据
17.4.2 浏览数据库中数据
17.4.3 编辑数据库数据
17.4.4 删除数据
17.4.5 批量删除数据
17.5 常见问题与解决方法
17.6 MySQL与PHP的应用实例——迷你日记
17.6.1 迷你日记概述
17.6.2 数据库设计
17.6.3 用户登录
17.6.4 发表日记
17.6.5 分页显示日记列表
17.6.6 弹出窗口修改日记
17.6.7 查询日记
17.6.8 应用JavaScript实现批量删除
17.7 小结
17.8 习题
第四篇 项目实战
第18章 Java与MySQL数据库——图书管理系统
视频讲解:89分钟
18.1 开发背景
18.2 系统分析
18.2.1 需求分析
18.2.2 可行性研究
18.3 系统设计
18.3.1 系统目标
18.3.2 系统功能结构
18.3.3 系统流程图
18.3.4 文件夹组织结构
18.4 系统预览
18.5 数据库设计
18.5.1 数据库分析
18.5.2 数据库概念设计
18.5.3 数据库逻辑结构
18.6 公共模块设计
18.6.1 数据库连接及操作类的编写
18.6.2 字符串处理类的编写
18.6.3 配置解决中文乱码的过滤器
18.7 主界面设计
18.7.1 主界面概述
18.7.2 主界面技术分析
18.7.3 主界面的实现过程
18.8 管理员模块设计
18.8.1 管理员模块概述
18.8.2 管理员模块技术分析
18.8.3 系统登录的实现过程
18.8.4 查看管理员的实现过程
18.8.5 添加管理员的实现过程
18.8.6 设置管理员权限的实现过程
18.8.7 删除管理员的实现过程
18.8.8 单元测试
18.9 图书借还模块设计
18.9.1 图书借还模块概述
18.9.2 图书借还模块技术分析
18.9.3 图书借阅的实现过程
18.9.4 图书续借的实现过程
18.9.5 图书归还的实现过程
18.9.6 图书借阅查询的实现过程
18.9.7 单元测试
18.10 开发问题解析
18.10.1 如何自动计算图书归还日期
18.10.2 如何对图书借阅信息进行统计排行
18.11 小结
第19章 C语言与MySQL数据库——图书管理系统
视频讲解:52分钟
19.1 需求分析
19.2 系统设计
19.2.1 系统目标
19.2.2 系统功能结构
19.2.3 系统预览
19.2.4 开发及运行环境
19.3 数据库设计
19.3.1 安装MySQL数据库
19.3.2 启动MySQL数据库
19.3.3 创建数据库
19.3.4 数据表结构
19.4 C语言开发数据库程序的流程
19.4.1 在C语言中引入如下头文件
19.4.2 引入库函数
19.5 数据库管理模块设计
19.5.1 MySQL常用数据库操作函数
19.5.2 连接MySQL数据库
19.5.3 查询图书表记录
19.5.4 插入图书表记录
19.5.5 修改图书表记录
19.5.6 删除图书表记录
19.6 文件引用
19.7 变量和函数定义
19.8 管理模块设计
19.8.1 显示主菜单信息
19.8.2 显示所有图书信息
19.8.3 添加图书信息
19.8.4 修改图书信息
19.8.5 删除图书信息
19.8.6 查询图书信息
19.9 小结
㈥ mysql的show status和show global status区别在哪
一、区别
1)show status -->questions是本次连接的请求数,flush status重置。
2)show global status -->questions是本次MYSQL服务开启(或重置)到现在总请求数。
二、简介
一)Mysql show global status 各项指粗核标的含义
1)Aborted_clients
指出由于某种原因客户岩如掘程序不能正常关闭连接而导致失败的连接的数量。如果客户不在退出之前调整mysql_close()函数,wait_timeout或interactive_timeout的限制已经被超出,或者是客户端程序在传输的过程中被关闭,则这种情况会发生。
2)Aborted_connects
指出试图连接到MYSQL的失败的次数。这种情况在客户尝试用错误的密码进行连接时,没有权限进行连接时,为获得连接的数据包所花费的时间超过了connect_timeout限制的秒数,或数据包中没有包含正确的信息时,都会发生。
3)Bytes_sent
已经发送给所有客户端的字节数。
4)Com_[statement] (以下所有以Com_开始的条目)
用于每一种语句的这些变量中的一种。变量值表示这条语句被执行的次数。
5)com_select,表示select查询语句被执行的次数。
可以适当的对一些敏感数据,进行下面某些操作的监控。比如删除语句delete /drop。
二) show Status参数详解
1)Aborted_clients
由于客户端没有正确关闭连接导致客户端终止而中断的连接数。
2)Aborted_connects
试图连接到MySQL服务器而失败的连接数 。
3)Binlog_cache_disk_use
使用临时二橡燃进制日志缓存但超过。
4)binlog_cache_size
值并使用临时文件来保存事务中的语句 的事务数量 。
5)Binlog_cache_use
使用临时二进制日志缓存的事务数量。
6)Bytes_received
从所有客户端接收到的字节数
7)Bytes_sent
发送给所有客户端的字节数。
㈦ 如何查看mysql数据库的引擎
一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看:
看你的mysql现在已提供什么存储引擎:
mysql> show engines;
看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%';
你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
mysql> show create table 表名;
MySQL数据库引擎详解
作为Java程序员,MySQL数据库大家平时应该都没少使用吧,对MySQL数据库的引擎应该也有所了解,这篇文章就让我详细的说说MySQL数据库的Innodb和MyIASM两种引擎以及其索引结构。也来巩固一下自己对这块知识的掌握。
Innodb引擎
Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔
离级别这篇文章。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL
运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT
COUNT(*) FROM
TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎
会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。
MyIASM引擎
MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入)或UPDATE(更
新)数据时即写操作需要锁定整个表,效率便会低一些。不过和Innodb不同,MyIASM中存储了表的行数,于是SELECT COUNT(*)
FROM
TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选
择。
两种引擎的选择
大尺寸的数据集趋向于选择InnoDB引擎,因为它支持事务处理和故障恢复。数据库的大小决定了故障恢复的时间长短,InnoDB可以利用事务日志
进行数据恢复,这会比较快。主键查询在InnoDB引擎下也会相当快,不过需要注意的是如果主键太长也会导致性能问核裤题,关于这个问题我会在下文中讲到。大
批的INSERT语句(在每个INSERT语句中写入多行,批量插入)在MyISAM下会快一些,但是UPDATE语句在InnoDB下则会更快一些,尤
其是在并发量大的时候。
Index——索引
索引(Index)是帮助MySQL高效获取数据的数据结构。MyIASM和Innodb都使用了树这种数据结构做为索引,关于树我也曾经写过一篇文章树是一种伟大的数据结构,只是自己的理解,有兴趣的朋友可以去阅读。下面我接着讲这两种引擎数御使用的索引结构,讲到这里,首先应该谈一下B-Tree和B+Tree。
B-Tree和B+Tree
B+Tree是B-Tree的变种,那么我就先讲B-Tree吧,相信大家都知道红黑树,这是我前段时间学《算法》一书时,实现的一颗红黑树,大家
可以参考。其实红黑树类似2,3-查找树,这种树既有2叉结点又有3叉结点。B-Tree也与之类似,它的每个结点做多可以有d个分支(叉),d称为B-
Tree的度,如下图所示,它的每个结点可以有4个元素,5个分支,于是它的度为5。B-Tree中的元素是有序的,比如图中元素7左边的指针指向的结点
中的元素改毕简都小于7,而元素7和16之间的指针指向的结点中的元素都处于7和16之间,正是满足这样的关系,才能高效的查找:首先从根节点进行二分查找,找
到就返回对应的值,否则就进入相应的区间结点递归的查找,直到找到对应的元素或找到null指针,找到null指针则表示查找失败。这个查找是十分高效
的,其时间复杂度为O(logN)(以d为底,当d很大时,树的高度就很低),因为每次检索最多只需要检索树高h个结点。
接下来就该讲B+Tree了,它是B-Tree的变种,如下面两张图所示:
vcHLx/i85LLp0a/Qp8LKoaM8L3A+DQo8aDMgaWQ9"myisam引擎的索引结构">MyISAM引擎的索引结构
MyISAM引擎的索引结构为B+Tree,其中B+Tree的数据域存储的内容为实际数据的地址,也就是说它的索引和实际的数据是分开的,只不过是用索引指向了实际的数据,这种索引就是所谓的非聚集索引。
Innodb引擎的索引结构
MyISAM引擎的索引结构同样也是B+Tree,但是Innodb的索引文件本身就是数据文件,即B+Tree的数据域存储的就是实际的数据,这种索引就是聚集索引。这个索引的key就是数据表的主键,因此InnoDB表数据文件本身就是主索引。
因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。
并且和MyISAM不同,InnoDB的辅助索引数据域存储的也是相应记录主键的值而不是地址,所以当以辅助索引查找时,会先根据辅助索引找到主
键,再根据主键索引找到实际的数据。所以Innodb不建议使用过长的主键,否则会使辅助索引变得过大。建议使用自增的字段作为主键,这样B+Tree的
每一个结点都会被顺序的填满,而不会频繁的分裂调整,会有效的提升插入数据的效率。
㈧ MySQL 数据库常用命令 简单超级实用版
1、MySQL常用命令
create
database
name;
创建数据库
use
databasename;
选择数据库
drop
database
name
直接删除数据库,不提醒
show
tables;
显示表
describe
tablename;
表的详细描述
select
中加上distinct去除重复字段
mysqladmin
drop
databasename
删除数据库前,有提示。
显示当前mysql版本和当前日期
select
version(),current_date;
2、修改mysql中root的密码:
shell>mysql
-u
root
-p
mysql>
update
user
set
password=password(”xueok654123″)
where
user='root';
mysql>
flush
privileges
//刷新数据库
mysql>use
dbname;
打开数据库:
mysql>show
databases;
显示所有数据库
mysql>show
tables;
显示数据库mysql中所有的表:先use
mysql;然后
mysql>describe
user;
显示表mysql数据库中user表的列信息);
3、grant
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql>
grant
all
privileges
on
*.*
to
user@localhost
identified
by
'something'
with
增加新用户
格式:grant
select
on
数据库.*
to
用户名@登录主机
identified
by
“密码”
GRANT
ALL
PRIVILEGES
ON
*.*
TO
monty@localhost
IDENTIFIED
BY
'something'
WITH
GRANT
OPTION;
GRANT
ALL
PRIVILEGES
ON
*.*
TO
monty@”%”
IDENTIFIED
BY
'something'
WITH
GRANT
OPTION;
删除授权:
mysql>
revoke
all
privileges
on
*.*
from
root@”%”;
mysql>
delete
from
user
where
user=”root”
and
host=”%”;
mysql>
flush
privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql
>grant
select,
insert,
update,
delete,
create,drop
on
fangchandb.*
to
custom@
it363.com
identified
by
‘
passwd'
重命名表:
mysql
>
alter
table
t1
rename
t2;
4、mysqlmp
备份数据库
shell>
mysqlmp
-h
host
-u
root
-p
dbname
>dbname_backup.sql
恢复数据库
shell>
mysqladmin
-h
myhost
-u
root
-p
create
dbname
shell>
mysqlmp
-h
host
-u
root
-p
dbname
<
dbname_backup.sql
如果只想卸出建表指令,则命令如下:
shell>
mysqladmin
-u
root
-p
-d
databasename
>
a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell>
mysqladmin
-u
root
-p
-t
databasename
>
a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqlmp
-T./
phptest
driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqlmp同一目录。如果不指定driver
表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql
中存放有查
询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中:
mysql
>
mysql
-h
myhost
-u
root
-p
database
<
sql.txt
㈨ c#怎么连接数据库 用MySQL 详解
1、mysql官网下载 .net连接器
2、引用下载后的mysql.data.dll
3、程序开始加:using MySql.Data.MySqlClient;
4、连接数据库:
privatevoidbutton1_Click(objectsender,EventArgse)//登入按钮
{
stringpower=comboBox1.Text.Trim();
stringuser=textBox1.Text.Trim();
stringpsd=textBox2.Text.Trim();
stringipaddress="";
stringmysqluser="";
stringmysqlpsd="";
if(user=="")
{
MessageBox.Show("请输入用户名");
}
elseif(psd=="")
{
MessageBox.Show("请输入密码");
}
else
{
try
{
try
{
string[]getconfig=File.ReadAllLines("E:/project/configure.txt",Encoding.GetEncoding("gb2312"));
ipaddress=getconfig[0].Split(':')[1];//读取ip地址
mysqluser=getconfig[1].Split(':')[1];//读取数据库账号
mysqlpsd=getconfig[2].Split(':')[1];//读取数据库密码
}
catch(Exception)
{
MessageBox.Show("配置文件丢失");
return;
}
stringquery="SETnamesgb2312;SELECTCOUNT(id)FROMfx_userWHEREname='"+user+"'ANDpassword=MD5('"+psd+"')ANDuserid='"+power+"'";
MySqlConnectioncn=newMySqlConnection("server="+ipaddress+";userid="+mysqluser+";Password="+mysqlpsd+";database=system;charset=gb2312");
cn.Open();
MySqlCommandcm=newMySqlCommand(query,cn);
MySqlDataReaderread=cm.ExecuteReader();//搜索满足用户名,密码,操作员的记录。
//如果记录没有-->密码或用户名错误
if(read.Read())//如果记录多余1条-->数据错误,联系管理员
{//只有一条记录则成功登入
intx=Int32.Parse(read[0].ToString());
if(x==0)
{
MessageBox.Show("用户名或密码错误");
}
elseif(x>1)
{
MessageBox.Show("用户冲突,请联系管理员");
}
elseif(x==1)
{
//MessageBox.Show("登入成功");
mainmf=newmain(power,ipaddress,mysqluser,mysqlpsd);//将操作员和IP地址传入主窗体
mf.Show();
this.Hide();
cn.Close();
}
}
}
catch(MySql.Data.MySqlClient.MySqlExceptionex)
{
switch(ex.Number)
{
case0:
MessageBox.Show("数据库连接失败1");
break;
case1045:
MessageBox.Show("数据库密码或用户名错误");
break;
default:
MessageBox.Show("数据库连接失败2");
break;
}
}
}
}