MySQL 基本操作

数据库类型

  1. 数值类型
  2. 字符串类型
  3. 日期和时间类型

数据库的基本操作

  1. 创建和查看数据库
    CREATE DATABASE 数据库名称;

  2. 查看数据库
    SHOW CREATE DATABASE 数据库名称;

  3. 使用数据库
    USE 数据库名;

  4. 修改数据库
    ALTER DATABASE 数据库名称 DEFAULT CHARACTER;

  5. 删除数据库
    DROP DATABASE 数据库名称;

数据表的基本操作

  1. 创建数据表
    CREATE TABLE 表名(
    字段名1 数据类型,
    字段名2 数据类型,

    字段名n 数据类型,
    );

先创建数据库,再使用数据库,接着创建数据表。

  1. 查看数据表
    SHOW TABLES; 查看是否创建成功
    SHOW CREATE TABLE 表名; 查看数据表
    DESCRIBE 表名; 查看表中列的相关信息

  2. 修改数据表
    ALTER TABLE 原表名 RENAME [TO] 新表名; 修改表名
    ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型; 修改字段
    ALTER TABLE 表名 MODIFY 字段名 数据类型; 修改字段的数据类型
    ALTER TABLE 表名 ADD 新字段名 数据类型; 添加字段
    ALTER TABLE 表名 DROP 字段名; 删除字段
    ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2; 修改字段的排列位置
    (FIRST 表示将字段1修改为表的第一个字段;AFTER 字段名2 表示将字段1插入到字段2后面)

  3. 删除数据表
    DROP TABLE 表名;

插入数据

  1. 为所有列插入数据
    INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…); 指定所有字段名
    INSERT INTO 表名 VALUES (值1,值2,…); 不指定字段名,顺序对应

  2. 为指定列插入数据
    INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…);

  3. 批量插入数据
    INSERT INTO 表名[(字段名1,字段名2,…)]
    VALUES(值1,值2,…),(值1,值2,…),…,(值1,值2,…);
    为所有列批量插入数据

更新数据

UPDATE 表名
SET 字段名1=值1[,字段名2=值2,…]
[WHERE 条件表达式];

删除数据

DELETE FROM 表名 [WHERE 条件表达式];
TRUCATE [TABLE] 表名;

DELETE 语句是DML语句, TRUNCATE 语句是DDL语句。

单表查询

  1. 基础查询
    SELECT 字段名1,字段名2,…,字段名n FROM 表名; 查询所有字段
    SELECT * FROM 表名; * 代替所有字段
    SELECT 字段名1,字段名2,… FROM 表名; 查询指定字段

  2. 条件查询
    SELECT 字段名1,字段名2,…, FROM 表名
    WHERE 条件表达式1 AND/OR 条件表达式2 …;
    指定条件查询
    SELECT 字段名1,字段名2,…, FROM 表名
    WHERE 字段名 [NOT] IN(元素1,元素2,…) ;
    判断字段是否在指定集合并过滤
    SELECT 字段名1,字段名2,…, FROM 表名
    WHERE 字段名 IS [NOT] NULL ;
    过滤字段名为空的
    SELECT 字段名1,字段名2,…, FROM 表名
    WHERE 字段名 [NOT] BETWEEN 值1 AND 值2;
    判断字段的值是否在指定范围并过滤
    SELECT 字段名1,字段名2,…, FROM 表名
    WHERE 字段名 [NOT] LIKE ‘匹配字符串’;
    模糊查询(%表示n个字符,_表示人员一个字符)
    SELECT DISTINCT 字段名 FROM 表名; 去除重复数据

  3. 高级查询
    SELECT 字段名1,字段名2,…, FROM 表名
    ORDER BY 字段名1 [ASC|DESC],字段名2[ASC|DESC]…;
    排序查询
    (ASC 升序查询;DESC降序查询)
    SELECT COUNT ( * |1|列名) FROM 表名;
    SELECT COUNT (1) AS 别名 表名;

    ( * 返回行数;列名返回特定列行数;1同 * ,表没有主键时执行效率高)
    SELECT SUM(字段名 ) FROM 表名; 计算指定列的数值和
    SELECT AVG(字段名) FROM 表名; 计算指定列的平均值
    SELECT MAX/MIN(字段名) FROM 表名; 计算指定列的最大值/最小值
    SELECT 字段名1,字段名2,…, FROM 表名
    GROUP BY 字段名1,字段名2,…;
    分组查询
    SELECT 字段名1,字段名2,…, FROM 表名
    GROUP BY 字段名1,字段名2,…;[HAVING 条件表达式];
    分组查询后过滤
    SELECT 字段名1,字段名2,…, FROM 表名
    LIMIT [m, ]n;
    限制查询结果
    (m,代表从m开始索引,默认值为1;n,代表从第m+1条开始取n条记录)

