Mysql数据库常用操作整理

0.说明

MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用。从5版本以后,陆续支持了游标、触发器、事务、存储过程等高级应用,这也给MySQL的易用性和企业服务的发展添加了重要的砝码。

一. 数据库操作

1. 查看数据库

SHOW DATABASES;

2. 创建数据库

CREATE DATABASE db_name; #db_name为表名

3. 使用数据库

USE db_name;

4. 删除数据库

DROP DATABASE db_name;

二. 创建表

1. 创建表

CREATE TABLE table_name
(
    id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
    name char(60)       NOT NULL,
    score int           NOT NULL,
    PRIMARY KEY(id)     #设置主键
)ENGINE=InnoDB;

2. 复制表

CREATE TABLE tb_name2 SELECT * FROM tb_name;
#### 指明主键

 

CREATE table  db_1.table_new(`_id` varchar(64) COMMENT 'pk',PRIMARY KEY (`_id`)) as select * from db_2.table_old;

3. 创建临时表

CREATE TEMPORARY TABLE tb_name; #(这里和创建普通表一样)

4. 查看数据库中可用的表

SHOW TABLES;

5. 查看表的结构

DESCRIBE tb_name;

6. 删除表

DROP TABLE tb_name;

7. 表重命名

RENAME TABLE name_old TO name_new;

三. 修改表

ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;
ALTER TABLE tb_name DROP address;
ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

四. 插入数据

1. 插入数据

INSERT INTO tb_name(id,name,score) VALUES(NULL,'张三',140),(NULL,'张四',178), (NULL,'张五',134);

2. 插入检索出来的数据

INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

3.复制一条记录(只有id不同)

insert into article(id, title,keywords,desc,contents) select 101,title,keywords,desc,contents from article where article_id = 100;

扩展

从不同的表复制
insert into 表1 select * from 表2 where id =** ;
 

同一张表中复制(无主键)
insert into 表1 select * from 表2 where id =** ;


同一张表中复制(有主键)
insert into 表1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表1 where id= ** ; 

 

五. 更新数据

UPDATE tb_name SET score=189 WHERE id=2;
UPDATE tablename SET columnName=NewValue [ WHERE condition ]

六. 常用查询

1. 通配符

SELECT prod_id, prod_name
FROM tb_name
WHERE prod_name LIKE 'jet%';    #%匹配任何字符出现任何次数
SELECT prod_id, prod_name
FROM tb_name
WHERE prod_name LIKE '_ jet';   #_ 匹配一个字符

2. 拼接

select CONCAT(task_desc, '_', task_class, '_', id) as tab from taskclass_info

结果

任务1_6208_219933
任务2_6209_220001

3. 用某个字符做拼接福

select CONCAT_WS(separator, str1, str2,...) from ***

其中separator是连接符

七. 数据备份 

把一个表快速备份到另一个表

DROP TABLE IF EXISTS B;
CREATE TABLE B LIKE A;
INSERT INTO B SELECT * FROM A;

八. 导出表数据

表结构

mysqldump -h ip -P port -u user -p dbname  tabelname --no-data --skip-lock-tables > my.sql

 

表结构+数据

mysqldump -h ip -P port -u user -p dbname  tabelname --skip-lock-tables> my.sql

数据

mysql -hip -uuser -ppwd -P3306  --default-character-set=utf8 dbname -e "select ****" > order_202011_2.csv

 

九、导库

5.导出特定数据库的所有表格的表结构及其数据,添加“--databases ”命令参数(导入的时候直接执行导出sql就行)

导出命令:mysqldump -h127.0.0.1 -P3306 -uroot -proot education --databases education> database.sql

导入命令:mysql -uroot -proot -h127.0.0.1 -P3306 <d:/all_database.sql

 

 

参考:https://blog.csdn.net/u012436346/article/details/86570902

posted @ 2015-01-17 14:12  jihite  阅读(1770)  评论(0编辑  收藏  举报