本文为原创博客,未经本人允许,禁止将本人的博客复制下来上传到百度文库等平台。
作者:合肥工业大学 管理学院 钱洋 1563178220@qq.com
目录
linux中或cmd中连接数据库
在Windows环境中的cmd或者Linux环境中,连接数据库使用如下命令:
其中,命令中的root表示用户,根据自己安装mysql设置的用户名而定。
mysql -uroot -p
输入此命令之后,会弹出让你输入密码,接着输入你的密码即可。
以下是windows中cmd中连接的数据库。
Linux连接报错
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
错误的原因是my.cnf配置文件中的socket目录配置不正确。
解决方案:去看我写的另外一篇博客。http://blog.csdn.net/qy20115549/article/details/51783498
查看库名
show databases;
使用某一数据库并查看数据表
use test;
show tables;
查看表信息
describe 表名;
创建表格
以下是我创建的一个表格,仅供大家参考。
CREATE TABLE IF NOT EXISTS `forum_user` (
`user_id` varchar(50) NOT NULL DEFAULT '' COMMENT '发帖作者ID,命名规则论坛编号+作者id',
`user_age` varchar(255) DEFAULT NULL COMMENT '用户的年龄或出生日期',
`user_gender` char(4) DEFAULT NULL COMMENT '用户的性别',
`user_area` varchar(20) DEFAULT NULL,
`user_forum` int(4) DEFAULT NULL COMMENT '用户来自的论坛',
`craw_time` datetime DEFAULT NULL COMMENT '爬取时间',
`report_time` datetime DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表格增加一列
为表forum_user增加addr_id这样一列。
alter table forum_user add column addr_id varchar(20) not null;
表格删除一列
删除forum_user中的report_time一列。
alter table forum_user drop report_time ;
删除表格Drop
删除forum_user表格。
DROP TABLE forum_user;
#或者
DROP TABLE IF EXISTS forum_user;
数据插入Insert
首先,创建一个简单的表,以供我演示。
CREATE TABLE IF NOT EXISTS `forum_user` (
`user_id` varchar(50) NOT NULL DEFAULT '' COMMENT '发帖作者ID,命名规则论坛编号+作者id',
`user_age` varchar(255) DEFAULT NULL COMMENT '用户的年龄或出生日期',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO forum_user VALUES (1, 2);
#或者
INSERT INTO forum_user(user_id, user_age) VALUES (2, 3);
查看数据表数据Select
select * from forum_user;
为介绍一些其他稍微复杂一些的sql语句,我将在navicat中演示。navicat是一款非常好用的mysql数据可视化操作工作。当然,你也可能会使用mysql workbench这一款工具。
where语句的使用
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
下表为我要操作的表的结构。
如下面的sql语句所示的是,我要操作的表是auto_forum_address_stand。子条件是选择江淮品牌,并且forum_auto_id是以autohome开头。sql中,like语句是用来做模糊查询。
SELECT * FROM auto_forum_address_stand where stand_auto_brand="江淮" and forum_auto_id like "autohome%";
操作结果,如下图所示。
一个数据库选择的数据导入到另一个数据库中某表
将brandmanage_db库中的auto_forum_address_stand相关数据,导入到qirui_jianghuai2016data库中的新建表jianghuai中。
create table qirui_jianghuai2016data.jianghuai SELECT * FROM brandmanage_db.auto_forum_address_stand where stand_auto_brand="江淮" and forum_auto_id like "autohome%";
操作后,我们会发现,在数据库qirui_jianghuai2016data中新建了一张jianghuai的表,并且数据如下。
更新数据Update
更加上一张图,现在来使用Update来更新数据。如上图,我要将字段forum_auto_id中的”autohome”字符串给去掉。如下,为我的sql语句。
update jianghuai set forum_auto_id = replace(forum_auto_id,'autohome','');
执行结果如下图所示:
数据分组group by
如上图数据,我现在想按照user_age字段,对其进行分组。
select count(*),user_age from forum_user group by user_age;
结果集排序ORDER BY
假设需要对forum_user表按照user_age进行排序。其sql语句为:
以下是降序排序,由于user_age是字符串类型,所以11这个数字显示在最后。
select * from forum_user order by user_age DESC;
以下是升序排序
select * from forum_user order by user_age ASC;
连接数据concat或concat_ws
如图将此表的stand_auto_brand与stand_auto_name进行连接,中间用’_’连接。
select forum_auto_id,concat(stand_auto_brand,'_',stand_auto_name) AS carname from jianghuai ;