MYSQL数据库

目录

数据库概念和sql语句

数据库的分类:

关系型mysql

·mysql数据库的存储引擎

​编辑

面试题:

SQL语言分类

​编辑

DDL(CREATE、DROP、ALTER)

1、创建数据库

2、创建表

 3、修改表

 4、改变表的列名

5、添加新的列

6、修改表类型

DML(INSERT、DELETE、UPDATE、SELECT)

1、表中插入内容

2、删除表的行

​编辑

3、修改表中内容

4、查看表

​编辑

5、内容去重

6、截取行

6种常用的约束

1、只是复制表结构,不复制数据

2、将liu2表中的数据插入到test表中,两个表数据结构要一致。

3、创建一张表test1,数据从liu1来,两个表数据结构要一致。

4、清空表中的数据

5、添加主键

6、添加外键

7、删除主键

8、删除索引关系

9、删外键

11、删索引

12、改变表的数据类型

13、为空默认

14、创建临时表


数据库概念和sql语句

数据-----数:数字信息         据:属性 对一系列对象的具体属性的描述的集合。
数据库:数据库就是用来组织(各个数据之间是有关联的,是按照规则组织起来的),存储和管理(对数据的增删改查)数据的仓库。
数据库是企业的重要的信息资产,在使用数据库时要注意(删,改)
数据库管理系统(DBMS):实现对数据库的有效组织,管理和存取的软件系统。

数据库的分类:

mysql: 系型数据库
redis:非关系型数据库 es。

····关系型数据库: mysql中小类型的数据并发请求,oracle(大数据还是用它),sql-server mariaDB postgresql。


关系型数据库当中,表里面的数据是关联的,表和表之间的数据也是关联起来。
····非关系型数据库:保存不是一张表格,key---->value 键值对来保存数据。
redis 缓存性的数据库
es:索引型数据库
文档型:MongDB
既然有关联,查询速度相对来说,关系型数据查询速度更慢一些。非关系型数据库可以支持高并发读写。对海量数据依旧保持着高效率的存储访问。

关系型mysql

数据库是一个系统,是一个人机系统,硬件、os、数据库、DBMS和数据库进行操作。

关系型数据库:存储数据的结构是一个二维表格

表: 行列
行: 记录,用来描述一个对象信息
列: 字段,用来描述对象的一个属性。

·mysql数据库的存储引擎

5.5之前:MYISAM,不支持事务和外键的存储引擎。适用读的多,写的少
5.6之后:Innodb,可以支持事务,外键,行级锁定的存储引擎。支持高并发性能的应用。
事务:数据库当中,一个或多个操作组成数据操作的序列。
这些操作要么全部成功,失败一个就全部不执行。确保数据一致性和完整性。
事务的特点: 原子性。数据库最小工作单元,要么全部执行成功,要么全部不执行,只要有一个操作失败,整个执行的序列都就被回滚。完成的操作也会被撤回。

一致性 事务执行前后,数据库的完整性不能被破坏。只有满足所有的约束条件情况下,事务能被提交。
隔离性 事务的执行是相互隔离。一个事物的执行不能受到其他执行事务的干扰。并发事务之间互相隔离。防止数据不一致的情况发生。
持久性 事务一旦提交,他所做的所有修改会被永久的保存在数据库中。即使系统崩坏,提交的数据也不会丢失。

数据库专业名词

数据库 databases
table                 行:row 列:column
索引 index
试图 view
存储过程 procedure
触发器 trigger
用户 user
权限 privilege

msql的语句的规范
在数据库系统中,sl不区分大小写,但是建议大写。语句不区分,但是表名是时严格区分大小写。
关键词不能跨行或者简写
mysql可以单行书写也可以多行书写,默认以 ; 结尾

数据库的命名规则
必须已字母开头,后面可以包含数据,特殊字符: # _ $
不要使用MySQL的保留字 : table select
数据库名 表名 用户名严格区分大小写。

数据库的字符类型
        字符串用单引号

int 4个字节,存储整数
varchar 可变长度的字符类型,存储可变长磨的字符串。(无限制的可以随便写,也要根据类型的长度。)
char 只能存储固定长度的字符串
float(m,d) 单精度浮点 存储浮点数,m表示总位数,d:表示小数位
double(m,d) 双精度浮点数,存储浮点数, M也是总位置,d:表示小数位
text 用于存储大文本数据,文档,或者长字符串
image 二进制存储图像,图片,多媒体
decimal(5,2) 用于存储固定精度的小数,其中5表示总位数,2表示小数点后2位。
date 存储日期 yyyy-mm-dd 
datetime 存储日志yyyy-mm-dd hh:yy:dd
timestamp 和datatime 格式一样 ,可以自动的更新为当前的时间戳
 

char 无论你是否定义了值,都会占用固定长度的字节大小。
varchar :在保存时,varchar 实际长度是5 就占用5个,加一个隐藏符,6个
varchar 比 char 节省磁盘空间,但varchar读写速度比char慢

企业常见架构

MYSQL数据库_第1张图片
 

面试题:

