一千行MySQL学习笔记(五)

/* 导入导出 */ -------------

select * into outfile 文件地址 [控制格式] from 表名;    -- 导出表数据load data [local] infile 文件地址 [replace|ignore] into table 表名 [控制格式];    -- 导入数据  生成的数据默认的分隔符是制表符
  local未指定,则数据文件必须在服务器上  replace 和 ignore 关键词控制对现有的唯一键记录的重复的处理

-- 控制格式

fields    控制字段格式
默认:fields terminated by ‘\t‘ enclosed by ‘‘ escaped by ‘\\‘
  terminated by ‘string‘  -- 终止
  enclosed by ‘char‘      -- 包裹
  escaped by ‘char‘      -- 转义
  -- 示例:
   SELECT a,b,a+b INTO OUTFILE ‘/tmp/result.text‘
   FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘
   LINES TERMINATED BY ‘\n‘
   FROM test_table;lines    控制行格式
  默认:lines terminated by ‘\n‘
  terminated by ‘string‘    -- 终止

/* insert */ --------------

select语句获得的数据可以用insert插入。

可以省略对列的指定,要求 values () 括号内,提供给了按照列顺序出现的所有字段的值。
  或者使用set语法。      insert into tbl_name set field=value,...;

可以一次性使用多个值,采用(), (), ();的形式。    insert into tbl_name values (), (), ();

可以在列值指定时,使用表达式。    insert into tbl_name values (field_value, 10+10, now());可以使用一个特殊值 default,表示该列使用默认值。    insert into tbl_name values (field_value, default);

可以通过一个查询的结果,作为需要插入的值。    insert into tbl_name select ...;

可以指定在插入的值出现主键(或唯一索引)冲突时,更新其他非主键列的信息。     insert into tbl_name values/set/select on duplicate key update 字段=值, …;

/* delete */ -------------

DELETE FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

按照条件删除

指定删除的最多记录数。Limit

可以通过排序条件删除。order by + limit

支持多表删除,使用类似连接语法。

delete from 需要删除数据多表1,表2 using 表连接操作 条件。

/* truncate */ -------------

TRUNCATE [TABLE] tbl_name
清空数据
删除重建表

区别:

1,truncate 是删除表再创建,delete 是逐条删除2,truncate 重置auto_increment的值。而delete不会3,truncate 不知道删除了几条,而delete知道。4,当被用于带分区的表时,truncate 会保留分区

(未完待续)
       (作者:Shocker 来源:http://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html)

时间: 2024-10-18 22:36:14

一千行MySQL学习笔记(五)的相关文章

一千行MySQL学习笔记

/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables -- 修改root密码 密码加密函数password() update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES --

一千行MySQL学习笔记【博客园】

/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables -- 修改root密码 密码加密函数password() update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES --

一千行MySQL学习笔记(十二)

/* 用户和权限管理 */ ----------- 用户信息表:mysql.user -- 刷新权限FLUSH PRIVILEGES -- 增加用户CREATE USER 用户名 IDENTIFIED BY [PASSWORD] 密码(字符串)- 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限.- 只能创建用户,不能赋予权限.- 用户名,注意引号:如 'user_name'@'192.168.1.1'- 密码也需引号,纯数字密码也要加引号- 要在纯文本中指定密码

一千行MySQL学习笔记(七)

/* 事务(transaction) */ ------------ 事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全成功要不全失败. - 支持连续SQL的集体成功或集体撤销. - 事务是数据库在数据晚自习方面的一个功能. - 需要利用 InnoDB 或 BDB 存储引擎,对自动提交的特性支持完成. - InnoDB被称为事务安全型引擎. -- 事务开启 START TRANSACTION; 或者 BEGIN; 开启事务后,所有被执行的SQL语句均被认作当前事务内的SQL语句. -- 事

一千行MySQL学习笔记(六)

/* 备份与还原 */ ------------- 备份,将数据的结构与表内数据保存起来. 利用 mysqldump 指令完成. -- 导出 1. 导出一张表 mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)2. 导出多张表 mysqldump -u用户名 -p密码 库名 表1 表2 表3 > 文件名(D:/a.sql)3. 导出所有表 mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)4. 导出一个库 mysqldump

一千行MySQL学习笔记(十)

--// 内置函数 ------------ 数值函数abs(x) -- 绝对值 abs(-10.9) = 10format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46ceil(x) -- 向上取整 ceil(10.1) = 11floor(x) -- 向下取整 floor (10.1) = 10round(x) -- 四舍五入去整mod(m, n) -- m%n m mod n 求余 10%3=1pi() -- 获得圆周率po

一千行MySQL学习笔记(十一)

--// 存储函数,自定义函数 ---------- -- 新建 CREATE FUNCTION function_name (参数列表) RETURNS 返回值类型 函数体 - 函数名,应该合法的标识符,并且不应该与已有的关键字冲突. - 一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库. - 参数部分,由"参数名"和"参数类型"组成.多个参数用逗号隔开. - 函数体由多条可用的mysql

一千行MySQL学习笔记(八)

/* 触发器 */ ------------------ 触发程序是与表有关的命名数据库对象,当该表出现特定事件时,将激活该对象 监听:记录的增加.修改.删除. -- 创建触发器 CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt参数:trigger_time是触发程序的动作时间.它可以是 before 或 after,以指明触发程序是在激活它的语句之前或之后触发

一千行MySQL学习笔记(四)

/* UNION */ ------------------ 将多个select查询的结果组合成一个结果集合. SELECT ... UNION [ALL|DISTINCT] SELECT ... 默认 DISTINCT 方式,即所有返回的行都是唯一的 建议,对每个SELECT查询加上小括号包裹. ORDER BY 排序时,需加上 LIMIT 进行结合. 需要各select查询的字段数量一样. 每个select查询的字段列表(数量.类型)应一致,因为结果中的字段名以第一条select语句为准.