数据库概念

数据库(DataBase,简称DB)

概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据"仓库"

作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…

数据库总览 :
关系型数据库 (SQL)
MySQL , Oracle , SQL Server , SQLite , DB2 , …
关系型数据库通过外键关联来建立表与表之间的关系
非关系型数据库(NOSQL)
Redis , MongoDB , …
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

MySQL简介

关于MySQL的安装,本人之前的博客里有详细的介绍,有兴趣的可以自行去查看。

链接数据库

首先在dos命令窗口中打开MySQL启动服务(net shart mysql),然后登录:mysql -uroot -p123456
这里的root是用户名,123456是密码。

几个基本的数据库操作命令

update user set password=password(‘123456’)where user=‘root’; 修改密码
flush privileges; 刷新数据库
show databases; 显示所有数据库
use dbname; 打开某个数据库
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
create database name; 创建数据库
use databasename; 选择数据库
exit; 退出Mysql
? 命令关键词 : 寻求帮助
#表示注释

结构化查询语句SQL

•DDL(数据定义语言):定义和管理数据对象如数据库,数据表等;
•DML(数据操作语言):用于操作数据库对象中所包含的数据;
•DQL(数据查询语言):用于查询数据库数据;
•DCL(数据控制语言):用来管理数据库的语言,包括管理权限和数据修改;

命令行操作数据库

•创建数据库:create database [if not exists] 数据库名;
•删除数据库:drop database [if exists] 数据库名;
•查看数据库:show databases;
•使用数据库:use 数据库名字;

创建数据表

语法:
create table [if not exists] 表名(
‘字段名1’ 列类型 [属性][索引][注释],
‘字段名2’ 列类型 [属性][索引][注释],
#…
‘字段名n’ 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];

数据值和列类型

列类型 : 规定数据库中该列存放的数据类型

数据类型:

CSDN下载Java数据库 java数据库安装_表名

•字符串类型:

CSDN下载Java数据库 java数据库安装_数据_02

•日期和时间型数值类型:

CSDN下载Java数据库 java数据库安装_数据_03

数据字段属性

UnSigned : 无符号的,声明该数据列不允许负数 .

ZEROFILL :0填充的不足位数的用0来填充 , 如int(3),5则为005

Auto_InCrement :
自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认);
通常用于设置主键 , 且为整数类型
可定义起始值和步长
1.当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
2.SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

NULL 和 NOT NULL : 默认为NULL , 即没有插入该列的数值如果设置为NOT NULL , 则该列必须有值

案例:
说明:环境是在sqlyog中;

# 目标 : 创建一个school数据库
# 创建学生表(列,字段)
# 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
# 创建表之前 , 一定要先选择数据库

CREATE TABLE IF NOT EXISTS `student` (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
  `birthday` datetime DEFAULT NULL COMMENT '生日',
  `address` varchar(100) DEFAULT NULL COMMENT '地址',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

# 查看数据库的定义
SHOW CREATE DATABASE school;
# 查看数据表的定义
SHOW CREATE TABLE student;
# 显示表结构
DESC student;
# 设置严格检查模式(不能容错了)
SET sql_mode='STRICT_TRANS_TABLES';

数据表的类型

•MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等…

•常见的 MyISAM 与 InnoDB 类型

CSDN下载Java数据库 java数据库安装_表名_04


适用场合:

适用MyISAM : 节约空间及相应速度

适用InnoDB : 安全性 , 事务处理及多用户操作数据表

设置数据表字符集

可为数据库,数据表,数据列设定不同的字符集

设定方法 :

创建时通过命令来设置 , 如 :
CREATE TABLE 表名()CHARSET = utf8;
如无设定 , 则根据MySQL数据库配置文件my.ini中的参数设定

修改数据库

修改表( ALTER TABLE )

修改表名 :
ALTER TABLE 旧表名 RENAME AS 新表名
添加字段 :
ALTER TABLE 表名 ADD字段名 列属性[属性]
修改字段 :
ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]
删除字段 :
ALTER TABLE 表名 DROP 字段名
删除数据表
语法 : DROP TABLE [IF EXISTS] 表名
IF EXISTS为可选 , 判断是否存在该数据表