Mysql常用操作笔记

Mysql常用操作笔记

登录

  • mysql -u用户 -p密码
  • mysql -hIP地址 -u用户 -u密码

退出

  • exit

Sql语句分类

  • DDL 数据定义语言,用来定义数据库对象, 关键字:create,drop,alter等
  • DML 数据操作语言,用来对数据库中表的数据进行增删改,关键字:insert,delete,update等
  • DQL 数据查询语言,用来查询数据库中表的数据,关键字:select,where等
  • DCL 数据控制语言,用来定义数据库的访问权限和安全级别,关键字: grant,revoke等

DDL操作数据库

1.创建数据库

  • 直接创建数据库
    CAREATE DATABASE 数据库名;
  • 判断是否存在并创建数据库
    CREAET DATABASE IF NOT EXISTS 数据库名;
  • 创建数据库并指定字符集
    CREATE DATABASE 数据库名 CHARACTER SET 字符集;

2.查看数据库

  • 查看所有数据库
    SHOW DATABASES;
  • 查看某个数据的定义信息
    SHOW CREATE DATABASE 数据库名;

3.修改数据库

  • 修改数据的字符集
    ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;

4.删除数据库

  • 删除指定的数据库
    DROP DATABASE 数据库名;

5.使用数据库

  • 使用/切换数据库
    USE 数据库;
  • 查看当前正在使用的数据库
    SELECT DATABASE();

6.创建表

  • 直接创建表
    CREATE TABLE 表名(字段名1 字段类型1, 字段名2 字段类型2, ...);
  • 创建一个表结构相同的表
    CREATE TABLE 新表名 LIKE 旧表名;

7.查看表

  • 查看所有表
    SHOW TABLES;
  • 查看表结构
    DESC 表名;
  • 查看创建表的SQL语句
    SHOW CREATE TABLE 表名;

8.删除表

  • 直接删除表
    DROP TABLE 表名;
  • 判断表存在并删除表
    DROP TABLE IF EXISTS 表名;

9.修改表

  • 添加列(字段)
    ALTER TABLE 表名 ADD 列名 类型;
  • 修改列类型
    ALTER TABLE 表名 MODIFY 列名 新类型;
  • 修改列名
    ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
  • 删除列
    ALTER TABLE 表名 DROP 列名;
  • 修改表名
    RENAME TATBLE 旧表名 TO 新表名;
  • 修改表字符集
    ALTER TABLE 表名 CHARACTER SET 字符集;

10.常用字段类型

类型 描述 说明
int(integer) 整数 integer默认11
double 双精度浮点数
float 单精度浮点数
varchar(M) 字符串 M为0-255之间整数
char(M) 字符串 M为0-255之间整数
date 日期类型 yyyy-MM-dd
datetime 日期时间类型 yyyy-MM-dd HH:mm:ss

DML操作数据库

1.表插入数据

  • 插入全部字段
    INSERT INTO VALUES(值1, 值2, 值3,...);
  • 插入部分字段
    INSERT INTO 表名(字段1, 字段2, 字段3, ...) VALUES(值1, 值2, 值3, ...);

2.复制表

  • 全部复制
    INSERT INTO 新表 SELECT * FROM 旧表;
  • 部分复制
    INSERT INTO 新表(字段1, 字段2, ...) SELECT 字段1,字段2,... FROM 旧表;

3.更新表

  • 不带条件修改表数据
    UPDATE 表名 SET 字段名1=值,字段名2=值;
  • 带条件修改表数据
    UPDATE 表名 SET 字段名1=值,字段名2=值 WHERE 字段名=值;

4.删除表数据

  • 不带条件删除表数据
    DELETE FROM 表名;
  • 带条件删除表数据
    DELETE FROM 表名 WHERE 字段名=值;
  • 整表销毁,重新创建一个同名新表
    TRUNCATE TABLE 表名;

DQL操作数据库

1.简单查询

  • 查询表所有数据
    SELECT * FROM 表名;
  • 查询表部分数据
    SELECT 字段名1,字段名2,... FROM 表名;
  • 别名查询(AS可省略)
    SELECT 字段名1 AS 别名1, 字段名2 AS 别名2,... FROM 表名;
  • 筛选重复值查询
    SELECT DISTINCT 字段名1,字段名2,... FROM 表名;
  • 查询结果参与运算(字段值必须为数值类型)
    SELECT 字段名 + 值 FROM 表名;
    SELECT 字段名1 + 字段名2 FROM 表名;

2.条件查询

