数据库 第一章 MySql基础(1)

发布于:2025-03-26 ⋅ 阅读:(28) ⋅ 点赞:(0)

目录

数据库概述

定义

常见的数据库产品:

Mysql数据库

MySQL的常用命令

安装可视化客户端工具

sql

DDL

 创建,删除数据库

数据库表的基本概念

设 计 表

设计表(数据类型)

字符

日期

整数

浮点

长文本字符

主键:

约束:

创建表语法:

删除表,修改表名

实例


数据库概述


定义

数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘上,就是一个存储和管理数据的仓库。


常见的数据库产品:

国外

  • MySQL 快捷、可靠 开源、免费
  • Oracle:功能强大,收费.
  • SQL Server(微软): 只能安装在Windows操作系统
  • DB2 (IBM):适合处理海量数据,收费.

国内

  • 南大通用GBASE: 天津南大通用数据技术股份有限公司
  • 达梦:武汉达梦数据库股份有限公司
  • 人大金仓:北京人大金仓信息技术股份有限公司
  • 神通:神舟通用公司

Mysql数据库

  • MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,现 在已经被 Oracle收购。MySQL 流行的关系型数据库管理系统。
  • MySql是一种关系数据库管理系统。
  • MySql数据库服务器具有快速、可靠和易于使用的特点。
  • MySql使用标准的sql语言,并且支持多种操作系统,支持多种语言连接。

 mysql商业版与社区版

  •  MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用。
  • MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维 护,可以免费使用。

MySQL的常用命令

  • 查看当前所有的数据库:show databases;
  • 选择指定的库:use 库名
  • 查看当前的所有表:show tables;
  • 查看其他库的所有表:show tables from 库名;
  • 查看mysql版本 select version();

安装可视化客户端工具

      SQLyog / Navicat


sql

结构化查询语言(Structured Query Language)简称SQL,是一种数据 库程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.

SQL语言特点:

  • 不是某个特定数据库专有的语是言,几乎所有关系型数据库都支持SQL
  • 简单易学,灵活使用可以进行复杂和高级的数据库操作

DDL

● 数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据 库表结构的语言。 ● 常用的语句:create ,alter,drop,rename


 创建,删除数据库


创建数据库并设置编码格式

CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]

删除数据库

DROP DATABASE 数据库名 / [IF EXISTS数据库名];

修改字符集

ALTER DATABASE 数据库名 CHARSET gbk;

-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
DROP DATABASE schooldb
-- 修改数据库字符编码
ALTER DATABASE schooldb CHARSET utf8
-- 注意mysql

数据库表的基本概念

1、数据表

表(table)是构成关系型数据库的基本元素。表是由行和列组成的。表中的列被看作 是这些记录的字段,表中的行是一条记录,也就是一条数据。

2、字段(column)

字段是表里的一列,用于保存每条记录的特定信息。 如学生表的字段包括:学号, 姓名, 性别, 生日 , 电话 , 身高, 注册时间等

 3、记录(row)

记录是表里的一行数据。


设 计 表

 对于具体的某一个表,在创建之前,需要确定表的下列特征:

  • 表名
  • 表中的字段(列)
  • 字段的数据类型和长度
  •  约束

设计表(数据类型)

字符
  • char(n)   n=5长度为n的定长字符串一般用于存储固定长度的字符串,固定存储5个字符,即使只存储了一个字符, 也是占5个字符空间 
  • varchar(n)   最大长度为n的可变长字符串, 用于存储变长的字符串,当 n=5, 最大上限能存储5个字符,实际存 储几个字符,就占实际的空间

日期
  • date       日期, 年月日 生日 datetime 时间 年月日 时分秒

整数


浮点
  • decimal      数据类型(M,D) M:精度,数据的总长度; D:标度,小数点后的长度

长文本字符

注:长文本字符(存储新闻,小说)

  • TINYTEXT:   最大长度255个字符(2^8-1) TEXT:最大长度65535(2^16-1)
  • MEDIUMTEXT:最大长度16777215(2^24-1)
  • LONGTEXT:   最大长度4294967295(2^32-1)

主键:
  • 在一张表中代表唯一的一条记录,不能为空,不能重复


约束:
  • PRIMARY KEY 设置主键约束
  • NOT NULL 不能为空约束,值不能为空,可以为多个列设置
  • UNIQUE 唯一性约束,不能重复,可以为多个列设置
  • 检查约束 ,值需要满足设定条件,可以为多个列设置
  • 外键约束(多表)

主键自动增长,设置为自动增长时,只能为整数类型

  • AUTO_INCREMENT

默认值

  • DEFAULT default_value

字段注释:

  • comment '注释'

创建表语法:

CREATE TABLE 表名(列名 数据类型 [约束] [默认值] [ 注释],......)

CREATE TABLE student( 
id INT [PRIMARY KEY NOT NULL AUTO_INCREMENT], 
number INT NOT NULL, 
name VARCHAR(10) NOT NULL, 
age INT CHECK(age>18),
 birthday DATE,
 weight decimal(3,2),
 opertime datetime 
)

删除表,修改表名

删除表

  • DROP TABLE 表名

修改表名

  • RENAME TABLE 旧表名 TO 新表名

实例

/*
创建表
表是数据中基本的组成单位
由列和行构成
创建表:
确定表名(存储哪类信息)学生信息表
确定列名(具体的信息) 学号,姓名,性别,电话,生日,
确定列的数据类型和长度
确定约束(唯一约束,不能为空...)
*/
-- 创建表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'主键',
num INT UNIQUE NOT NULL COMMENT '学号',
NAME VARCHAR(8) NOT NULL COMMENT'姓名',
gender CHAR(1) NOT NULL DEFAULT '男',
phone CHAR(11) UNIQUE NOT NULL,
birthday DATE,
height DECIMAL(3,2) CHECK(height<2.55),
regtime DATETIME NOT NULL
)
-- 删除表
DROP TABLE studnet
-- 重命名表
RENAME TABLE stu TO student