My SQL笔记

数据库的使用

主要功能: 查询数据 (SELECT): 从一个或多个表中检索数据。

插入数据 (INSERT): 向表中添加新记录。

更新数据 (UPDATE): 修改现有记录。

删除数据 (DELETE): 移除记录。

定义数据库结构 (CREATE, DROP): 创建、修改或删除数据库对象(如表、索引等)。

创建数据库 创建数据库是通过SQL语句来完成的,通常使用 create database 语句

常用数据类型:

整型 (int):用于存储整数。

浮点型 (double):用于存储带有小数的数值。

字符型 (varchar):用于存储文本字符串。

日期时间型 (date):用于存储日 创建表是通过SQL语句来完成的,通常使用 create table 语句。创建表时可以定义表中的各个字段及其数 据类型段及其数 据类型

主键约束 (primary key)

非空约束 (not null)

唯一约束 (unique)

默认值约束 (default)

检查约束 (check)

自增字段 (auto_increment)

检索(SELECT):从一个或多个表中检索信息 FROM指出从哪个表检索数据

检索一个列时 只需要加上一个列名 同理 检索多个列时加上多个列名即可

检索所有列时 可不输入列名 用*号代替 再FROM输出当前表名

通配符*

使用通配符可以检索出未知列

DISTINCT 特点是作用于所有的列 只返回不同值的行(具有唯一性)使用时必须放在列名的前面

TOP 可限制最多返回多少行(只检索多少行)

LIMIT (范围)OFFSET (范围)(检索从哪行到哪行)

也可简化为LIMIT(范围),(范围) 逗号之前的值对应的是OFFSET,逗号之后的值对应LIMIT

--表示注释 运用更灵活

#也是注释 但是用的不多 因为会把一整行都作为注释

/内容/这个也是注释

创建 create 删除 drop 库 database 表 table

数字 int 小数 double 字符串 varchar(200) 日期 date

--约束 主键约束primary key 主键不能重复,主键可以自增 唯一约束 unique 不能重复 非空约束 not null 必须有值 默认约束 default 没有填入值的时候自动加上了默认值 检查约束 check 设置值的范围

建表 create table stu( id int primary key auto_incre, name varchar(200) not null default '小明', age int not null default 18 );

删表 drop table sc;

建库 create database sc;

删库 drop database sc;

SQL语句 -- 增加 insert into 表名(列段1,列段2,....) values(值1,值2,...)

insert into stu(name,age,sex) values('jack',19,'男')

insert into stu(name,sex,age) values('jack','男',19)

查询 select select * from 表名

-- 表示所有列段 select * from stu;

-- 显示某些字段 名字 select name from stu;

-- 显示某些字段 名字,年龄 select name,age from stu;

-- 给查询加上条件 年龄大于23岁的 -- where 表示条件查询 select name,age from stu where age>23;

-- 查询所有的数据 只查询男生 select * from stu where sex='男'

select 查询 from 来自那个表 where 条件 set 设置

--- 更改数据 update

update 表名 set 列段1=值1,列段2=值2

-- 会修改所有数据 update stu set name='张三',age=20;

-- 加上条件 update stu set name='张三',age=20 where name='钱七';

-- 更新 student 表中所有学生的年龄, 将其年龄增加 1 岁。 update stu set age=age+1

更新 students 表中所有女性学生的年龄,使其增加2岁。

update stu set age=age+2 where sex='女'

删除 delete delete from 表名

-- 删除学生表所有的数据 delete from stu

--删除学生表年龄大于15 delete from stu where age>15

--删除学生表 性别是女 delete from stu where sex='女'

-- 删除学生表 性别是女并且年龄大于15岁 -- and并且 or或者 delete from stu where sex='女' and age>15;

增加 insert insert into 表名(列1,列2,...) values(值1,值2,...) (主键如果是自增的,可以忽略)

insert into stu(name,age)
values('jack',19);

删除 delete delete from 表名 where 条件;

delete from stu where age>20;

修改 update update 表名 set 列1=值1,列2=值2 where 条件;

update stu set name='jack'
where age>20;

查询 select select 列段 from 表名 where 条件; (*表示所有的列段)

