数据库与mysql

数据库

数据库就是以一定格式进行组织的数据的集合

特点

持久化存储
读写速度极高
保证数据的有效性
对程序支持性非常好,容易扩展

数据库的分类

  • 关系型数据库

    使用二维表格这种形式存储数据

    mysql orcle sqlite sqlserver

  • 非关系型数据库

    强调Key-Value 的方式存储数据

数据库管理系统

简称DBMS 为管理数据库而设计的软件系统

  1. 数据库文件 后缀名一般都是.db
  2. 服务端 服务端负责操作db数据库文件
  3. 客户端 发送操作指令(SQL语句)给服务端 控制数据库文件

sql

SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库语言。当前几乎所有关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库。

关系型数据库中的核心元素

字段:一列数据类型相同的数据
记录:一行记录某个事物的完整信息的数据
数据表:有若干字段和记录组成
数据库:由若干数据表组成

mysql环境搭建

  1. 安装服务端

    sudo apt-get install mysql-server
    

    启动服务端服务

    sudo service mysql start
    

    关闭服务端服务

    sudo service mysql stop
    
  2. 客户端安装

    sudo apt-get install mysql-client
    
  3. 登录服务端

    mysql -uroot -pmysql
    

配置文件 配置文件目录为/etc/mysql/mysql.cnf

​ 4.查看状态

ps -ajx | grep mysql

navicat

图形化客户端

mysql数据类型

整型类型

有符号 signed

无符号 unsigned

TINYINT 1字节 -128到-127或0-255

SMALLINT 2字节 -215-215-1或0-2^16-1

INT 4字节 -231-231-1或0-2^32-1

BIGINT 8字节 -263-263-1或0-2^64-1

浮点型

float 保留6位小数

double 保留16位小数

decimal 保留特定小数

字符串类型

char:最多255个字符(固定长度 有可能浪费内存)

varchar:最多有65535个字符(存储多少 占用多少 建议使用)

text:65535个字符

枚举类型

数据只有指定的几种值 男 女

enum(‘男’,‘女’)

时间类型

在这里插入图片描述

数据完整性和约束

完整性

数据完整性用于保证数据的正确性
ps: 年龄使用tinyint 数值最大为 127

约束

约束作用是保证数据的完整性和一致性
ps: 把性别字段设置为default “保密”, 当不输入张三性别信息时,依然用”保密”保证张三信息的完整

约束类型约束说明
NOT NULL非空约束
PRIMARY KEY主键约束(唯一)
UNIQUE KEY唯一约束
DEFAULT默认值
FOREIGN KEY外键约束

登录和退出数据库

  1. 登录数据库

    mysql -uroot -pmysql
    
  2. 退出登录

    exit/quit/ctrl+D
    
  3. 显示版本

    select version();
    
  4. 显示时间

    select now();
    

数据库操作

显示所有的数据库

show databases;

默认有四张表

| information_schema |
| mysql |
| performance_schema |
| sys

命令作用示例
show databases;查看所有数据库show databases;
select database();查看当前使用的数据库select database();
create database 数据库名 charset=utf8;创建数据库create database python charset=utf8;
use 数据库名;使用数据库use python;
drop database 数据库名;删除数据库-慎重drop database python;
show create database 数据库名查看创建数据库

数据库表的基本操作

命令作用
create table 表名(字段 数据类型 约束);创建数据表
show tables;查看当前数据库中所有表
desc 表名;查看表结构
show create table 表名;查看表的创建语句-详细过程
drop table 表名;删除表

操作表:use 数据库; 需要进入数据库之后才能操作表

数据库表的修改命令

命令作用
alter table 表名 add 列名 类型;添加字段
alter table 表名 change 原名 新名 类型及约束;重命名字段
alter table 表名 modify 列名 类型及约束;修改字段类型
alter table 表名 drop 列名;删除字段

命令总结

数据库的创建和删除

create database 数据库名称 charset=utf8;
drop database 数据库名称;

use 数据库;
select database();

数据表的创建和删除

create table students(
        id int unsigned primary key auto_increment not null,
        name varchar(20) not null,
        age int unsigned default 0,
        high decimal(5,2),
        gender enum("男","女"),
        cls_id int unsigned
    );
drop table 表名;   

desc 表名;

数据表的字段的增加 删除 修改

alter table 表名 add 列名 类型; 
alter table 表名 change 原名 新名 类型及约束;
alter table 表名 modify 列名 类型及约束;

表数据的增加

命令作用
insert into 表名 values (…);全列插入:值的顺序与表结构字段的顺序完全一一对应
insert into 表名 (列1,…) values(值1,…);部分列插入:值的顺序与给出的列顺序对应
insert into 表名 values(…),(…)…;一次性插入多行数据
insert into 表名(列1,…) values(值1,…),(值1,…)…;部分列多行插入

修改和查询数据

命令作用
select * from 表名 where 条件;查询所有列数据
select 列1,列2,… from 表名 where 条件;查询指定列数据
update 表名 set 列1=值1,列2=值2… where 条件;修改数据

删除数据

命令作用
delete from 表名 where 条件;删除数据

物理删除

逻辑删除

alter table students add is_delete bit default 0;
update students set is_delete=1 where id=1;   

指令总结

数据库的创建和删除

create database 数据库名 charset=utf8;
drop database 数据库名;

数据库表的创建和删除

create table students(
        字段 类型 约束,
    );
drop table 表名;    

数据库表的列的修改和添加

-- 添加字段
alter table 表名 add 字段名 类型  约束;
-- 删除字段
alter table 表名 drop 字段;
-- 修改字段
alter table 表名 change 原列名 新列名 类型 约束;
alter table 表名 modify 列名 类型 约束;

数据操作

  1. 增加

    -- 全字段添加
    insert into 表名 values(0,"小花",18,166.66,"男",110);
    -- 选择字段添加
    insert into 表名(列1,列2...) values(列1value,列2value...);
    
  2. 删除

    -- 按照条件删除
    delete from 表名 where 条件;
    -- 逻辑删除
    增加字段标识是否删除
    
  3. 修改

    -- 按照条件修改
    update 表名 set 列=值 where 条件;
    
  4. 查询

    -- 查询所有的列
    select * from 表名 where 条件;
    -- 查询某些列
    select 列1,列2 from 表名 where 条件;
    -- 查询时给列起别名
    select 列1 as 别名1,列2 as 别名2 from 表名 where 条件;
    
   -- 按照条件删除
   delete from 表名 where 条件;
   -- 逻辑删除
   增加字段标识是否删除
  1. 修改

    -- 按照条件修改
    update 表名 set 列=值 where 条件;
    
  2. 查询

    -- 查询所有的列
    select * from 表名 where 条件;
    -- 查询某些列
    select 列1,列2 from 表名 where 条件;
    -- 查询时给列起别名
    select 列1 as 别名1,列2 as 别名2 from 表名 where 条件;
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值