17-Mysql数据库

时间:2021-08-09 03:07:18

数据库

1.1 概念

数据库:db、database,存储数据的仓库,以文件形式存储数据。

DBMS:Database Manager System
常见的数据库:
1、MySQL:免费的中小型数据库,Oracle公司的
2、Oracle:收费的大型数据库,Oracle公司的
3、SQL Server:微软的大型的收费的数据库
4、SQLite:移动端的嵌入式的小型数据库

数据库的分类:
1、关系型(MySQL、Oracle)

* 优点:通用的SQL语句、易于理解
* 缺点:大量数据的读写为保证一致性会导致性能降低

2、非关系型(MongDB、Redis)

* 优点:读写性能较好,易于扩展
* 缺点:学习、使用成本较高

1.2 结构

类       表
属性      字段、列
对象      记录

1.3 语法

1、一条语句可以分为单行或多行书写
2、语句用分号结尾
3、不区分大小写,但是关键字建议用大写
4、注释:

  • 单行注释:-- 注释内容 或者 # 注释内容(MySQL特有)
  • 多行注释:/* 注释内容 */

1.4 SQL语言

SQL:结构化查询语言(Structured Query Lanuage)

分类:
1、DDL:数据定义语言

对库、表进行定义,删除
create、drop 

2、DML:数据操作语言

对记录进行增、删、改
insert、update、delete

3、DQL:数据查询语言

对记录进行查询
select、where、in、on、limit、having、order by、group by、desc、asc、like

4、DCL:数据访问语言

对数据库设置安全级别和访问权限
revoke

CRUD:create retrieve update delete

SQL

一. 库的操作

连接数据库:

  • mysql -uroot -proot
  • mysql -uroot -p

    1.1 数据库的创建

    直接创建:
    create database 库名;
    创建同时设置库的编码:
    create database 库名 character set 编码;
    先判断数据库是否已存在,不存在才创建:
    create database if not exists 库名;

1.2 数据库的查看

查看管理系统中有哪些数据库:
    show databases; 
查看数据库的创建:
    show create database 库名;

1.3 数据库的删除

直接删除:
    drop database 库名;
先判断数据库是否存在,存在才删除:
    drop database if exists 库名;

1.4 数据库的修改

修改数据库的编码格式:
    alter database 库名 character set 编码;

1.5 其他操作

明确要使用的数据库:
    use 库名;

二. 表的操作

2.1 创建表

create table 表名 (字段1 类型 [约束],字段2 类型 [约束],字段3 类型 [约束],...);
*创建表的时候,int型可以不写长度,但varchar必须写长度*
类型:
1、varchar(n)
2、double
3、int
4、date:yyyy-MM-dd
5、datetime:yyyy-MM-dd HH:mm:ss
6、timestamp:时间戳,yyyy-MM-dd HH:mm:ss,
如果timestamp没有设置,那么这个值就是添加此记录的时间

2.2 删除表

直接删除:
    drop table 表名;
先判断表是否存在,存在才删除:
    drop table if exists 表名;

2.3 查看表

查看当前库中的所有表:
    show tables;
查看指定表的表结构:
    desc 表名;

2.4 修改表结构

修改表名:
    alter table 表名 rename to 新表名;
添加一列(字段):
    alter table 表名 add 列名 类型 [约束];
修改列名:
    alter table 表名 change 旧列名 新列名 类型 [约束];
修改列:
    alter table 表名  modify 列名 类型 [约束];
删除列:
    alter table 表名 drop 列名;

2.5 其他操作

复制表结构:
    create table 表名 like 要复制的表名; 

三. 记录的操作

3.1 添加记录

向记录中的所有字段添加值:
    insert into 表名 values(值1,值2,值3,...);
向记录中的指定字段添加值:
    insert into 表名 (字段1,字段2,...) values (值1,值2,...);

3.2 修改记录

修改所有记录的指定字段值:
    update 表名 set 字段1 = 值1,字段2 = 值2,...;
修改指定记录的指定字段值:
    update 表名 set 字段1 = 值1,字段2 = 值2,... where 条件;

3.3 删除记录

删除指定记录:
    delete from 表名 where 条件;
删除所有记录:
    delete from 表名;逐条删除表中记录,性能较差,不推荐使用。
删除所有记录:
    truncate table 表名;  一次性删除整张表,性能较好,推荐使用。 当再次使用该表时,该表会根据原始状态重新构建一张新表。

3.4 查询记录

查询所有记录的所有字段信息:
    select * from 表名;
查询所有记录的指定字段信息:
    select 字段1,字段2,... from 表名;
查询指定记录的所有字段信息:
    select * from 表名 where 条件;
查询指定记录的指定字段信息:
    select 字段1,字段2,... from 表名 where 条件;