Mysql常用语法详解
一、数据库
- 创建数据库
create database 数据库名;
- 查询所有数据库
show databases;
- 查看正在创建的数据库信息
show create database 数据库名;
- 删除数据库
drop database 数据库名;
- 使用数据库
use 数据库名;
二、表
- 创建表
create table 表名(字段名 数据类型(长度),字段名 数据类型(长度)...);
例如:
create table employee(
id int(10),
name varchar(25),
age int(3)
);
进阶:
create table employee(
id int(10) not null primary key comment '主键id',
name varchar(25) not null comment '姓名',
age int(3) not null comment '年龄',
address varchar(200) not null comment '住址'
);
)
- 查询所有表
show tables;
- 查询正在创建的表信息
show create table 表名;
- 查询表的详细信息
desc 表名;
- 删除表
drop table 表名; - 添加新的字段
alter table 表名 add 字段名 数据类型(长度);
- 修改字段的数据类型、长度
alter table 表名 modify 字段名 数据类型(长度);
- 删除字段
alter table 表名字 drop 字段名;
- 修改字段名
alter table 表名 change 旧字段名 新字段名 新字段数据类型(长度);
- 修改表名
rename table 旧表名 to 新表名;
三、增删改查
- 增(插入)
insert into 表名(字段1,字段2,字段3,...) values (值1,值2,值3,...);
或
注意:必须插入的值与表字段循序一一对应,且字符串和日期类型的数据库必须有单引号括起来
insert into 表名 values (值1,值2,值3,...);
- 删
delete from 表名 where 条件表达式(说明:字段 = 'xxx');
- 改
update 表名 set 字段1 = 值1,字段2 = 值2,... where 某字段 = 'xxx';
- 查
select 字段1, 字段2,字段3,... from 表名 [where 条件表达式];
四、范式
-
第一范式:指的是确保每个列都是原子性的、不可再分的,即列中不允许出现多个值或者多个属性。如果一个列中有多个值或者多个属性,就需要将这个列拆分成多个独立的列,以确保每个列中只包含一个原子值。这样可以避免数据冗余,也可以方便数据的更新和查询
-
第二范式:在第一范式的基础上进一步规范化数据的范式,它要求每个表都必须有一个主键,而且每个非主键列都必须完全依赖于主键,而不是依赖于主键的一部分。这意味着,如果一个表中有一些列依赖于另外一些列而不是主键,就需要将这些列提取到一个新的表中,并通过主键来建立关联关系,以确保数据的完整性和一致性。
-
第三范式:在第二范式的基础上进一步规范化数据的范式,它要求每个非主键列都必须直接依赖主键
五、判断对象是否存在
- 判断数据库是否存在
if exists (select * from sysdatabases where name = '数据库名');
- 判断表是否存在
if not exists (select * from sysobjects where name = '表名');
七、数据记录同济函数
- 平均值
avg(字段名)
- 行数
count(字段名)
- 列最大值
max(字段名)
- 列最小值
min(字段名)
- 列总和
sum(字段名)
例如:
select count(name) form employee;
八、连接
- 内连接(inner join)
查询返回满足条件的所有记录
默认情况下没有指定任何连接的则为内连接
- 左外连接(left join)
不仅查询返回条件的所有记录,而且还会返回不满足连接条件的左边表的其他行 - 右外连接(right join)
不仅查询返回条件的所有记录,而且还会返回不满足连接条件的右边表的其他行 - 全连接
Mysql暂不支持,Union代替
九、索引
1.简介
- MySQL索引是一种特殊的数据结构,能够帮助数据库系统快速地检索数据。索引常常被用于WHERE子句和JOIN子句中的列上,以提高查询性能
2.MySQL中常见的索引类型
-
BTree索引
BTree索引是MySQL中最常见的索引类型,它使用B-Tree数据结构来存储索引。B-Tree索引非常适合进行范围查询和排序。如果使用了前缀索引,则B-Tree索引还可以用于在较短的字符前缀上进行查询。 -
哈希索引
哈希索引使用哈希算法来计算每个索引值的位置。这种类型的索引适合进行等值查询,但不适合进行范围查询和排序。哈希索引不能用于解决ORDER BY子句的性能问题,因为它无法保证数据的有序性。 -
全文索引
全文索引是一种特殊的索引类型,用于在文本中进行全文检索。它可以在文本中搜索特定的单词或短语,并返回与之匹配的结果。MySQL的全文索引可以用于MyISAM和InnoDB表。
3.MySQL索引的使用方式取决于查询的类型和数据的分布情况。以下是一些MySQL索引的使用注意事项:
-
不要对大型表中的每个列都创建索引。这样做会影响查询性能并占用大量磁盘空间。
-
对于经常使用的列,创建索引可以提高查询性能。例如,对于经常使用的日期列或状态列,可以创建一个B-Tree索引。
-
尽量避免使用LIKE子句进行模糊查询。这样的查询不能使用索引,而是需要进行全表扫描。
-
对于查询经常使用的列,可以使用覆盖索引来提高查询性能。覆盖索引是指索引列就包含了查询所需的所有数据,不需要再到表中进行查找。
-
考虑使用复合索引。复合索引是由多个列组成的索引。复合索引可以减少索引数量,并提高查询性能。
-
在对表进行大量写入操作时,索引可能会降低性能。因此,应该谨慎地对表进行索引,以避免写入性能问题。
本文来自博客园,作者:手可敲星辰脚驾七彩云,转载请注明原文链接:https://www.cnblogs.com/arek/p/16663589.html,谢谢!