数据库单表操作

# 数据库

## 1.1 概念

数据库:db、database、存储数据的仓库,以文件形式存储数据。

DBMS: Database Manager System(数据库管理系统)

常见的数据库:

1、**MYSQL**:免费的中小型数据库,Oracle公司收购

2、**Oracle**:收费的大型数据库,Oracle公司

3、SQL Server:微软的大型收费的数据库

4、SQLite:移动端的嵌入式的小型数据库


数据库的分类:

1、关系型:

* MYSQL
*Oracle

优点:通用的SQL语句,易于理解
缺点:由于表结构复杂,大量数据的读写性能较差
2、非关系型:

* MongoDb
* redis

优点:读写性能较好,易于扩展
缺点:学习成本和使用成本较高


## 1.2 结构

类 ---> 表

属性 --->字段、列
对象 --->记录

## 1.3 语法

1、一条语句可以分为单行或多行书写
2、语句用分号结尾
3、不区分大小写,但是关键字建议用大写
4、注释:

单行注释: --注释内容 或者 #注释内容(MYSQL特有)
多行注释: /*注释内容*/


## 1.4 SQL语言

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

分类:

1、DDL:数据定义语言
对库,表进行操作
create、drop、alter

2、DML:数据操作语言

对记录进行增、删、改
insert into、update、delete、set、from

3、DQL:数据查询语言

对记录进行查询
select、where、 in、 on、limit、like、having、order by、
group by、desc、asc


4、DCL:数据库访问语言

对数据库设置安全级别和访问权限
revoke

CRUD: create、 retrieve、 update、delete、


# SQL

## 一、库的操作

### 1.1 数据库的创建

直接创建:

create database 库名;
创建同时设置库的编码:

create database 库名 character set 编码;

先判断数据库是否已经存在,不存在才创建

create database if not exists 库名;

### 1.2 数据库的查看

1、查看管理系统中有哪些数据库

show databases;

2、查看数据库创建语句

show create database 库名;


### 1.3 数据库的删除

直接删除:drop database 库名

先判断是否存在 存在就删除:

drop database if exists 库名;

### 1.4 数据库的修改

修改数据库的编码格式:

alter database 库名 character set 编码


## 1.5 其他操作

明确要使用的数据库:

use 库名;

## 二、 表的操作

### 2.1 创建表

create table 表明(字段1 类型 [约束],字段2 类型 [约束] 。。。。。);

类型:

1、int
2、double
3、varchar
4、date: yyyy-MM-dd
5、datetime: yyyy-MM-dd HH:mm:ss
6、timestamp:时间戳yyyy-MM-dd HH:mm:ss
如果timestamp没有设置值,那么这个值就是当前添加记录的时间


### 2.2 删除表

直接删除:
drop table 表名;

先判断表是否存在,存在就删除

drop table if exists 表名;


### 2.3 查看表

查看当前库中的所有表

show tables;

查看指定表的表结构

desc 表名;


### 2.4 修改表结构

修改表名:

alter table 表名 rename to 新表名;

添加一列字段:

alter table 表名 add 列名 类型 [约束];


修改列名:

alter table 表名 change 旧列名 新列名 类型[约束];

修改列:

alter table 表名 modify 列名 类型[约束]


删除列:

alter table 表名 drop 列名;


### 2.5 其他操作

复制表结构:

create table 表名 like 想复制的表名;


## 三、记录的操作

### 3.1 添加记录

向记录中的所有字段添加值:

insert into 表名 values(值1,值2,值3.。。。)

向记录中的指定字段添加值:

insert into 表名 (字段1,字段。。。)values(值1,值。。。。);


### 3.2 修改记录

修改所有记录的指定字段值:

update 表名 set 字段名1 = 字段值1,字段名2 = 值2,。。。。;

修改指定记录的指定字段值:

update 表名 set 字段名1 = 字段值1,字段名2 = 值2,。。。 where 条件;

### 3.3 删除记录

删除指定记录:

delete from 表名 where 条件;

删除所有记录:

delete from 表名;(逐条删除表里的所有记录,性能较差)

truncate table 表名;(一次性删除整张表,性能较好,推荐使用,
当再次使用该表时,该表会会根据原始状态重新构建一张新表)

### 3.4 查询记录

查询所有记录的所有字段信息:

select * from 表名;

查询所有记录的指定字段信息:

select 字段1,字段2.。。 from 表名;

查询指定记录的所有字段信息:

select * from where 条件;

查询指定记录的指定字段信息:

select 指定字段 from where 条件;

猜你喜欢

转载自www.cnblogs.com/LTJAVA/p/11870746.html