Notes 数据库概述

数据库概述

数据库的特点

  1. 1. 持久化存储数据的。其实数据库就是一个文件系统 
    2. 方便存储和管理数据
       存储数据有一定的格式
       行和列的格式
    3. 使用了统一的方式操作数据库 
       使用图形界面的形式查看数据
       使用sql语言进行查看或管理数据

常见的数据库

关系型数据库描述
MySQL开源免费的数据库,中小型的数据库,已经被 Oracle 收购了。MySQL6.x 版本也开始收费。
Oracle收费的大型数据库,Oracle 公司的产品
DB2IBM 公司的数据库产品,收费的。常应用在银行系统中。
SQL ServerMicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。
SQLite嵌入式的小型数据库,应用在手机端,如:Android。
OceanBase阿里的大型数据库,性能已经超过Oracle全球第一
非关系型数据库(NoSQL)描述
MongoDBMongoDB最流行的文档型数据库
Readis基于内存的键值型数据库通过 Key-Value 键值的方式来存储数据

SQL概述

什么是SQL

结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。

SQL语句的分类

分类说明
DDL(Data Definition Language)数据定义语言定义数据库对象:数据库,表,列等.关键字:create, drop,alter 等
DML(Data Manipulation Language)数据操作语言(掌握)对数据库中表的数据进行增删改.关键字:insert, delete, update 等
DQL(Data Query Language)数据查询语言 (掌握)用来查询数据库中表的记录(数据).关键字:select, where 等
DCL(Data Control Language)数据控制语言(了解)用来定义数据库的访问权限和安全级别,及创建用户.关键字:GRANT,REVOKE 等
TCL(Transaction Control Language) 事务控制语言用于控制数据库的事务操作,关键字; commit,savepoint,rollback等

操作数据库-DDL

==创建数据库==

create database 数据库名称;

==创建数据库,并指定字符集==

create database 数据库名称 character set 字符集名;

==查询所有数据库的名称==

show databases;

==查询某个数据库的字符集:查询某个数据库的创建语句及字符集==

show create database 数据库名称;

==修改数据库的字符集==

alter database 数据库名称 character set 字符集名称;

==删除数据库==

drop database 数据库名称;

==查询当前正在使用的数据库名称==

select database();

==使用数据库==

use 数据库名称;

操作表-DDL

数据类型

数据类型说明
int整数类型,例如 : age
double小数类型,例如 : score double(5,2) 111.11
date日期,只包含年月日,yyyy-MM-dd
datetime日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
timestamp时间戳类型,包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
varchar可变字符串 name varchar(20)
char不可变字符 name char(20)
VARCHAR、CHAR
varchar :表示的长度可变的字符串。最大长度不能超过定义字段的时候长度。
char    :长度固定。

name varchar(20);   name 存贮数据的长度是20以内的。
                    存了:lisi 表示4个长度 ,zhangsan:8个长度  江一燕:3个长度 

name  char(20);     存了:lisi 当前的长度4,剩下的是空格 。

问题:char 的性能好。 varchar可以节省空间。
      通常时候,我们使用varchar。
	
但是我们常用的varchar()节省空间。

使用char的情况。当某个字段的长度固定的时候,,可以采用char。例如身份证号,手机号。

创建表

create table 表名( 列名(字段名) 数据类型, 列名(字段名) 数据类型, 列名(字段名) 数据类型 ... );

注意事项: 最后一列,不需要加逗号(,)

查询表

==查询某个数据库中所有的表名称==

show tables;

==查询表结构==

desc 表名;

修改表

添加一列

语法: alter table 表名 add 列名 数据类型 约束;

修改列类型

语法: alter table 表名 modify 列名 新类型;

修改列名和类型

语法: alter table 表名 change 旧列名 新列名 新类型;

删除指定列

语法: alter table 表名 drop 列名;

修改表字符集

语法: alter table 表名 charset 字符集;

修改表名

语法: rename table 旧表名 to 新表名;

删除表

两种形式

直接删除表

语法: ​ drop table 表名;

先判断如果存在就删就

drop table if exists tb_teacher;

约束

意义:保证数据的有效性和完整性。可以确保数据库满足业务规则。

约束类型

约束说明
primary key主键约束:非空且唯一
not null非空约束 : 某一列的值不能为空
unique唯一约束 : 某一列的值不能重复,但可以为空
auto_increment自增器,每一次+1
foreign key外键约束

comment 注释 这个不是约束类型

复合主键

例子 可以直接copy

CREATE TABLE `student` (
  `name` varchar(20) NOT NULL,
  `sex` char(1) NOT NULL,
  `birthday` date NOT NULL,
  PRIMARY KEY (`name`,`sex`,`birthday`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值