1.什么是数据库?
数据库:DataBase(DB),是存储和管理数据的仓库,本质就是一个存放数据的文件系统
数据库会按照特定的格式对数据进行存储,用户可以对数据库中的数据进行增加,修改,删除及查询操作
数据库管理系统:DataBase Management System (DBMS),操纵和管理数据库的大型软件。
数据库层次结构
数据库管理系统 (DataBase Management System,DBMS) 指一种操作和管理数据库的大型软件。
数据库管理系统的层次:软件-->数据库-->数据表-->数据记录
DBMS产品:
Oracle : 收费的大型数据库,Oracle公司的产品。
MySQL:开源免费的中小型数据库。Sun公司收购了MySQL,Oracle收购Sun公司。
SQL Server:MicroSoft公司收费的中型的数据库。C#、.net等语言常使用。
PostgreSQL:开源免费中小型的数据库。
DB2:IBM公司的大型收费数据库产品。
SQLite:嵌入式的微型数据库。如:作为Android内置数据库
MariaDB:开源免费的中小型的数据库。
2.数据表基本操作
连接数据库
-- 语法
mysql [-h 服务器地址 -P 端口号] -u用户名 -p密码
--实例
mysql -uroot -p
创建数据库
-- 语法
create database [IF NOT EXISTS] 数据库名;
-- 实例
create database if not exists db1;
查询数据库
-- 语法
show databases;
删除数据库
- 语法
drop database [IF EXISTS] 数据库名;
-- 实例
drop database if exists db1;
切换数据库
-- 语法
select database();
-- 实例
create database if not exists db1;
use db1;
select database();
3.数据库工具的使用
数据类型
大分类 | 类型 | 描述 |
---|---|---|
数值类型 | tinyint | 小整数 |
int | 大整数 | |
bigint | 大整数 | |
float | 浮点数类型 | |
double | 浮点数类型 | |
字符类型 | varchar(30) | 可变长度字符串,如果插入的长度小于定义长度时,插入多长就存多长 |
char(11) | 固定长度字符串,如果插入的长度小于定义长度,则可以用空格进行填充 | |
日期类型 | date | 日期,格式:yyyy-MM-dd |
datetime | 日期时间,格式:yyyy-MM-dd HH:mm:ss |
需求:在db1中创建一张名为student的数据表,数据类型要更符合设计原则
-- 实例
create table student(
id int comment '标识',
name varchar(30) comment '姓名',
gender char(1) comment '性别', -- 性别,长度固定,采用char更合适
age tinyint unsigned comment '年龄', -- 年龄,采用无符号的tinyint更合适
birthday date comment '生日'
) comment '学生表';
数据约束
约束用于对表中的数据进行进一步的限制,一般作用在表中的字段上,用于保证数据的正确性。
约束种类有:主键约束、唯一约束、非空约束、默认值、外键约束。
约束 | 描述 | 关键字 |
---|---|---|
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一;一张表只能有一个注解列 | primary key(auto increment自增) |
非空约束 | 限制该字段值不能为null | not null |
唯一约束 | 保证字段的所有数据都是唯一、不重复的 | unique |
默认约束 | 保存数据时,如果未指定该字段值,则采用默认值 | default |
外键约束 | 让两张表的数据建立连接,保证数据的一致性和完整性 | foreign key |
创建数据表
需求:在db1中创建一张名为student1的数据表,表中字段的要求如下
id:标识,数字类型
name:姓名,字符串类型,长度限制最多30个字符
gender:性别,字符串类型,长度限制为1个字符
age:年龄,数值类型
birthday:生日,日期类型,格式YYYY-mm-dd
-- 语法 create table 表名( 字段名1 字段类型1(字段长度) [ comment 字段1注释 ], -- 不是;号 字段名2 字段类型2(字段长度) [ comment 字段2注释 ], .... 字段名n 字段类型n(字段长度) [ comment 字段n注释 ]-- 最后一列后面是没有,的 ) [ comment 表注释 ]; -- 实例 create table student1( id int comment '标识', name varchar(30) comment '姓名', gender varchar(1) comment '性别', age int comment '年龄', birthday date comment '生日' ) comment '学生表';
查询数据表
查询当前数据库所有表:show tables
查询表结构:desc 表名
查询建表语句:show create table 表名