Mysql数据库常用操作整理
原创
©著作权归作者所有:来自51CTO博客作者mb6300b232419d1的原创作品,请联系作者获取转载授权,否则将追究法律责任
0.说明
MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用。从5版本以后,陆续支持了游标、触发器、事务、存储过程等高级应用,这也给MySQL的易用性和企业服务的发展添加了重要的砝码。
一. 数据库操作
1. 查看数据库
2. 创建数据库
CREATE DATABASE db_name; #db_name为表名
3. 使用数据库
4. 删除数据库
二. 创建表
1. 创建表
CREATE TABLE table_name
(
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
name char(60) NOT NULL,
score int NOT NULL,
PRIMARY KEY(id) #设置主键=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. 查看数据库中可用的表
5. 查看表的结构
6. 删除表
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 CHANGE4) 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
五. 更新数据
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
结果
任务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 ****"
九、导库
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