Mysql基础1

数据库

定义

  1. 持久化存储在数据的仓库
  2. 在数据库中,以二维表结构形式存储数据
    表结构:
字段名 描述表信息
记录 表示一条条数据

数据库管理软件

mysql oracle(甲骨文) sqlserver

mysql使用方法

  1. 下载直接官网下载
    注:修改编码方式为utf-8
  2. 不推荐 开始里面找到MySQL,输入密码后出现版本号及其他信息,打开成功
  3. 推荐 使用Navicat for MySQL工具操作MySQL
  4. 打开Navicat for MySQL点击查询,点击新建查询

Mysql

DDL数据库操作

命令 含义
SHOW DATABASES 查询所有数据库
SELECT DATABASE() 查询当前数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集][COLLATE 排序规则] 创建库
DROP DATABASE[IF EXISTS]数据库名 删除库
USE 数据库名 使用库
SHOW TABLES 查询当前数据库所有表
DESC 表名 查询表结构
SHOW CREATE TABLE 表名 查询指定表的建表语句
CREATE TABLE 表名(字段 字段类型[COMMENT 字段注释])[表注释] 创建表
ALTER TABLE 表名 ADD 字段名(长度)[COMMENT 注释] 表操作,添加字段
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度) 修改数据类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释] 修改字段名和数据类型
ALTER TABLE 表名 DROP 字段名 删除字段
DROP TABLE [IF EXISTS]表名 删除表
TRUNCATE TABLE 表名 删除表

注:

  1. []表示里面内容可选
  2. SHOW TABLES必须先用USE 数据库名找到数据库才能使用
  3. TRUNCATE TABLE 表名会先删除表,然后再重新创一个空表单
    示例:
    创建库
SHOW DATABASES;
/*mysql
  test*/
SELECT DATABASE();
-- mysql
CREATE DATABASE test2;
/*mysql
  test
  test2*/
DROP DATABASE test2;
/*mysql
  test*/

创建表

USE test2;
--激活使用库test2
SHOW TABLES;
--显示为空
CREATE TABLE person(name VARCHAR(10),age INT)
--创建表单
DESC person;
--name VARCHAR(10)
--age  INT
ALTER TABLE person ADD gender CHAR(1);
--添加一个字段gender
DESC person;
--name VARCHAR(10)
--age INT
--gender CHAR(1)
ALTER TABLE person CHANGE name myname CHAR(10);
--替换name
DESC person;
--myname VARCHAR(10)
--age INT
--gender CHAR(1)
DROP TABLE person;
--删除
DESC person;
--null

数据类型

数值类型 大小 含义
TINYINT 1字节 小整数值
SMALLINT 2字节 大整数值
MEDIUMINT 3字节 大整数值
INT或INTEGER 4字节 大整数值
BIGINT 8字节 极大整数值
FLOAT 4字节 单精度 浮点数值
DOUBLE 8字节 双精度 浮点数值
DECIMAL 小数值

注:

  1. DOUBLE(4,1)表示数值为4位,有1位小数
  2. unsinged添加在数值类型后,表示不为负值
字符串类型 大小 含义
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 变长字符串
TINYBLOB 0-255字节 不超过255个字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65535字节 二进制的长文本数据
TEXT 0-65635字节 长文本数据
MEDIUMBLOB 0-16777215字节 二进制中等长度文本数据
MEDIUMTEXT 0-16777215字节 中等长度文本数据
LONGBLOB 0-4294967295 二进制形式极大文本数据
LONGTTEXT 0-4294967295字节 极大文本数据

注:CHAR(X)与VARCHAR(X)表示只能存储最大10个字符串

日期时间类型 大小 格式 含义
DATE 3 YYYY-MM-DD 日期值
TIME 3 HH:MM:SS 时间值或持续时间
YEAR 1 YYYY 年份值
DATETIME 8 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 YYYYMMDD HHMMSS 时间戳

