MySQL学习文档

MySQL学习文档

基础知识

1 创建表

CREATE TABLE tablename (name1 CHAR(100),name2 NUMERIC,name3 INT);

2 向表中按行插入数据

INSERT INTO tablename(name1,name2,name3) VALUES(value1,value2,value3);

插入多行

INSERT INTO tablename(name1,name2,name3) VALUES(value1,value2,value3),(value4,value5,value6);

3 删除表

DELETE(可恢复)

DELETE FROM tablename; --全部删除

DELETE FROM tablename WHERE name1 = ‘***’;--删除满足条件的行

TRUNCATE(不可恢复)

TRUNCATE TABLE tablename;

DROP(删除整个表结构)

DROP TABLE tablename;

4 查询表

SELECT * FROM tablename LIMIT 10;--(查一个未知表时最好带上limit)

查询5到10行

SELECT * FROM tablename LIMIT 4(开始行-1),6(间隔行);

5 关联

左关联,左表全部展示,右表展示和左表关联上的部分,左表没关联上的右边字段为空

SELECT A.name1,A. name 2,B. name 1,B. name 2 FROM A LEFT JOIN B A. name 1=B. name 1 ;

内关联,展示关联字段在两表中同时存在的行

SELECT A. name 1,A. name 2,B. name 1,B. name 2 FROM A INNER JOIN B A. name 1=B. name 1;

6 更新

UPDATE tablename SET name1=改变后的名字 WHERE name1 = 要更改的名字;

7 分组

WordCount例子

SELECT word,COUNT(*) FROM tablename GROUP BY word;

8 排序

SELECT DATETIME FROM tablename ORDER BY datetime;--默认正序

SELECT DATETIME FROM tablename ORDER BY datetime DESC;--倒序

9 修改

ALTER TABLE tablename DROP name1;--删除字段name1

ALTER TABLE tablename ADD name INT FIRST;--在第一列增加字段name

ALTER TABLE tablename ADD i INT AFTER c; --在c字段后面增加字段i

修改字段类型及名称

MONDIFY

ALTER TABLE tablename MODIFY c CHAR(10);--将字段c的类型变为char(10)

CHANGE

ALTER TABLE tablename CHANGE i j BIGINT;--将字段i改为类型为bigint名称为j的字段

10 条件中的匹配

'%a'     //以a结尾的数据

'a%'     //以a开头的数据

'%a%'    //含有a的数据

'_a_'    //三位且中间字母是a的

'_a'     //两位且结尾字母是a的

'a_'     //两位且开头字母是a的

 

行转列

表1

表2

将表1变成表2的Mysql语句

SELECT NAME 姓名,

  MAX(CASE obgject WHEN '数学' THEN score ELSE 0 END ) 数学,

  MAX(CASE obgject WHEN '语文' THEN score ELSE 0 END ) 语文,

  MAX(CASE obgject WHEN '英语' THEN score ELSE 0 END ) 英语

FROM testscore

GROUP BY NAME

 

列转行

表3

表4

将表3结构变成表4结构的sql语句

 

SELECT NAME 姓名,'数学' AS 学科,math_score 分数  FROM testcol

 UNION

 SELECT NAME,'语文' AS 学科,chin_score 分数 FROM testcol

 UNION

 SELECT NAME,'英语' AS 学科,eng_score 分数 FROM testcol

指定号行查询

从上表中取第五行到第八行

SELECT * FROM testlastone  LIMIT 4,4

从上表中取出每个id最早访问网站的那一行,插入到新表table_c中表结构和上表一致

CREATE TABLE table_c

SELECT a.member_id,C.min_time,a.url FROM table_a a

INNER JOIN (SELECT member_id ,MIN(log_time) min_time FROM table_a

GROUP BY member_id) C

ON a.member_id = C.member_id AND a.log_time = C.min_time

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值