mysql第一章——(数据库介绍、mysql、sql、DDL-数据定义语言)

数据库和数据库管理系统

数据库介绍

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内部采用分库分表的形式管理数据库:一个数据库管理系统中可以管理多个数据库,一个数据库中可以管理多张表

Mysql

1.下载

(略)

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分类:

  1. DDL(Data definatition language):数据定义语言。对数据库对象(数据库,表,试图,索引等)结构操作:创建/修改/销毁(Create/alter/drop)
  2. DML(Data Manitaption Language):数据操纵语言。增删改查(insert/delete/update/select)
  3. DCL(Date Control Language):授权/取消授权(Grant/revoke)
  4. 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里的数据类型

整型数据:

image

浮点数

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 增加1
alter 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);

猜你喜欢

转载自blog.csdn.net/qq_24135817/article/details/80594522