数据的完整性

  1. 实体完整性
    ALTER TABLE 表名 ADD PRIMARY KEY(列名); 添加主键约束
    CREATE TABLE 表名(
    字段名 数据类型 PRIMARY KEY
    );
    创建表时添加主键约束
    CREATE TABLE 表名(
    字段名1 数据类型,
    字段名2 数据类型,

    PRIMARY KEY(字段名1,字段名2,字段名n)
    );
    添加多字段的主键约束
    ALTER TABLE 表名 ADD UNIQUE(列名); 添加唯一约束
    CREATE TABLE 表名(
    字段名 数据类型 UNIQUE,

    );
    创建表时为某字段添加唯一约束
    ALTER TABLE 表名 MODIFY 字段名 数据类型 PRIMARY KEY AUTO_INCREMENT; 为已创建完成的表字段设置自动增长列
    CREAT TABLE (
    字段名 数据类型 AUTO_INCREMENT,

    );
    自动增长列

  2. 索引
    CREATE INDEX 索引名 ON 表名 (字段名[(长度)]); 为以创建完成的某个字段创建普通索引
    CREAT TABLE (
    字段名 数据类型,

    INDEX [索引] (字段名[(长度)])
    );
    创建普通索引
    CREATE UNIQUE INDEX 索引名 ON 表名 (字段名[(长度)]); 为以创建完成的某个字段创建唯一索引
    CREAT TABLE (
    字段名 数据类型,

    UNIQUE INDEX [索引] (字段名[(长度)])
    );
    创建唯一索引

  3. 域完整性
    ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL; 在已创建的表中添加非空约束
    CREAT TABLE (
    字段名 数据类型 NOT NULL,

    );
    为某个字段添加非空约束
    ALTER TABLE 表名 MODIFY 字段名 数据类型 DEFAULT 默认值; 在已创建的表中添加默认值约束
    CREAT TABLE (
    字段名 数据类型 DEFAULT 默认值,

    );
    为某个字段添加默认值约束

  4. 引用完整性
    ALTER TABLE 表名
    ADD FOREIGN KEY (外键字段名) REFERENCES 主表表名(主键字段名);
    添加外键约束
    CREAT TABLE 表名(
    字段名 数据类型,
    …,
    FOREIGN KEY (外键字段名) REFERENCES 主表表名(主键字段名)
    );
    创建表是添加外键约束
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名; 删除外键约束

多表查询

  1. 合并结果集
    使用UNION或者UNION ALL关键字合并
    区别在于两张表的重复数据是否被过滤掉

  2. 连接查询
    笛卡尔积实现交叉连接(CROSS JOIN)
    SELECT 查询字段 FROM 表1 CROSS JOIN 表2;
    内连接
    SELECT 查询字符 FROM 表1 [INNER] JOIN 表2
    ON 表1.关系字段 = 表2.关系字段 WHERE 查询条件

    外连接:
    左外连接
    SELECT 查询字段 FROM 表1 LEFT [OUTER] JOIN 表2
    ON 表1.关系字段 = 表2.关系字段 WHERE 查询条件;

    右外连接
    SELECT 查询字段 FROM 表1 RIGHT [OUTER] JOIN 表2
    ON 表1.关系字段 = 表2.关系字段 WHERE 查询条件;

    多表连接
    SELECT 查询字段 FROM 表1 [别名]
    JOIN 表2 [别名] ON 表1.关系字段=表2.关系字段
    JOIN 表m ON…;

    自然连接
    SELECT 查询字段 FROM 表1 [别名] NATURAL JOIN 表2 [别名];
    自连接
    SELECT 查询字段 FROM 表名 [别名1],表名 [别名2] WHERE 查询条件;

  3. 子查询
    子查询作为查询条件
    子查询作为表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值