欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学习笔记—MySQL基础

程序员文章站 2022-08-31 12:48:19
数据库的介绍 mysql数据库介绍 开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。 数据库的启动和连接 mysql数据库启动 在终端输入以下命令,启动mysql服务器 输入命令,查询mysql服务器状态 出现如下提示表示mysql服务器以启动成功 mysql数据库连接 输入账户和密 ......

数据库的介绍

mysql数据库介绍

  开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。

 

数据库的启动和连接

mysql数据库启动

  在终端输入以下命令,启动mysql服务器

service mysql start

  输入命令,查询mysql服务器状态

service mysql status

  出现如下提示表示mysql服务器以启动成功

学习笔记—MySQL基础

mysql数据库连接

  输入账户和密码连接数据库

 学习笔记—MySQL基础

学习笔记—MySQL基础

  表示启动成功。

 mysql数据库断开连接

  输入exit,如果显示bye表示断开成功。

学习笔记—MySQL基础

 

数据库的操作

显示数据库

show databases;

创建数据库

create database 库名 default character set utf8;

删除数据库

drop database 库名;

使用数据库

use 库名;

学习笔记—MySQL基础

  表示以成功切换到study数据库。

 

数据表的操作

显示数据表

show tables;

创建数据表

## 创建表语句
     create tables 表名(字段名 类型 约束,字段名 类型 约束,......);
     ## 注意:mysql是没有序列的,但是可以在创建表的时候直接指定主键是自赠的。
    在字段后使用 auto_increment 表示自增。

## mysql常见字段类型
    数值类型:
        int(长度)表示整数类型的数据
        float/double表示浮点数
    字符类型:
        varchar(长度)动态分配存储长度
        char(长度)分配固定长度
    日期类型:
        date:格式为yyyy-mm-dd
        datetime:格式为yyyy-mm-dd hh:mm:ss 占用8个字节
        timestamp:特点:会自动进行时区的转换,占用4个字节
        time:时间
        year:年份
    其他类型:
        text:字符数据
        blob:二进制数据

## 约束
  主键约束:
    在创建表时,在字段后使用 primary key 即可
    在创建表语句的最后面使用 constraint 约束名 pirmary key(主键字段名)
  非空约束:
    在创建表的时候直接在字段后使用 nut null 即可
    注意:
      mysql的非空约束中空字符是可以存储进去的。
  检查约束:
    在mysql中是没有检查约束的,但是使用check关键字又不会报错。
    解决:
      使用代码逻辑进行无效的数据过滤。
      使用 mysql 的存储过程。
  唯一约束:
    在字段名后直接使用 unique 即可
    在创建表语句的最后面使用 constraint 约束名 unique(字段名)
  外键约束:
    在字段名后直接使用 references 父表名(父表主键名)
    在创建表语句的最后面使用 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)

## 在表外部添加约束
  ## 主键约束
  alter table 表名 add constraint 约束名 pirmary key(主键字段名);
  ## 唯一约束
  alter table 表名 add constraint 约束名 unique key(字段名);
  ## 非空约束
  alter table 表名 modify 字段名 类型 not null;
  ## 外键约束
  alter table 表名 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)on delete set null on update cascase;

修改数据表

添加字段:
    alter table 表名 add 字段名 类型 约束;
删除字段:
    alter table 表名 drop 字段名;
修改字段类型:
    alter table 表名 modify 字段名 新的类型;
修改字段名:
    alter table 表名 change 字段名 新的字段名 类型;
修改表名:
    alter table 表名 rename as 新的表名;

删除数据表

drop table 表名;

查看表创建语句

show create table 表名;

 

表数据的操作

查询数据

## 单表查询
    ## 查询全部
        select * from 表名;
    ## 别名
        直接在字段后使用即可
        select 字段,字段 别名,字段 from 表名;
    ## 连接符
        使用concat(字段名,“连接的字符”)
    ## 去除重复
        使用 distinct 关键字即可
    ## 排序
        order by 字段名
    ## where字句
        select * from 表名 where 判断条件;
    ## 分组
        group by 字段名
        注意:
                分组可以和字段一起使用
    ## having
        分组后筛选
## 多表查询
select * from 表名1 别名1,表名2 别名2 where 别名1.字段名 判断条件 别名2.字段名;

select * from 表名1 别名1 inner join 表名2 字段名2 on 别名1.字段名 判断条件 别名2.字段名;
## 子查询
select * from 表名 where 字段名 in (select 字段名 from 表名 where 查询条件);

增加数据

insert into 表名 values(值1,值2,值3,...);    全字段插入
insert into 表名(主键字段名,字段,字段,...) values(值1,值2,值3,...);    部分字段插入

删除数据

delete from 表名 where 条件;

修改数据

update 表名 set 字段名=值,字段名=值,... where 条件;

分页查询

select * from 表名 limit x,y;
x:从第几条数据开始查询
y:每页显示多少条数据

## 每页显示n条,查询第m页的信息
select * from 表名 limit m*n-n,n;

 

 数据库的备份

 导出

## 导出整个数据库
mysqldump -u root -p 数据库名>/目录/文件名.sql;
## 只导出一个表
mysqldump -u root -p 数据库名 表名>/目录/文件名.sql;

导入

## 方法一 连接数据库之后输入
mysql>source /目录/文件名.sql;
## 方法二 连接数据库之前输入
mysql -u root -p 数据库名<文件名.sql;