数据库---mysql安装以及基础命令

1.什么是mysql

1.1 什么是数据库(DateBase DB)

利用数据结构村塾数据的仓库

1.2 数据库管理系统(DBMS)

操纵和管理数据库的一套系统软件

1.3 数据库管理系统分类
  • 关系型的数据库管理系统(RDBMS)

    处理结构化数据库(可以用行和列来表示)

    • Oracle:oracle公司大型的分布式RDBMS
    • Mycql:开源免费
    • sqlserver/db2
  • 非关系型的数据库(Nosql)

    数据多样性

    关系的复杂性

    高并发和高lo操作

    redis/HBase/mongoDB/Neo4j

1.4 Mysql简介

​ 开源免费的关系型数据库管理系统。

​ 利用表(数据库表)存储和管理数据,行称为记录,列称为字段

​ 管理多喝数据库,每个数据库中管理多张表。

​ 支持千万级的数据量。

​ 支持GPL许可证。

​ 1996年由Mysql AB公司开发完成;

​ 2000年正式开源;

​ 2008年 mysql被sun公司以10亿美元收购;

​ 2009年 sun被oracle以74亿美元收购。

2. Mysql的安装和使用

2.1 mysql的下载和安装

https://www.oracle.com/index.html

https://www.mysql.com/

3.Mysql的使用

3.1 连接数据库
mysql -uroot -p密码 
3.2 常见命令
show databases ;     显示数据库
use 数据库名字 ;    切换数据库
show tables ;     显示表
3.3 图形化界面工具

客户端: 利用图形界面来展示数据(比较友好) navicat sqlyog 等等

4. SQL

结构化查询语言。 关系型数据库的通用语言。

结束标识是;

字符串数据用引号;

大小写不敏感

4.1sql的分类

  • DDL:数据定义语言(结构)

    实现数据库对象(数据库,表,视图,索引等)的操作(创建,修改和销毁)

    create    /           alter         /      drop
    
  • DML:数据操纵语言(数据)

    增删改

    insert  /     delete     /   update 
    
  • DQL:数据查询语言

    select
    
  • TCL:事物控制语言

     comit(提交)   /   rollback(回滚)
    
  • DCL:数据控制语言(授权)

    grant(授权)   /   revoke(取消授权)
    
4.2 DDL

数据的定义语言,用于操作数据库对象的结构

  • 数据库的创建和销毁

    #创建数据库
    create database [if not exists] dbname;
    
    #销毁数据库
    drop database [if exists] dbname;
    
  • 表的创建,修改和销毁

    1 创建表
    create table Student(
    	sid int,
    	sname varchar(20),
    	age int,
    	gender varchar(10)
    );
    #查看表的状态
    desc Student;
    
    2 修改结构(添加字段,销毁字段,修改字段(字段名称,类型,长度,位置,约束等))
    alter table tname  add/drop/change/modify  colname coltype...
    * 添加字段
      追加字段
     	alter table Student add email varchar(20);
      添加到首列
      	alter table Student add phone char(11) first;
      添加到指定位置
      	alter table Student add card char(18) after sid;
    * 销毁字段
    	alter table Student drop card;
    * 修改字段
    	alter table Student modify colname 类型 约束;
    	alter table Student change 旧字段名称 新字段名称 类型 约束;
    	
    	# 修改字段名称
    	alter table Student change email semail varchar(20);
    	# 修改字段类型和长度
    	alter table Student modify sname varchar(50)
    	# 修改位置
    	alter table Student modify semail varchar(20) after sname;
    3 销毁表
    drop table Student;
    
    4 修改表的名字
    rename table Student to stu;
    
    5 清空表(只清空数据,不改变结构)
    truncate table stu;
    
    delate truncatedrop 的区别?
    truncate   结构不变  数据清空
    drop   整个表都删除rename table Student to stu;
    
    
    • 数据类型(仅限mysql)

      数值类型:
          整数:
             int  /  bigint
          浮点数:
             float(10,2) :长度是10,小数点后的位数是2
             double(16,4)  :长度为16,小数后的位数是4
             decimal(m,n):  涉及到数据时必须使用decimal
             
      字符串类型:必须指明长度
      	   char(m): 固定长度
      	   varchar(m): 可变长度
      	   
      日期类型:
      	   date:日期
      	   time:时间
      	   datetime:日期和时间  yyyy-MM-dd hh:mm:ss  0000-9999timestamp: 时间戳    yyyy-MM-dd hh:mm:ss  1970-2038年
      	   
      其他类型:
      	   text:  文本类型
      	   blob:  二进制数据类型  (图片)
      	   enum()   /  set()  /   json()
      
4.3 数据完整性

数据的准确性和可靠性

  • 实体完整性

    实体指的就是记录,实例完整性就是保证记录是准确的,不重复的

    • 主键约束:唯一而且不能为空(primary key)

      # 场景1:创建表的同时添加约束
      create table Student(
      	sid int primary key,
          sname varchar(20)
      );
      
      create table Student(
      	sid int,
          sname varchar(20),
          primary key(sid)
      );
      # 场景2:表已经存在(主键字段绝对不能存在重复的数据)
      alter table stu add constraint PK_ID primary key(sid);
      
      # 注意:
        1.每张表必须有主键,但是有且只能有一个,允许有联合主键
        2.主键字段一般数据类型和长度要尽可能的小
        3.主键字段不要使用业务字段
      
      
    • 唯一约束:字段的值必须唯一

      create table Student(
      	card char(18) unique
      );
      alter table stu add constraint UQ_CARD unique (card);
      
    • 主键自增:

      auto_increment 默认主键自增

  • 域的完整性

    域:字段

    类型约束

    not null: 非空约束

    default:默认值

  • 引用完整性

    其中一张表的字段取值需要依赖于另一张表

    外键约束

    alter table emp add constraint FK_DEPTNO foreign key(deptno) references dept(deptno);
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bromide-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值