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

MySQL学习文档

表2

MySQL学习文档

将表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

MySQL学习文档

表4

MySQL学习文档

将表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

指定号行查询

MySQL学习文档

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

MySQL学习文档

SELECT * FROM testlastone  LIMIT 4,4

 

MySQL学习文档

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

MySQL学习文档

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

 

 

相关文章:

  • 2021-12-09
  • 2021-11-11
  • 2021-11-26
  • 2021-12-07
  • 2021-07-02
  • 2021-07-31
  • 2021-07-19
  • 2021-07-25
猜你喜欢
  • 2021-11-04
  • 2021-08-26
  • 2021-08-18
  • 2022-01-03
  • 2021-04-10
  • 2021-05-27
相关资源
相似解决方案