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;--默认正序mysql帮助文档
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
ber_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
ber_id = C.member_id AND a.log_time = C.min_time
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论