SELECT 字段名 FROM 表名 WHERE 条件;

  • 比较运算符条件
    SELECT * FROM table WHERE age>=18;
  • 逻辑运算符条件(and or not)
    SELECT * FROM table WHERE age>=19 AND gender='男';
  • 范围运算符条件(in between)
    SELECT * FROM table WHERE name in('小红','小明');
    SELECT * FROM table WHERE age BETWEEN 18 AND 30;

3.模糊查询

SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

  • 通配符字符串
    %: 任意个字符
    _: 一个字符
  • 查询名字'jordan'开头的数据
    SELECT * FROM table WHERE name LIKE 'jordan%';
  • 查询名字包含'jordan'的数据
    SELECT * FROM table WHERE name LIKE '%jordan%';
  • 查询名字'乔丹'开头,结尾两个字长度的数据
    SELECT * FROM table WHERE name LIKE '乔丹__';

4.查询结果排序

SELECT 字段名 FROM 表名 WHERE 字段名=值 ORDER BY 字段名 [ASX|DESC];

  • ORDER BY 排序
  • ASC 升序
  • DESC 降序
  • 查询年龄大于18的数据,并升序排列
    SELECT * FROM table WHERE age>18 ORDER BY age ASC;
  • 查询年龄大于18,升序排列, 如果年龄相同,则按体重大小降序排列
    SELECT * FROM table WHERE age>18 ORDER BY age ASC,weight DESC;

5.聚合函数

聚合函数为纵向查询,即对表的一列值(Null值会被过滤掉)进行计算并返回结果。

  • 统计指定列记录条数 COUNT
    SELECT COUNT(字段名) FROM 表名;
  • 计算指定列数值总和 SUM
    SELECT SUM(字段名) FROM 表名;
  • 计算指定列最大值 MAX
    SELECT MAX(字段名) FROM 表名;
  • 计算指定列最小值 MIN
    SELECT MIN(字段名) FROM 表名;
  • 计算指定列平均值 AVG
    SELECT AVG(字段名) FROM 表名;

6.分组查询

分组查询是指使用GROUP BY语句对查询信息进行分组,相同条件数据作为一组,通常与聚合函数一起使用
SELECT * FROM 表名 GROUP BY 分组字段 [HAVING条件];

  • 查询根据性别分组,统计男女人数各总数
    SELECT COUNT(*),sex FROM table GROUP BY sex;
  • 查询年龄大于18岁,根据性别分组,统计男女人数各总数
    SELECT COUNT(*),sex FROM table WHERE age>18 GROUP BY sex;
  • 查询年龄大于18岁,根据性别分组,统计男人人数各总数,并只显示总数大于10的数据
    SELECT COUNT(*),sex FROM table WHERE age>18 GROUP BY sex HAVING COUNT(*)>10;

HAVING 与 WHERE 的区别

  • HAVING是在数据分组后再进行过滤,WHERE是在数据分组前进行过滤。
  • HAVING后面可以使用聚合函数,WHERE不可以。

7.分页LIMIT

LIMIT offset,length; offset为偏移量,默认为0,length是返回的数据条数

  • 查询第二页数据,返回10条数据
    SELECT * FROM table LIMIT 1,10;

8.查询语句总和

SELECT *|字段名 [AS 别名] FROM 表名 [WHERE语句] [GROUP BY语句] [HAVING 语句] [ORDER BY 语句] [LIMIT 语句];

DCL操作数据库

1.DCL约束种类

  • 主键:PRIMARY KEY
  • 唯一:UNIQUE
  • 非空:NOT NULL
  • 默认:DEFAULT
  • 外键:FOREIGN KEY
  • 用法:
    CREATE TABLE 表名(字段名1 [DCL约束], 字段名2 [DCL约束], ...);

2.主键

  • 特点:唯一,非NULL
  • 创建person表,包含字段(id,name) 设定id为主键
    CREATE TABLE person(id int PRIMARY KEY, name varchar(10));
  • 主键自增 AUTO_INCREMENT,插入数据,主键自行递增
    CREATE TABLE person(id int PRIMARY KEY AUTO_INCREMENT);
  • 删除主键
    ALTER TABLE 表名 DROP PRIMARY KEY;

3.约束总和举例

  • 创建一张person表, 包含(id, name, age, sex, session_id)id为递增主键,name唯一非空,age非空默认为0,sex非空,session_id为外键。
CREATE TABLE person(
    id int PRIMARY KEY AUTO_INCREMENT,
    name varchar(10) UNIQUE NOT NULL,
    age int NOT NULL DEFAULT 0,
    sex char(4) NOT NULL,
    session_id int FOREIGN KEY
)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335