MySQL数据库

一.数据库概述

1.为什么学习数据库?

为了将数据持久的保存起来 java中的对象都是存储在内存中,程序结束数据都销毁

之间学习IO,将数据存储在文件中,但是内容整体是一个字符串,使用起来不方便

所以我们需要学习一种专业存储数据的软件---数据库.

数据库不仅可以持久的保存数据,还可以方便的提取数据.

2.数据库:

为了方便数据的存储和管理(增删改查),将数据按照特定的规则存储起来,就是一个存储数据的仓库

数据库(DataBase DB)可以称为数据库

数据库管理系统 (DataBase Management system) 数据库管理软件---全称

以后得软件开发,数据库是不可或缺的.

3.常见的数据库产品:

国外:

MySQL: 快捷、可靠 开源、免费

oracle:功能强大,收费,

SOL Server(微软): 只能安装在windows操作系统

DB2 (IBM) :适合处理海量数揭,收费

政府一些项目慢慢的向国产化软件靠拢,

麒麟操作系统

国内:

南大通用GBASE: 天津南大通用数据技术股份有限公司

达梦: 武汉达梦数据库股份有限公司

人大金仓:北京人大金仓信息技术股份有限公司

神通:神舟通用公司

二.MySQL数据库

MySQL最早是由瑞典的MySQL AB公司开发的,现在被oracle公司收购了

MySQL是一款关系型数据库

在关系型数据库中,基本单位是表,一个表存储一类信息,表与表之间存在关联关系

MySQL是开源的,也就是免费的

具有快速,可靠和易使用的特点

使用标准的SQL语言,并且支持多种操作系统(在Windows和Linux中都可以安装)

支持多种语言(支持Java,c,c++,Python,PHP,c#连接)

现在MySQL有商业版(收费)与社区版(免费)

命令行方式连接mysql

登录:mysql [-hlocalhost -P3306](本机可省略) -uroot -p(可以直 接写密码,不能有空格)

-h:主机名

-P:端口号

-u:用户名

-p:密码

退出:exit

MySQL的常用命令

查看当前所有的数据库:show databases;

选择指定的库:use 库名

查看当前的所有表:show tables;

查看其他库的所有表:show tables from 库名;

查看mysql版本 select version();

三.SQL

Structured Query Language (结构化查询语言)

数据库操作语言

也属于一种编程语言,专门用作数据库操作

sql语言中又分为3个不同分支

1.ddl 数据(结构)定义 创建表

2.dml数据操作 增删改

3.dql 查询语句

-- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8
-- 删除数据库
 DROP DATABASE IF EXISTS schooldb

-- MySQL中数据库一旦创建,名字不能修改

-- 修改数据库字符集
ALTER DATABASE schooldb CHARSET utf8

-- 创建表
-- 确定表名 学生信息表
-- 确定表中字段(列) 学号,姓名,性别,生日,电话,身高,注册时间
-- 确定字段(列)的数据类型 以及长度
-- 确定列的约束
-- 创建表语法

-- char(n) 定长的字符串 固定存储n个字符,长度如果不够n,默认补空格
-- VARCHAR(n) 可变长度的字符串 n是最大长度 如果只存储2个字符,实际占有2个空间位置
CREATE TABLE student(
	number INT,
	NAME VARCHAR(6),
	gender CHAR(1),
	birthday DATE,
	phone VARCHAR(11),
	height DECIMAL(3,2),
	reg_time DATETIME
)

-- 删除表结构
DROP TABLE student

-- 创建表 并添加约束规则
-- PRIMARY KEY 设置主键约束,添加主键约束后,值就不能重复,一个表中只能有一个列是主键
	-- 主键列可以唯一的表示某一行数据
	-- mysql中主键可以设置为自动增长 AUTO_INCREMENT
-- NOT NULL 不能为空约束
-- UNIQUE 唯一性约束
-- 检查约束 设置条件

CREATE TABLE student(
	number INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',
	NAME VARCHAR(6) NOT NULL COMMENT '姓名',
	gender CHAR(1) COMMENT '性别',
	birthday DATE COMMENT '生日',
	phone VARCHAR(11) NOT NULL UNIQUE COMMENT '电话',
	height DECIMAL(3,2) CHECK(height<3) COMMENT '身高',
	reg_time DATETIME
)

你可能感兴趣的:(数据库)