多表关联,最多可以关联几张表?
        最多三张表

SQL语言分类

DDL 数据定义语言,用于创建数据库对象,如库、表、索引等
DML 数据操纵语言,用于对表中的数据进行管理
DQL 数据查询语言,用于从数据表中查找符合条件的数据记录
DCL 数据控制语言,用于设置或者更改数据库用户或角色权限

MYSQL数据库_第2张图片

格式:use 数据库名;

MYSQL数据库_第3张图片

MYSQL数据库_第4张图片

DDL(CREATE、DROP、ALTER)

1、创建数据库

格式:create database 数据库名;

2、创建表

格式:create table 表名 (属性名 字符类型 空/非空), primary key(属性名));
                                                                    非空要声明     primary key(属性名)设置主键:唯一性

MYSQL数据库_第5张图片

 3、修改表

格式:alter table 旧表名 rename 新表明;

MYSQL数据库_第6张图片

 4、改变表的列名

格式:alter table 表名 change 修改表的列名 修改成的列名 字符类型;

MYSQL数据库_第7张图片

5、添加新的列

格式:alter table ky32 add 列名;

MYSQL数据库_第8张图片

6、修改表类型

格式:alter table 表名  modify column 列名 修改类型;

MYSQL数据库_第9张图片

DML(INSERT、DELETE、UPDATE、SELECT)

1、表中插入内容

格式:insert into 表名(属性名1,属性名2,属性名3) values (属性内容,属性内容,属性内容);
                内容与属性名一一对应

MYSQL数据库_第10张图片

格式:insert into 表名 values (属性内容,属性内容,属性内容);
                内容与表中属性从左到右一一对应

MYSQL数据库_第11张图片

2、删除表的行

格式:delete from 表名 where  删除的判断条件;

MYSQL数据库_第12张图片
3、修改表中内容

格式:update 表名 set  属性名=修改的内容 where 判断条件;

MYSQL数据库_第13张图片

update 表名 set  属性名=password(' ') where 判断条件;

MYSQL数据库_第14张图片

4、查看表

格式:select 查看列  from 表名; (* 表示所有) ;

MYSQL数据库_第15张图片
5、内容去重

格式:select distinct 属性名 from 表名;

MYSQL数据库_第16张图片

6、截取行

格式:select * from 表名 limit 数字;

·只显示前两行
select * from liu1 limit 2;

MYSQL数据库_第17张图片
·只显示2-5行
select * from liu1 limit 1,4;

MYSQL数据库_第18张图片

6种常用的约束

1、主键约束,用于唯一标识表中的每一行,主键列的值必须是唯一而且不能为空,一个表只能有一个主键
2、外键约束,用于建立表于表的关系,一般是和另一张表的主键关联。保证数据应用的完整性。一个表可以有多个外键。
3、非空约束,not null 必须要有一个值。
4、唯一约束unique,确保列中的所有值的唯一性,类似于主键,但是可以为空,而且一个表可以有多个唯一约束。
5、默认值约束: default,在插入表数据时,如果没有定义值,会提供一个默认值.
6、自增约束:每行自动生成一个唯一标识。通常和主键在一起使用。

if not exists test: test表不存在,才会创建
ZEROFILL 自动填充位置 定义int(4)  输入1 自动生成0001
auto_increment 表示该字段自增长,默认从1开始
primary key 当前表的主键,主键只能有一个且唯一,不能为空
unique key 唯一性的约束,可以为空

1、只是复制表结构,不复制数据

格式:CREATE table 新表名 like 复制表名;

2、将liu2表中的数据插入到test表中,两个表数据结构要一致。

格式:insert into 新表名 select * from 复制表名;

3、创建一张表test1,数据从liu1来,两个表数据结构要一致。

格式:create table 新表名 (select * from 复制表名);

4、清空表中的数据

delete truncate drop

格式:delete from 表名;

一行一行的删除;如果表中有自增长列清空所有记录之后,再次添加内容,会从原来的记录之后继续自增长写入

格式:truncate table 表名;

清空表,把表结构重新建立。速度比delete块,表回到全新的状态

格式:drop table 表名;

删除表

5、添加主键

格式:alter table 表名 add primary key(属性名);

6、添加外键

格式:alter table 表名 add foreign key (索引属性名) references 主表名 (索引属性名);

7、删除主键

格式:alter table 表名 drop primary key;

8、查看关联关系;

格式:show create table 表名;

9、删外键

格式:alter table 从表名 drop foreign key 外键名;

11、删索引

格式:alter table 从表名 drop index 索引的属性名;

12、改变表的数据类型

格式:alter table 从表名 modify 属性名 字符类型;

13、为空默认

格式:address varchar(50) default '地址不知道',

14、创建临时表

一般用于调试,而且临时表示创建之后在表目录当中是不显示的连接退出之后,
临时表会被销毁。而且临时表无法创建外键

create temporary table test3 (
id int(4) primary key,
name char(4),
sex char(2)
);
insert into test1 values (1,'张三','男');

desc test2; 查看临时表

你可能感兴趣的:(数据库,mysql)