MySQL学习笔记

本文是关于MySQL的学习笔记,涵盖了数据库基础、SQL语言基础,包括DQL、DDL、DML,以及索引、存储过程、视图和事务等内容。重点介绍了SQL查询、数据操作以及数据库设计原则。
摘要由CSDN通过智能技术生成


《软件测试工程师所需的MySQL数据库技术,mysql系统精讲+课后练习》学习笔记

SQL在线编辑器:在线SQL廖雪峰的

数据库简介

数据库: 是指长期存储在计算机内、有组织的数据集合。简而言之,数据库就是一个存储数据的地方。
表:是数据库中存储数据的基本单位,数据按照分类存储到不同的表中,能够非常高效的查询其中的数据。
关系型数据库(Relational Database):由多张有关联的表组成的数据库。

关系型数据库的主要产品
Oracle:在大型项目中使用,银行,电信等项目;
MySQL: web 时代使用最广泛的关系型数据库;
Microsoft SQL Server: 在微软平台的项目常用;
SQLite:轻量级数据库,主要应用在移动平台。

MySQL 是一个关系型数据库管理系统,由瑞典 MySQLAB 公司开发,后来被Sun公司收购,Sun公司后来又被 Oracle 公司收购,目前属于 Oracle 旗下产品。MySQL 开源、支持多平台、免费、使用范围广,是了解学习关系型数据库的首选。

SQL概述

SQL(Structured Query Language)是“结构化查询语言”。
SQL 是一门特殊的语言,专门用来操作关系型数据库,当前关系型数据库都支持使用 SQL语言进行操作,也就是说可以通过 SQL 语言操作 oracle、mysql、sql server、sqlite 等等所有的关系型数据库。

SQL 语言主要分为:
DQL:数据查询语言,用于对数据进行查询,如 select;
DDL:数据定义语言,进行数据库、表的管理等,如 create、 drop;
DML:数据操作语言,对数据进行增、删、改,如: insert、update、delete;
TPL:事务处理语言,对事务进行处理。包括 begin transaction、commit、rollback;

对于测试工程师来讲,重点是数据的查询,需要熟练编写 DQL,能看懂 DDL,DML 和其他语句了解即可。

语法规范:关键字不区分大小写,建议用大写。

SQL语言基础

SQL注释

-- 单行注释(--与注释文字之间用空格分隔)
/*多行注释*/

数据库中的元素

数据库——database
表——table
字段——field
记录——record

CREATE TABLE 创建表

-- 创建表语法:
CREATE TABLE 表名(
	字段名 数据类型,
	字段名 数据类型,
	...
);

-- 举例:
/* 创建表student
字段:id 数据类型:int(整数)
字段:name(姓名) 数据类型:varchar(字符串) 长度:10
字段:height(身高) 数据类型:decimal(小数) 长度:一共5位,3位整数,2位小数
字段:age(年龄) 数据类型:tinyint unsigned(无符号小整数)
*/
CREATE TABLE student(
	id INT,
	name VARCHAR(10),
	height DECIMAL(5,2),
	age TINYINT UNSIGNED
);

INSERT 插入语句

-- 插入语法
INSERT INTO 表名 VALUES(...);

-- 往student表中插入一条记录
INSERT INTO student VALUES(1,'孙策',175.5,25); 

-- 指定字段进行插入
INSERT INTO student (id,name) VALUES(2,'孙权');

-- 插入多条记录
INSERT INTO student VALUES(3,'周公瑾',180,25),(4,'诸葛亮',178,26);
INSERT INTO student (id,name) VALUES(5,'大乔'),(6,'小乔');

SELECT 查询语句

SELECT *或者SELECT 字段名 控制了查询返回什么样的字段(列)

-- 查询语法
SELECT 查询字段 FROM 表名;

--查询student表格
SELECT * FROM student;

-- 查询特定字段,顺序自定义
SELECT age,id,name FROM student;

UPDATE 修改语句

-- 修改语法
UPDATE 表名 set 字段1 =1,字段2 =2 WHERE 条件;

-- 将id为3的记录姓名改为刘备,年龄改为20岁
UPDATE student SET name = '刘备',age = 20 WHERE id = 3;

-- id大于3的人年龄增加1
UPDATE student set age = age + 1 where id > 3;

DELETE 删除语句

-- 删除语法
DELETE FROM 表名 WHERE 条件;

-- 删除student表中id为6的记录(删除一条)
DELETE FROM student WHERE id = 6;

-- 删除student表中id小于3的记录(删除多条)
DELETE FROM student WHERE id < 3;

TRUNCATE 删除表数据

-- 删除语法
TRUNCATE TABLE 表名;

-- 删除student表
TRUNCATE TABLE student;

DELETE和TRUNCATE的区别

在速度上,truncate > delete;
如果想删除部分数据用delete, 注意带上 where子句;
如果想保留表而将所有数据删除,自增长字段恢复从 1 开始,用truncate;

DROP TABLE 删除表

-- 删除表语法
DROP TABLE 表名;

-- 删除student表,不存在报错
DROP TABLE student;

-- 如果表student存在,就删除,如果不存在,什么也不做
DROP TABLE IF EXISTS student;

字段的常用约束

主键(primary key): 值不能重复,auto_increment 代表值自动增长;
非空(not null):此字段不允许填写空值;
惟一(unique): 此字段的值不允许重复:
默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准。

CREATE TABLE a(
	-- 主键自增长,不指定自增长,指定按照指定的id
	id int UNSIGNED PRIMARY key AUTO_INCREMENT,
	name VARCHAR(10),
	age TINYINT UNSIGNED
);

INSERT INTO a VALUES(1,'钟离',30);
INSERT INTO a (name,age) VALUES('万叶',15);

-- 如果不指定字段,主键自增长字段的值可以用占位符,0或者null
INSERT INTO a VALUES(0,'神里绫华',18);
INSERT INTO a VALUES(NULL,'香菱',17);
CREATE TABLE b(
	id INT UNSIGNED,
	-- name字段必须有值,如果没有值插入会报错
	name VARCHAR(10) NOT NULL,
	age INT;
);

INSERT INTO b VALUES(1,'行秋',20);
CREATE TABLE c(
	id INT,
	-- name字段值不能重复
	name VARCHAR(10) UNIQUE,
	age INT
);
CREATE TABLE d(
	id INT,
	name VARCHAR(10),
	-- 如果插入时指定则用指定值,插入时未指定则用默认值
	age INT 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值