A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

数据库和数据库管理系统数据库介绍

1数据库(Database:DB):按照一定的数据结构存储和管理数据的仓库

2.数据模型结构:层次模型、网状模型、关系模型

3.关系模型:将复杂的关系以简单的二元形式表示。以行和列的形式进行表示(表格)。行叫记录,列叫字段

4.数据分类:

结构化数据:可以通过统一的结构来进行描述的管理。

非结构化数据:通过同一的方式进行描述

半结构化数据:位于上述两者之间

5.数据库的分类:

关系型数据库:操作结构化数据

非关系型数据库:非结构化

6.数据库管理系统(DBMS:Database Management System):一套管理和操作数据库的软件

(a)关系型数据库管理系统(R:relationship RDSBMS)

Oracle:分布式关系型管理系统(大企业) 收费(按照cpu核数收费)

mysql:开源免费数据库,小,遵循GPL(开源软件许可证),支持千万级别

sqlserver:中型的关系型数库管理系统。Microsoft

DB2:IBM 针对中小型数据库管理系统

(b)非关系型数据库管理系统(Nosql:not only sql)

redis,mangodb,hbase,neo4j

mysql

Mysql是一个关系型的数据库管理系统

Mysql是由Mysql ab公司设计的产品,后期被oracle收购

mysql内部采用分库分表的形式管理数据库:一个数据库管理系统中可以管理多个数据库,一个数据库中可以管理多张表

Mysql1.下载

(略)

2.安装

(略)
数据库管理系统软件的目录(DBMS安装目录):C:\Program Files

数据库连接目录:(其他编程语言连接数据库的jar包信息) connectorJ

客户端工具的目录: workbench

数据存放的目录 programData

注:

C:\ProgramData\MySQL\MySQL Server 5.7\

    Data:存放数据信息,一个目录对应一个数据库。   

        frm文件存放标的结构信息

        MYD文件存放数据信息

    my.ini:mysql的配置文件


通过cmd 建立mysql连接:


(1)切换到mysql的dbms安装目录下的bin:C:\Program Files\MySQL\MySQL Server 5.7\bin下的mysql.exe


打开 cmd 执行 命令:cd C:\Program Files\MySQL\MySQL Server 5.7\bin


(2)登陆:命令:mysql -uroot -p,输入root用户密码


(3)开始使用


database 数据库的使用:


查看数据库:

mysql> show databases;


table 表的使用:


进入mysql数据库(切换数据库):

mysql> use mysql


查看数据库中的表:

mysql> show tables;


查看表里所有数据:

mysql> select * from user;



3.客户端工具


可以使用navicat

安装(略)


sql(结构化查询语言 structured query language)


数据库的标准化语言,实现对数据库的访问和操作

对大小不敏感

使用分号作为结束标志

sql分类:


DDL(Data definatition language):数据定义语言。对数据库对象(数据库,表,试图,索引等)结构操作:创建/修改/销毁(Create/alter/drop)

DML(Data Manitaption Language):数据操纵语言。增删改查(insert/delete/update/select)

DCL(Date Control Language):授权/取消授权(Grant/revoke)

TCL(Transaction Control Language):提交/回滚(commit/rollback)

DDL(数据定义语言)


对数据结构进行操作


数据库的创建和销毁


--创建一个数据库 bd1804

create database bd1804;

create database if NOT exists bd1804 ;


--销毁数据库(少用)

drop database  if exists bd1804 ;



数据库表的创建


use database bd1804;


--创建表

--创建表结构时需要描述字段信息

create table student(

sid int,

sname varchar(20),

age int

);



修改表结构


    --添加字段(追加)

alter table student add sex varchar(20);

  --添加到首位

alter table student add cid int first;

  --添加到指定位置

alter table student add birthday date after cid;



查看表结构


--查看表结构

desc student;


修改字段


--修改字段(名称,类型,长度,位置)(change,modify)

    --修改名称

    alter table student change age sage int;


    alter table student change sname sname varchar(50);

    alter table student modify sname varchar(20);


    alter table student change sname sname varchar(20) after cid;


    alter table student change sname sname varchar(20) first;


表名称修改


-- 表名称修改

rename table student to stu;


清空表(与delete的区别)


-- 清空表

truncate table stu;


删除字段


--删除字段

alter table student drop cid;


销毁表


drop table student;


mysql里的数据类型

整型数据:

浮点数

Float(m,n):m表示总长度,n表示小数位数

Double(m,n)

Decimal(m,n):16字节

字符串

Char(n):定长字符串

Varchar(n):可变长字符(n可理解为最长的长度,n要小于65535)

Text:长文本

日期

Date:年月日

Time:时分秒

Datetime:年月日时分秒 年的范围:1000 - 9999年

Timestamp:时间戳 年的范围:1970 - 2037年

其他类型

Blob:二进制数据

Eunm(’male’,’femal’):枚举

set(’1’,’2’,’3’):集合

Json:json类型

注意
- 数据类型在各种数据库中有区别

mysql完整性约束完整性指的是数据的准确性完整性分类
  • 实体完整性

    • 实体:记录(记录之间不能重复)
    • 主键约束:唯一并且不能为空
    • 唯一约束
    • 主键自增
  • 域完整性

    • 类型约束
    • 非空约束:not null
    • 默认值: default
  • 引用完整性(参照)
    • 一张表中字段的取值需要参照另一张表
      外键:foreign key
  • 自定义完整性
    • check约束oracle mysql不支持
      #插入insert into student values(1,'zs',20);
      select * from student;
      #主键约束的添加(唯一且不为空,区别每一条记录,一张表只能由一个主键字段,但是可以有联合主键)    ##创建表的同时添加主键约束    ###主键的选择:无意义字段(主键一般不修改,经常变化的字段和有意义的字段不适合作为主键)    ###1.字段声明后添加primary key    create table student(    sid int primary key,    sname varchar(20),    age int    );    ###2.声明完字段之后添加主键    create table student(    sid int,    sname varchar(20),    age int,  ####              联合主键    primary key(sid,sname)    );    ###3.创建完表添加主键约束    ####                     约束     约束的名称    alter table student add CONSTRAINT pk_sid  PRIMARY KEY (sid);
          ##删除主键约束    alter table student drop PRIMARY KEY;


      #唯一约束(unique 唯一)    create table student(    sid int,    sname varchar(20),    age int,    card VARCHAR(18)    );
          alter table student add CONSTRAINT  uq_card UNIQUE(card);
      #主键自增:1 增加1alter table student modify sid int PRIMARY KEY auto_increment;

      # ref:参照alter table student add CONSTRAINT FK_CID foreign key(cid)  REFERENCES classroom(cid);

      # check约束alter table student add CONSTRAINT ck_age check(age BETWEEN 1 and 120);


4 个回复

倒序浏览
奈斯
回复 使用道具 举报
牛牛牛!
回复 使用道具 举报
回复 使用道具 举报

优秀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马