一、数据库

  1. 创建数据库
    create database 数据库名;
  2. 查询所有数据库
    show databases;
  3. 查看正在创建的数据库信息
    show create database 数据库名;
  4. 删除数据库
    drop database 数据库名;
  5. 使用数据库
    use 数据库名;

二、表

  1. 创建表
    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 '住址'
);
)

  1. 查询所有表
    show tables;
  2. 查询正在创建的表信息
    show create table 表名;
  3. 查询表的详细信息
    desc 表名;
  4. 删除表
    drop table 表名;
  5. 添加新的字段
    alter table 表名 add 字段名 数据类型(长度);
  6. 修改字段的数据类型、长度
    alter table 表名 modify 字段名 数据类型(长度);
  7. 删除字段
    alter table 表名字 drop 字段名;
  8. 修改字段名
    alter table 表名 change 旧字段名 新字段名 新字段数据类型(长度);
  9. 修改表名
    rename table 旧表名 to 新表名;

三、增删改查

  1. 增(插入)
    insert into 表名(字段1,字段2,字段3,...) values (值1,值2,值3,...);

注意:必须插入的值与表字段循序一一对应,且字符串和日期类型的数据库必须有单引号括起来
insert into 表名 values (值1,值2,值3,...);


  1. delete from 表名 where 条件表达式(说明:字段 = 'xxx');

  2. update 表名 set 字段1 = 值1,字段2 = 值2,... where 某字段 = 'xxx';

  3. select 字段1, 字段2,字段3,... from 表名 [where 条件表达式];

四、范式

  1. 第一范式:
  2. 第二范式:
  3. 第三范式:

五、判断对象是否存在

  1. 判断数据库是否存在
    if exists (select * from sysdatabases where name = '数据库名');
  2. 判断表是否存在
    if not exists (select * from sysobjects where name = '表名');

七、数据记录同济函数

  1. 平均值
    avg(字段名)
  2. 行数
    count(字段名)
  3. 列最大值
    max(字段名)
  4. 列最小值
    min(字段名)
  5. 列总和
    sum(字段名)

例如:
select count(name) form employee;

八、连接

  1. 内连接(inner join)
    查询返回满足条件的所有记录

默认情况下没有指定任何连接的则为内连接

  1. 左外连接(left join)
    不仅查询返回条件的所有记录,而且还会返回不满足连接条件的左边表的其他行
  2. 右外连接(right join)
    不仅查询返回条件的所有记录,而且还会返回不满足连接条件的右边表的其他行
  3. 全连接
    Mysql暂不支持,Union代替

九、索引

1.简介
MySQL索引是一种特殊的数据结构,能够帮助数据库系统快速地检索数据。索引常常被用于WHERE子句和JOIN子句中的列上,以提高查询性能。
2.MySQL中常见的索引类型

2.1 BTree索引
BTree索引是MySQL中最常见的索引类型,它使用B-Tree数据结构来存储索引。B-Tree索引非常适合进行范围查询和排序。如果使用了前缀索引,则B-Tree索引还可以用于在较短的字符前缀上进行查询。

2.2 哈希索引
哈希索引使用哈希算法来计算每个索引值的位置。这种类型的索引适合进行等值查询,但不适合进行范围查询和排序。哈希索引不能用于解决ORDER BY子句的性能问题,因为它无法保证数据的有序性。

2.3 全文索引
全文索引是一种特殊的索引类型,用于在文本中进行全文检索。它可以在文本中搜索特定的单词或短语,并返回与之匹配的结果。MySQL的全文索引可以用于MyISAM和InnoDB表。

3.MySQL索引的使用方式取决于查询的类型和数据的分布情况。以下是一些MySQL索引的使用注意事项

3.1 不要对大型表中的每个列都创建索引。这样做会影响查询性能并占用大量磁盘空间。

3.2 对于经常使用的列,创建索引可以提高查询性能。例如,对于经常使用的日期列或状态列,可以创建一个B-Tree索引。

3.3 尽量避免使用LIKE子句进行模糊查询。这样的查询不能使用索引,而是需要进行全表扫描。

3.4 对于查询经常使用的列,可以使用覆盖索引来提高查询性能。覆盖索引是指索引列就包含了查询所需的所有数据,不需要再到表中进行查找。

3.5 考虑使用复合索引。复合索引是由多个列组成的索引。复合索引可以减少索引数量,并提高查询性能。

3.6在对表进行大量写入操作时,索引可能会降低性能。因此,应该谨慎地对表进行索引,以避免写入性能问题。