MySQL入门

55 阅读4分钟

数据库:用于存储数据的仓库,其本质是一个文件系统。可以按照特定的格式将数据存储起来,并且对数据库中的数据进行增加、修改、删除、及查询操作。

黑窗口运行mySQL服务:npm start mysql 关闭mySQL服务:npm stop mysql

常见的数据库

  • Oracle
  • MySQL:较常用
  • SQLserver:C#、.net常用
  • DB2:多用于银行系统
  • SyBase
  • SQlite

SQL语句分类

  • DDL:数据定义语言(定义数据库、表、列)
  • DML:数据操作语言(对表中数据进行增、删、改)
  • DQL:数据查询语言(查询数据)
  • DCL:数据控制语言(定义数据的访问权限和安全级别及创建用户)

DDL语句

关键词:CREATE、DROP、ALTER

  • 创建数据库:CREATE DATABASE 数据库名称;
  • 判断是否存在数据库并创建:CREATE DATABASE IF NOT EXISTS 数据库名称;
  • 查看所有的数据库:CREATE DATABASES;
  • 创建数据库并指定字符集:CREATE DATABASE 数据库名称 CHARACTER SET 字符集;
  • 查看创建的数据库信息:SHOW CREATE DATABASE 数据库名称;
  • 修改数据库字符集格式:ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 字符集;
  • 删除数据库:DROP DATABASE 数据库名称;
  • 查看正在使用的数据库:SELECT DATABASE();
  • 切换使用数据库:USE 数据库名称;

补充:字段类型

int整型、double浮点型 两位、varchar文本二进制、data日期类型、datatime、timestampcharfloat浮点型 单
  • 创建表:CREATE TABLE 表名称(字段名1 字段类型,字段名2 字段类型,字段名3 字段类型......)
  • 查询所有表:SHOW TABLES;
  • 查看表结构:DESC 表名称;
  • 查看建表语句:SHOW CREATE TABLE 表名称;
  • 快速创建一个表结构相同的表:CREATE TABLE 新表名称 LIKE 旧表名称;
  • 删除表:DROP TABLE 表名称;
  • 判断表是否存在并删除表:DROP TABLE IF EXISTS 表名称;
  • 添加表列:ALTER TABLE 表名称 ADD 列名 类型;
  • 修改列类型:ALTER TABLE 表名称 MODIFY 列名 新类型;
  • 修改列名:ALTER TABLE 表名称 CHANGE 旧列名 新列名 类型;
  • 删除列:ALTER TABLE 表名称 DROP 列名;
  • 修改表名:RENAME TABLE 表名称 TO 新表名称;
  • 修改表字符集:ALTER TABLE 表名称 CHARACTER SET 字符集;

DML语句

关键词:INSERT、DELETE、UPDATE

  • 增加数据:INSERT INTO 表名称(字段1,字段2......) VALUES (值1,值2......)
  • 蠕虫复制:(在已有数据的基础之上,将原来的数据进行复制,插入到对应的表中)INSERT INTO 表1 SELECT * FROM 表2;
  • 更新数据:
    • UPDATE 表名称 SET 字段=值;
    • UPDATE 表名称 SET 字段=值 WHERE 字段=值;
  • 删除数据:
    • DELETE FROM 表名称;
    • DELETE FROM 表名称 WHERE 字段=值;
    • TRUNCATE TABLE 表名称;

补充:DELETE与TRUNCATE的区别

  • delete是一条一条的数据进行删除,AUTO_INCREMENT不会重置
  • truncate是直接删除表,再新建表,AUTO_INCREMENT会重置

DQL语句

关键词:SELECT、WHERE

  • *:代表所有
  • AS :指定别名
  • 清除重复值:SELECT DISTINCT 字段名 FROM 表名称;
  • 查询结果可以参与运算:AND和、OR或、NOT不
  • in():SELECT 字段名 FROM 表名称 WHERE IN(数据1,数据2......)IN里的每个数据都会做为一次条件进行查询;
  • 范围查询:BETWEEN 范围值 AND 范围值;
  • 模糊查询 LIKE:SELECT * FROM 表名称 WHERE 字段 LIKE 通配符字符串;
    • %表示0个或多个字符
    • _表示 一个字符
  • 排序ORDER BY:SELECT * FROM 表名称 WHERE 字段=值 ORDER BY 字段;
    • ASC升序
    • DESC降序
  • 聚合函数:对一列的值进行计算,会忽略空值,返回一个结果值;
    • COUNT():统计指定列的记录数
    • SUM():指定列的数值和
    • MAX():指定列的最大值
    • MIN():指定列的最小值
    • AVG():指定列的平均值
  • 分组查询GROUP BY:一般搭配聚合函数使用;
    • HAVING:对分组之后的数据进行条件判断时使用
  • 分页限制LIMITE:写在SQL语句最后;LIMITE OFFSET LENTH;
    • offset:偏移量
    • length:需要显示的总记录数

数据约束

对数据进行进一步的限制,保证数据的正确性、有效性和完整性

  • PRIMARY KEY:主键(每张表有且只有一个主键,一般为id)
    • 创建主键:字段名 字段类型 PRIMARY KEY
    • 删除主键:ALTER TABLE 表名称 DROP PRIMARY KEY
    • 主键自增:字段名 字段类型 PRIMARY KEY AUTO_INCREMENT
    • 修改主键自增起始值:ALTER TABLE 表名称 AUTO_INCREMENT=起始值
  • UNIQUE:唯一
  • NOT NULL:非空
  • DEFAULT:默认
  • FOREIGN KEY:外键