1、创建数据库
CREATE DATABASE IF NOT EXISTS myoildataDEFAULTCHARSET utf8COLLATE utf8_general_ci;
2.删除数据库
DROP DATABASEmyoildata;
3.选择数据库
USE myoildata;
4.创建表
注意:
1.字符串数据类型选择:
![image](https://upload-images.jianshu.io/upload_images/6410973-042c031aa0a0ead0?imageMogr2/auto-orient/strip|imageView2/2/w/524/format/webp)
经常变化的字段用 varchar
知道固定长度的用 char
尽量用 varchar
超过 255 字符的只能用 varchar 或者 text
能用 varchar 的地方不用 text
2.表名与字段名使用反引号扩起(ESC下方的按键而不是引号)。
5.删除数据表:
DROP TABLE oildata ;
6.向数据表插入数据
INSERT INTO `myoildata`.`oildata`(`area`, `oil89`, `oil92`, `oil95`, `oil98`, `oil0`, `update_time`)VALUES('北京', '6.23', '6.62', '7.04', '8.02', '6.28', '2019-10-25 10:10:27');
插入所有数据后,数据库中内容如下:
7.查询数据
查询语句中可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
SELECT*FROMoildata;
8. where子句,可用于查询、更新等操作
SELECT*FROMoildataWHEREoil95="7.04";
返回符合条件的城市为 北京、福建、青海
SELECT*FROMoildataWHEREoil95="7.04"ANDoil0="6.18";
返回符合条件城市为青海
SELECT*FROMoildataWHEREoil95="7.04"ORoil0="6.21";
返回城市为 北京、吉林、福建、青海
其他操作符还有 =、!=、>、<、>=、<=
9.更新数据
UPDATEoildataSEToil89="6.11"WHEREid=5
10.删除数据
DELETE FROM oildataWHEREarea="新疆";
11.LIKE 子句
SELECT* FROM oildataWHEREareaLIKE'湖%';
SELECT * FROM oildataWHEREoil95LIKE'%.2%';
说明:
① %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
② _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
③ []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
④ [^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
⑤ 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。
12.UNION
SELECT*FROMoildataUNIONSELECT*FROMoil20191030ORDERBYid;
返回结果会删除重复的值,如果想不删除重复值, 需要使用UNION ALL
SELECT*FROMoildataUNIONALL SELECT *FROMoil20191030ORDER BYid;
带有 WHERE 的 SQL UNION ALL:
SELECT*FROMoildataWHEREoil95='7.04'UNION ALL SELECT *FROMoil20191030WHEREoil95='7.04'ORDER BYid;
oildata与oil20191030部分数据是相同的。
13.排序 ORDER BY 子句
ASC :按升序排列。默认情况下,按升序排列
SELECT * FROM oildata ORDERBY id;
DESC:按降序排序
SELECT*FROMoildataORDER BY idDESC;
示例:与WHERE子句结合,按id进行降序排列
SELECT*FROMoildataWHEREoil95="7.04"ORDER BYidDESC;
14.分组 GROUP BY语句
15.JOIN 联合多表查询
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
16.查找数据表中某列数据是否为 NULL,必须使用 IS NULL 和 IS NOT NULL
17.MySQL 正则表达式
MySQL中使用 REGEXP 操作符来进行正则表达式匹配。
查找name字段中以'st'为开头的所有数据:
SELECT name FROM person WHERE name REGEXP'^st';
查找name字段中以'ok'为结尾的所有数据:
SELECT name FROM person WHERE name REGEXP'ok$';
查找name字段中包含'mar'字符串的所有数据:
SELECT name FROM person WHERE name REGEXP'mar';
查找name字段中以元音字符开头或以'ok'字符串结尾的所有数据:
SELECTnameFROMpersonWHEREnameREGEXP'^[aeiou]|ok$';
18.ALTER
一:修改表信息
修改表名
ALTERTABLEoil20191025RENAME TO tesoil20191025;
修改表注释
ALTERTABLEoil20191025COMMENT'油价数据';
二:修改字段信息
1.修改字段名字(要重新指定该字段的类型)
ALTER TABLE oil20191029CHANGEarea areas VARCHAR(255) NOT NULL;
2.修改字段类型和注释
ALTER TABLE oil20191029MODIFYCOLUMNarea VARCHAR(50) COMMENT '地区';
3.修改字段类型
ALTER TABLEoil20191029MODIFY COLUMN oil0 INT;
4.设置字段允许为空
ALTER TABLE oil20191029MODIFY COLUMNoil0 INT NULL;
5.增加一个字段,设好数据类型,且不为空,添加注释
ALTER TABLE oil20191029ADD`url`VARCHAR(255)NOT NULL COMMENT '数据来源网址';
6.删除字段
ALTER TABLE oil20191029DROPid;
7.增加自增主键
ALTER TABLE oil20191029ADDIDINT(5)NOT NULL PRIMARY KEY AUTO_INCREMENT;
8.在某个字段后增加字段
ALTER TABLE oil20191029ADD COLUMNurl CHAR NOT NULL AFTERareas;
9.调整字段顺序
ALTER TABLEoil20191029CHANGEid idINT NOT NULL AFTERupdate_time;(注意:id出现了2次)
往 / 期 / 文 / 章
python
python | enumerate()、zip()、dict.items()的基本用法
python | json.dumps()、json.loads()、json.dump()、json.load()的使用
python | configparser类,从配置文件中读取、写入数据
测试
MYSQL
MYSQL | Navicat Premium MAC 12.0.22版本激活