1. 数据库基础

2. 环境变量

在用户里面添加 MYSQL_HOME = MYSQL的安装目录

在系统变量 Path 里面添加 MYSQL = MYSQL的安装目录/bin

即可在cmd里面输入mysql -uroot -p

如想连其他主机mysql则使用,mysql -hIP -P3306(端口) -uroot -p密码

3. 命令符指令

  • show databases; 查看数据库

  • use 库的名字; 进入指定的库

  • show tables; 查看指定库的表

  • show tables from 库的名字; 查看某个库的表,不进入库

  • select database(); 查看当前在那个库

  • create table 表的名字( 在当前库创建新的表

    1. mysql里面没有字符串,单字符多字符都叫字符 varchar() 括号里面控制有多少个字符

    2. datetime, 时间类型

    3. int 数字类型
    4. 创建完表在后面加上); ,命令符里面都是以分号作结束字段
  • desc 表的名字; 查看表的结构 (describe 描述)

  • selct * from 表的名字; 查看表的数据

  • insert into 表的名字 values(); 在表中插入新的数据,括号里面填入要插入的数据

  • set names gbk; 如果插入失败可能是编码问题,如果改gbk不行尝试改成utf8

  • update 表的名字 set 列的名字=‘XXXX’ where(相当于if) 其中一项列的名字(判断条件);

  • delete from 表的名字 where 列的名字=“XXXX” 删除指定列

  • alter table 表的名字 add column 列的名字 数据类型 在表中新建类别列

  • drop table 表的名字 删除指定表的

  • exit; 退出

  • 注释

  • –- 注释

  • /注释 #注释不能嵌套

4. SQL语句类别

SQL基本可以用在所有关系型数据库中,除了某些特有的指令

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; 常见指令有:create/drop/alter

DML(Data Manipulation language):数据操作语言,用来定义数据库记录(数据); Insert/updata/delete

DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

TCL(Transaction Control Language)

DQL(Data Query Language):数据查询语言,用来查询记录(数据)。 select

5. 数据库相关命令

  • 查询所有数据库 show database;
  • 查询数据库创建时的语句 show create database 数据库名;
  • 创建数据库 create database 数据库名;
  • 创建时判断是否存在 create database if not exists 数据库名;
  • 指定字符 create database 数据库名 character set utf8;
  • 修改数据库字符 alter database 数据库名 character utf8;
  • 删除数据库 drop database 数据库名;
  • 删除判断 drop database if exists 数据库名;
  • 使用数据库 use 数据库名;
  • 当前数据库 select database();

6. 表相关命令

  • 查询表 show tables;
  • 查询表结构 desc 表名;
  • 查询表字符集 show table status from 库名 like ‘表名’;
  • 修改表名 clter table 表名 rename to 新表名;
  • 修改表的字符集 alter table 表名 character set utf8;
  • 单独添加一列 alter table 表名 add 列名 数据类型;
  • 修改指定列类型 alter table 表名 modify 列名 新数据类型;
  • 修改列名和数据类型 alter table 表名 change 列名 新列名 新数据类型;
  • 删除某一列 alter table 表名 drop 列名;
  • 删除表 drop table 表名;
  • 删除判断 drop table if exists 表名;

7. 数据类型

  • int 整数型
  • douban 小数
  • date 日期类型 yyyy-MM-dd
  • datetime 日期时间类型 yyyy-MM-dd HH:mm:ss
  • timestamp 时间戳类型 yyyy-MM-dd HH:mm:ss 如果不赋值或赋值为null 则使用当前系统时间自动赋值
  • varchar(长度) 字符串类型

8. 表数据操作

  • 添加数据 insert into 表名(列名) values(值1,值2);
  • 更新 update 表名 set 列名=值1,列名2=值2 where
  • 删除表指定数据 delete from 表名 where

9. 查询

  • 去重复 select distinct 列名1,列名2 from 表名;
  • 四则运算 select 列名1*10 frome 表名;
  • 起别名 select 列表 as 别名 from 表名;
  • 判断null ifnull(列名,替换的值)
  • 02. 数据库基础 - 图1

10. 集合函数

02. 数据库基础 - 图2

select 函数名(列名) from 表名 where

11. 排序查询

  • ORDER BY select 列名 frome 表名 where order by 列名 排序方式,列名2 排序方式

    • ASC 升序 默认值 如果是多个条件 只有当判断值一样时才会执行第二个条件排序
    • DESC 降序

12. 分组查询

  • GROUP BY select 列名 from 表名 group by 指定以什么分组的列名

    • 分组前过滤 where
    • 分组后过滤 having

13. 分页查询

  • LIMIT select 列名 from 表名 LIMIT 当前页,每页个数

    • 当前页 = (当前页 - 1 ) * 每页个数

14. 约束

02. 数据库基础 - 图3

  • 主键约束 默认包含非空和唯一 一张表只有一个主键

    • 创建 create table 表名 (列名 数据类型 primary key)
    • 删除pk alter table 表名 drop primary key;
    • 建表后添加主键 alter table 表名 modify 列名 数据类型 primary key;
  • 自增约束 必须要配合其他约束一起使用 如主键

    • 创建 create table 表名(列名 数据类型 primary key auto_increment);
    • 删除 alter table 表名 modify 列名 数据类型
    • 建表后添加 alter table 表名 modify 列名 数据类型 auto_increment;
  • 唯一约束 不重复

    • 创建 create table 表名(列名 数据类型 unique);
    • 删除 alter table 表名 drop index 列名;
    • 建表后添加 alter table 表名 modify 列名 数据类型 unique;
  • 非空约束 不允许为NULL

    • 创建 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 cascade;
  • 外键级联删除 当主表的主键删除时 从表的外键也删除

    • alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主表主键列名) on delete cascade;
  • 级联同时更新和删除

    • alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主表主键列名) on update cascade on delete cascade;