MySQL基础知识1

数据库

  • MySQL服务器可以创建多个数据库
  • 每个数据库中可以包含多张数据表
  • 数据表中含有许多数据

通用语法规则:

  • SQL(Structured Query Language):结构化查询语言
  • SQL语句可以单行或多行书写,以分号结尾
  • 关键字建议大写,不区分大小写
  • 可以使用空格和缩进来增强语句的可读性
  • 单行注释:–注释内容 #注释内容(MySQL独有)
  • 多行注释:/注释内容/

SQL分类

  • DDL(Date Definition Language):数据定义语言。用来操作数据库,表,列等。
  • DML(Date Manipulation Language):数据操作语言。用来对数据库中表的数据进行增删改
  • DQL(Date Query Language):数据查询语言,用来查询数据库中表的记录(数据)。
  • DCL(Date Control Language):数据控制语言。用来定义数据库的访问权限,及创建用户
DDL 操作数据库和数据表

数据库:

  • 查询所有数据库:SHOW DATABASES;
  • 查询数据库的创建语句:SHOW DATABASESE 数据库名称;
  • 创建数据库:CREATE DATABASE 数据库名称;
  • 创建数据库(判断是否存在,如果不存在则创建)CREATE DATABASE IF NOT EXISTS 数据库名称;
  • 创建数据库(指定字符集):CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
  • 修改数据库(修改字符集):ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
  • 删除数据库:DROP DATABASE 数据库名称;
  • 删除数据库(判断,如果存在就删除):DROP DATABASE IF EXISTS 数据库名称;
  • 使用数据库:USE 数据库名称;
  • 查看当前使用的数据库:SELECT DATABASE();
数据表:
  • 查询所有数据表:SHOW TABLES;
  • 查询表结构:DESC 表名;
  • 查询表字符集:SHOW TABLE STATUS FROM 库名 LIKE ‘表名’;
--创建数据表:
CREATE TABLE 表名(
		列名 数据类型 约束,
		列名 数据类型 约束,
		...
		列名 数据类型 约束,
);
  • 常用数据类型:
    • int 整数类型 double :小数类型 date :日期类型,包含年月日,格式:yyyy-MM-dd
    • datatime 日期类型,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss
    • timestamp:时间戳类型,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss <如果不赋值,默认使用系统当前时间
    • varchar(长度):字符串类型
--修改数据表:

ALTER TABLE 表名 RENAME TO 新表名;(修改表名)
ALTER TABLE 表名 CHARATACTER SET 字符集名称;(修改表的字符集)
ALTER TABLE 表名 ADD 列名 数据类型;(单独添加一列)
ALTER TABLE 表名 MODIFY 列名 新数据类型;(修改某列的数据类型)
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;(修改列名的数据类型)
ALTER TABLE 表名 DROP 列名;(删除某一列)


DROP TABLE 表名;(删除数据表);
DROP TABLE IF EXISTS表名;(删除数据表,如果存在则删除)