DML对数据库中的表的数据记录进行增删改操作

  1. 添加数据
  • 指定字段INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);
  • 给全部字段INSERT INTO 表名VALUES(值1,值2,…);
  • 批量添加数据INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…)(值1,值2,…);
  • 所有批量添加数据INSERT INTO 表名VALUES(值1,值2,…);
    注:
  1. 插入数据需要与字段一一对应
  2. 字符串和日期需要引号引起来
  3. 不能超出规定数据类型

示例:

INSERT INTO person(name,age)VALUES('jack',20)DESC person;
-- name age
-- jack 20
  1. 修改数据
  • UPDATE 表名 SET 字段名1=值1,字段名2=值2,…[WHERE 条件];
UPDATE person SET `name`='mack' WHERE id=1;
DESC person;
-- name age
-- mack 20
  1. 删除数据
  • DELETE FROM 表名 [WHERE 条件];
    注:
    1. DELETE语句条件可以有,也可以没有,如果没有,删除整张表
    2. DELETE语句不能删除某个字段值,如果删除某个字段值使用UPDATE
      应用:
  DELETE FROM person WHERE id=1;
  DESC person;
-- null

DQL数据查询语言,用来查询数据库表中的数据

  1. 查询多个字段
  • SELECT 字段1,字段2,… FROM 表名;
  • SELECT * FROM 表名;
SELECT name FROM person;
--name
--mack
--rose
  1. 设置别名
  • SELECT 字段1[AS 别名1],字段2[AS 别名2]… FROM 表名;
    注:别名也就后面注释
  1. 去除重复记录
  • SELECT DISTINCT 字段列表 FROM 表名;
INSERT INTO person (id,name,url,gender) VALUES (3,'jack','dafda','男');
SELECT * FROM person;
-- id name url gender
-- 1  mack aaa  男
-- 2  rose bbb  女 
-- 3  jack ccc  男 
SELECT DISTINCT gender FROM person;
--男
--女
  1. 条件查询
  • SELECT 字段列表 FROM 表名 WHRER 条件
SELECT * FROM person WHERE id>2;
-- 3  jack ccc  男 

条件:

比较运算符 含义
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<>或!= 不等于
BETWEEN…AND… 在某个范围之内
IN(…) 在in之后的列表中的值,多选一
LIKE 模糊匹配(__匹配单个字符%匹配全部字符)
IS NULL 是null
AND或&& 并且
OR或|| 或者
NOT或1
  1. 聚合函数:将一列数据作为一个整体,纵向计算
  • SELECT 聚合函数(字段列表) FROM 表名;
函数 含义
COUNT 统计数量
MAX 最大值
MIN 最小值
AVG 平均值
SUM 求和
SELECT SUM(id) FROM person;
--SUM id
--6
  1. 分组查询
  • SELECT 字段列表 FROM 表名 [WHRER 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
    WHERE与HAVING区别:
    1. 执行时机不同,WHERE是分组之前进行查询,不满足条件的不参与分组查询,HAVING是分组后进行过滤
    2. 判断条件不同,WHERE不能对聚合函数进行判断,HAVING可以
SELECT gender,COUNT(*) FROM person GROUP BY gender;
--gender   COUNT(*)
-- 女        1
-- 男        2 
  1. 排序查询
  • SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
排序方式 含义
ASC 升序(默认值)
DESC 降序

注:多字段排序时,第一个字段相同,才会进行第二个字段排序

SELECT * FROM person ORDER BY id DESC;
-- id name url gender
-- 3  jack ccc  男  
-- 2  rose bbb  女 
-- 1  mack aaa  男
  1. 分页查询
  • SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注:
1. 起始索引从0开始。起始=(查询页码-1)*每页记录数
2. 分页查询是数据库方言,Mysql中是LIMIT
3. 如果查询是第一页,起始索引可以省略

SELECT * FROM person LIMIT 0,2;
-- 1  mack aaa  男
-- 2  rose bbb  女 

DQL执行顺序

Mysql基础1_第1张图片

你可能感兴趣的:(Mysql基础,前端,javascript,数据仓库)