数据库
什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。---百度百科
通俗的来说:数据库就是存储数据的仓库,其本质就是按照一定格式存储数据的文件夹.
数据库优点
数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。
数据库管理系统(DBMS)
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于创建、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系 统访问数据库中表内的数据
数据库管理系统、数据库和表的关系
数据库管理系统可以管理多个数据库,每个数据库中可以有多张数据库表。
常见数据库管理系统
MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
SQLite : 嵌入式的小型数据库,应用在手机端。
MySQL数据库
SQL语言分类
- DDL 数据库定义语言 用来定义数据库、表、列等
关键字:create(创建),drop(删除),alert(修改)等
- DML 数据操作语言 对表中的数据进行增删改
关键字: insert(插入),delete(删除),update(更新)等
- DCL 数据控制语言 访问权限和安全级别
关键字:grant(授予), revoke(撤回)等
- DQL 数据查询语言
关键字:select(查找)
- TCL 事务控制语言 数据库的事务操作
关键字: commit(提交),savepoint(保存点)rollback(回滚)
mysql语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用英文分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
- 单行注释:#注释文字
- 单行注释:-- 注释文字 ,注意, 这里需要加空格
- 多行注释:/ 注释文字 /
数据库基础命令
-
创建数据库
create database 数据库名;
-
判断是否存在并创建数据库
create database if not exists 数据库名;
-
查询所有数据库
show databases ;
-
切换数据库
use 数据库名;
-
查看某个数据库中所有表
show tables;
-
查看表结构
desc 表名称;
-
添加字段
alter table 表名 add 字段名 类型;
-
删除列
alter table 表名 drop 列名;
-
修改表名称
rename table 表名 to 新表名;
-
删除表
drop table 表名;
-
删除数据
delete form 表名;//逐条删除表中的所有数据
delete from 表名 where 字段名=值;
-
查看其他库中所有的表
show tables from 库名;
-
查看当前所在库
select database();
-
数据库的备份
mysqldump -u -p 数据库 > 文件路径
-
数据库的还原
source 导入文件路径
delete和truncate的区别
1、删除方式不同:
- delete是一条一条删除数据
- truncate是删除整个表然后在创建一个结构相同的新表
2、返回值和安全性能:
- delete删除的数据还能被还原,有安全性
- truncate删除的数据找不回来,不安全
3、主键自增上
- delete删除表中的数据,不重置主键的值,在原来的基础上加1
- truncate摧毁的是整张表,在重新创建一个新表,主键重置成1
蠕虫复制
在已有的基础上,将原来的数据进行复制,插入到对应的表中
insert into 表名1 select*from 表名2;
-- 复制表结构
create table 表2 like 表1;
-- 复制全部数据
insert into 表2 select * from 表1;
-- 复制表1的部分数据
insert into 表2 (字段名1,字段名2...) select 字段名1,字段名2... from 表1;