数据库:用于存储数据的仓库,其本质是一个文件系统。可以按照特定的格式将数据存储起来,并且对数据库中的数据进行增加、修改、删除、及查询操作。
黑窗口运行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、timestamp、char、float浮点型 单
- 创建表: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:外键