select name,sex from stu
where age>20;

is null 是空值 is not null 是非空

in (1,2,3,4) 在内容里面

not in (1,2,3,4)不在内容里面

between a and b 在区间之间

& 任意个字符 _单个字符

排序order by 字段 顺序

select * from room order by price desc

去重 distinct

替换 REPLACE

字段别名是通过 AS 关键字或者直接跟在列名后使用,可以给查询结果中的列名赋予新的名称,方便展示或者 处理

例如 SELECT name, phone AS 联系电话 FROM user;

条件查询是通过 WHERE 子句指定查询条件,只返回符合条件的记录。

模糊查询是通过 LIKE 操作符配合通配符 % 和 _ 实现模式匹配。

例如 SELECT * FROM plan WHERE begin LIKE '%20'。

排序查询是通过 ORDER BY 子句对查询结果进行排序,可以指定一个或多个列,并指定升序(ASC,默认)或 降序(DESC)。

升序 SELECT * FROM room ORDER BY price ASC;

降序 SELECT * FROM room ORDER BY type_id DESC;

去重查询是通过 DISTINCT 关键字去除查询结果中的重复行,常用于统计不同的值。

SELECT DISTINCT name FROM type;

SQL中的函数

字符串函数

  1. UPPER(column) - 将字符串转换为大写。

  2. LOWER(column) - 将字符串转换为小写。

  3. CONCAT(column1, column2, ) - 将多个字符串连接成一个字符串。

  4. SUBSTRING(column, start, length) - 截取字符串的一部分。

  5. LENGTH(column) - 获取字符串的长度。

  6. replace(column, old, new) - 将字符串转换为小写。

数学函数

1.ABS(column) 计算绝对值

2.CEIL(column) 向上取整

3.FLOOR(column) 向下取整

4.ROUND(column) 四舍五入

日期函数

  1. NOW() - 获取当前日期和时间。

  2. YEAR(date) - 提取日期中的年份。

  3. MONTH(date) - 提取日期中的月份。

  4. DAY(date) - 提取日期中的天数。

其他函数

  1. IFNULL(column, default_value) - 如果列值为 NULL,则返回默认值。

聚合函数

常用的聚合函数:

COUNT(): 计算符合条件的行数。

SUM(): 计算数值列的总和。

AVG(): 计算数值列的平均值。

MAX(): 找出一列中的最大值。

MIN(): 找出一列中的最小值

联表查询

内联接(INNER JOIN)

INNER JOIN 只返回两个表中匹配的行。如果某一行在其中一个表中没有匹配,则该行不会出现在结果集中。

左联接(LEFT JOIN)

LEFT JOIN 返回左表中的所有行和右表中匹配的行。如果右表中没有匹配,则使用NULL填充右表中的列。

右联接(RIGHT JOIN)

RIGHT JOIN 返回右表中的所有行和左表中匹配的行。如果左表中没有匹配,则使用NULL填充左表中的列。

分组及筛选

GROUP BY 子句用于组合数据,通常与聚合函数一起使。

HAVING 子句用于对 GROUP BY 子句生成的结果集进行筛选。

视图与表的区别

区别总结:

物理存在

表:实际存储数据。

视图:只是保存的查询,不存储数据。

性能

表:直接查询表通常更快。

视图:需要执行其定义的查询,可能会稍慢。

更新

表:可以直接进行插入、更新和删除操作。

视图:取决于其定义的查询是否允许更新。

索引的基本概念

索引是数据库中用于提高查询速度的一种数据结构。它类似于书籍的目录,通过索引可以直接找到需要的数据 行,而不需要扫描整个表。

索引的优点 1. 提高查询速度:索引可以显著加快查询操作,特别是对于大型表。 2. 加速排序和分组:索引可以帮助数据库引擎更快地进行排序和分组操作。 3. 唯一性约束:唯一索引可以确保索引列中的所有值都是唯一的。

索引的缺点 1. 增加存储空间:索引需要额外的存储空间。 2. 影响写操作:插入、更新和删除操作会变慢,因为每次操作都需要维护索引

你可能感兴趣的:(笔记,mysql)