DML表数据的增删改操作:
  • DML新增表数据:
    • 给指定列添加数据:INSERT INFO 表名(列名1,列名2,…)VALUES (值1,值2,…)
    • 给全部列添加数据:INSERT INFO 表名 VALUES (值1,值2…);
    • 批量添加数据:INSER INFO 表名(列名1,列名2,…)VALUES (值1,值2,…),(值1,值2,…)…;
    • INSER INFO 表名 VALUES (值1,值2,…),(值1,值2,…)…;
    • 列名和值的数量以及数据类型要对应,除了数字类型,其他数据类型都需要加单引号
  • DML修改和删除表数据
    • 修改表中数据:UODATE 表名 SET 列名1=值1,列名2=值2,…[WHERE 条件];(修改语句中必须加条件,不加条件,则所有数据都会修改。
    • 删除表中的语句:DELETE FROM 表名 [WHERE 条件];同上,必须加条件
DQL表数据的查询操作:
  • 查询语法: SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段 HAVING 分组后的过滤条件 ORDER BY 排序 LIMIT 分页
-- 查询全部数据:
SELECT * FROM 表名;
--查询指定字段的表的数据:
SELECT 列名1,列名2...FROM 表名;
-- 去除重复查询
SELECT DISTINCT 列名1,列名2... FROM 表名; 
--计算列的值(四则运算):
SELECT 列名1 运算符(+-*/)列名2 FROM 表名;
--起别名查询:
SELECT 列名 AS 别名 FROM 表名;

--条件查询:
SELECT 列名列表 FROM 表名 WHERE 条件;

-- 聚合函数查询:将一列数据作为一个整体,进行纵向计算
-- count(列名) max min sum avg 
SELECT 函数名(列名) FROM 表名 WHERE 条件;

--排序查询:  ASC-升序   DESC-降序   默认升序
SELECT 列名列表 FROM 表名 WHERE 条件 ORDER BY 列名 排序方式 ,列名,排序方式,...;

--分组查询:
SELECT 列名列表 FROM 表名 WHERE 条件 GROUP BY 分组列名 HAVING 分组后的条件过滤 ORDER BY 排序列名 排序方式;

--分页查询 
SELECT 列名列表 FROM 表名 WHERE 条件 GROUP BY 分组列名 HAVING 分组后的条件过滤 ORDER BY 排序列名 排序方式 LIMIT 当前页数,每页显示的条数;
约束:
  • 对表中的数据进行限定,保证数据的正确性、有效性、完整性!
  • 约束的分类
    • PRIMARY KEY 主键约束
    • PRIMARY KEY AUTO_INCREMENT 主键自增
    • UNIQUE 唯一约束
    • NOT NULL 非空约束
    • FOREIGN KEY 外键约束
    • FOREIGN KEY ON UPDATE CASCADE 外键级联更新
    • FOREING KEY ON DELECT CASCADE 外键级联删除
--主键约束:默认包含非空和唯一两个功能 一张表只能有一个主键 主键一般用于表中数据的唯一标识
--创建表的时候可以添加主键约束
SELECT TABLE 表名(
	列名 数据类型 PRIMARY KEY,
	...
	列名 数据类型 约束
);
--删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
-- 建表之后单独添加主键约束
ALTER TABLE 表名 MODIFY 列名 PRIMARY KEY

-- 主键自增约束:
--建表时添加主键自增约束:
CREATE TABLE 表名(
	列名 数据类型 PRIMARY KEY AUTO_INCRENT,
	...
	列名 数据类型 约束
);
--删除主键自增约束:
ALTER TABLE 表名 MODIFY 列名 数据类型;
--建表后单独添加主键约束:
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;

--唯一约束
--建表时添加唯一约束
CREATE TABLE 表名(
	列名 数据类型 UNIQUE,
	...
	列名 数据类型 约束
);
-- 删除唯一约束
ALTER TABLE 表名 DROP INDEX 列名;
-- 建表后单独添加唯一约束:
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;

--非空约束:
--建表时添加非空约束:
CREATE TABLE 表名(
	列名 数据类型 NOT NULL;
	...
	列名 数据类型 约束
);
--删除非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型;
--建表后添加唯一约束:
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;

--外键约束:当表与表之间的数据有相关联性的时候,如果没有相关约束,则无法保证数据的准确性!
--建表时添加外键约束:
CREATE TABLE 表名(
	列名 数据类型 约束;
	...
	CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名 (主表主键列名)
);
--删除外键约束:
ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
--建表后单独添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名 (主键列名);


--外键的级联更新和级联删除
--当把主表中的数据进行修改或者删除时,希望从表中有关联的数据也会随之修改或删除;
-- 添加级联更新
ALTER TABLE 表名 ADD
CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名)
ON UPDATE CASADE;
-- 添加级联删除
ALTER TABLE 表名 ADD
CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名)
ON DELETE CASADE;
-- 同时添加级联删除和更新
ALTER TABLE 表名 ADD
CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名)
ON UPDATE CASADE ON DELETE CASADE;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值