MySQL

在MySQL中操作克隆表的教程

可能有一种情况,当需要一个完全相同的副本表CREATE TABLE ... SELECT不适合需要,因为副本必须包含相同的索引,默认值,依此类推。 按下面的步骤,可以处理这种情况。 使用SHOW CREATE TABLE得到一个CREATE TABLE语句中指定源表的结构,索引等。 修改语句更改表名称的克隆表,并执行该语句。通过这种方式将有确切的克隆表。 或者,如果需要进行表的内容复制,使用INSERT INTO ... SELECT语句也可以搞定。实例: 试试下面的例子来创 [详细]

调用MySQL中数据库元数据的方法

MySQL的三个信息: 查询的结果有关的信息: 这包括由任何SELECT,UPDATE或DELETE语句产生数量的记录。 表和数据库有关的信息: 这包括表和数据库的结构有关的信息。 MySQL服务器的信息: 这包括当前状态的数据库服务器,版本号等。在mysql提示符下很容易获得所有这些信息。但是,当使用Perl或PHP的API,那么我们就需要显式地调用各种API获得所有这些信息。下面的部分将告诉你如何获得这些信息。 获取查询所影响的行数: PERL 实例: 在DBI脚本中, [详细]

在MySQL中使用序列的简单教程

序列是一组整数1,2,3,...中生成的顺序。序列中经常使用的数据库,因为很多应用都需要一个表中的每一行包含一个独特的值和序列提供了一个简单的方法来产生。本章介绍如何使用MySQL中的序列。 使用自动递增列: 在MySQL中使用序列最简单的方法是定义一个AUTO_INCREMENT列,剩下的事情留给MySQL处理。 实例: 试试下面的例子。这将创建表之后,它会在此表中它不是必需的记录ID插入几行,因为它由MySQL自动递增。mysql> CREATE TABLE insect-> (-> [详细]

MySQL中处理各种重复的一些方法

有时表或结果集包含重复的记录。有时它是允许的,但有时它需要停止重复的记录。有时它需要识别重复的记录从表中删除。本章将介绍如何防止发生在一个表中重复的记录如何删除已经存在的重复记录。 防止重复表中的发生: 可以使用PRIMARY KEY或UNIQUE索引的表上相应的字段来防止重复的记录。让我们举一个例子,下面的表中不包含这样的索引或主键,所以它会允许记录first_name和last_name重复CREATE TABLE person_tbl (first_name CHAR(20),last_ [详细]

浅析MySQL的注入安全问题

如果把用户输入到一个网页,将其插入到MySQL数据库,有机会离开了发生安全问题被称为SQL注入敞开。这一课将教如何帮助防止这种情况的发生,并帮助保护脚本和MySQL语句。 注入通常发生在处理一个用户输入,如他们的名字,而不是一个名字,他们给一个会在不知不觉中你的数据库上运行的MySQL语句。 永远不要信任用户提供的数据,只能验证后处理这些数据,作为一项规则,这是通过模式匹配。在下面的例子中,用户名被限制为字母数字字符加下划线的长度在8到20个字符之间 - 根据需要修改这些规则。if (preg [详细]

用SELECT... INTO OUTFILE语句导出MySQL数据的教程

表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上。 导出数据的SELECT...INTO OUTFILE声明: 这句话的语法结合了常规的SELECT INTO OUTFILE文件名的末尾。默认的输出格式是相同的LOAD DATA,所以下面的语句导出tutorials_tbl的表制表符分隔的,换行结尾的文件到/tmp/tutorials.txt:mysql> SELECT * FROM tutorials_tbl [详细]

MySQL中数据导入恢复的简单教程

有两个简单的方法MySQL中的数据加载到MySQL数据库从先前备份的文件。 LOAD DATA导入数据: MySQL提供了LOAD DATA语句,作为一个大容量数据加载。下面是一个例子声明中,读取一个文件dump.txt,,从当前目录加载到当前数据库中的表mytbl:mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl; 如果本地的关键字是不存在的,MySQL的外观使用绝对路径名寻找到完全指定位置的文件在服务器主机上的数据文件 [详细]

Mysql中的事务是什么如何使用

什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 注意:mysql数据支持事务,但是要求必须是innoDB存储引擎 解决这个问题: mysql的事务解决这个问题,因为mysql的事务特性,要求这组操作,要不全都成功,要不全都失败,这样就避免了某个操作成功某个操作失败。利于数据的安全 如何使用: (1)在执行sql语句之前,我们要开启事务 start transaction; (2)正常执行我们的sql语句 (3)当sql语句执行完毕,存在 [详细]

在MySQL中使用JOIN语句进行连接操作的详细教程

到目前,我们已经学习了从一个表中获取数据。这是简单的需要,但在大多数现实MySQL的使用,经常需要将数据从多个表中的一个单一的查询。 可以使用多个表中的单一SQL查询。在MySQL中联接(join)行为是指两个或多个表到一个表中可以使用连接在SELECT,UPDATE和DELETE语句中加入MySQL表。我们将看到一个例子LEFT JOIN简单的MySQL连接。 在命令提示符使用联接: 假设我们两个表的教程tcount_tbl和tutorials_tbl的完整列表如下: 例子: 试试下面的例子 [详细]

详解MySQL中的NULL值

我们已经看到使用WHERE子句的SQL SELECT命令来从MySQL表获取数据。但是,当我们试图给的条件比较字段或列的值为NULL,它不能正常工作。 为了处理这种情况,MySQL提供了三大运算符 IS NULL: 此运算符返回true,当列的值是NULL。 IS NOT NULL: 运算符返回true,当列的值不是NULL。 <=> 操作符比较值(不同于=运算符)为ture,即使两个NULL值涉及NULL条件是特殊的。不能使用 =NULL 或 !=NULL 寻找NULL值的 [详细]

讲解MySQL中的事务特性

一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。 实际上,会俱乐部许多SQL查询到一个组中,将执行所有的人都一起作为事务的一部分。 事务的特性: 事务有以下四个标准属性的缩写ACID,通常被称为: 原子性: 确保工作单元内的所有操作都成功完成,否则事务将被中止在故障点,和以前的操作将回滚到以前的状态。 一致性: 确保数据库正确地改变状态后,成功提交的事 [详细]

mysql SELECT FOR UPDATE语句使用示例

以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行。而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update [详细]

在WIN命令提示符下mysql 用户新建、授权、删除,密码修改

首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。 用户:phplamp 用户数据库:phplampDB 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("12 [详细]

MySQL 添加、修改、删除表的列及约束等表的定义

ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stud [详细]

Mysql InnoDB删除数据后释放磁盘空间的方法

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。 如果在创建数据库的时候设置innodb_file_per_table=1,这样InnoDB会对每个表创建一个数据文件,然后只需要运行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间。 运行OPTIMIZE TABLE 表名后,虽然最后会报Table does not support optimize, doing recreate + analyze i [详细]