MySQL的概念和sql语句

数据库的概念

数据库的概念:数据库是用来组织(各个数据之间是有关联,是按规则组织起来的),存储和管理(增,删,改,查)的仓库

数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件

数据库是一个系统,一个人机系统。包含硬件,os,数据库,DBMS和数据库的用户共同组成。

用户是通过DBMS (各种数据库软件)来对数据库进行操作

MySQL的概念和sql语句_第1张图片

数据库的分类

随着时代的发展,当今数据库可分为两大类:关系数据库(SQL)非关系数据库(NO SQL)两大类 。

关系型数据库

关系数据库的存储结构是二维表格 ,表是有行和列。行称为记录,是用来描述一个对象的信息。列称为字段,是用来描述对象的一个属性

关系性数据库常见的有:MYSQL ,Oracle,SQL-Server,MariaDB, postgreSQL 

非关系型数据库

缓存性数据库: redis     Memcache

      索引型数据库:  ES(Elasttic search)

      时序型数据库:Prometheus

       文档型数据库:MongoDB

 非关系型数据库:是键对值的存储结构(key ——————>   VALUE)

优点:可高并发读写,对海量数据依旧保持着高效率的存储和访问,具有高扩展性和高可用性
 

mysql数据库的存储引擎

5.5之前:MYSAM,不支持事物和外键的存储引擎。适用于读的多,写的少

5.6之后默认的引擎:innodb,可以支持事物,外键,行级锁定的存储引擎,支持高并发性能的应用。

事物:在数据库当中,一个或者多个操作组成的数据库操作的序列。这些操作要么全都成功,失败一个就全部不执行。

此操作原因:确保数据一致性和完整性

事物的特点:

1.原子性(数据库的最小工作单位),要么全部执行成功,要么全部不执行,只要有一个操作时间,整个执行的序列都会被回滚。完成的操作也会被撤销

2.一致性:事物执行前后,数据库的完整性约束不能被破坏。只有在满足所有的约束条件下,事物才能被提交。

3.隔离性:事物的执行是相互隔离。一个事物的执行不能收到其他执行事物的干扰。并发事物之间互相隔离,防止数据不一致的情况发生

4.持久性:事物一旦提交他所作的所有修改,会被永久的保存在数据库中。即使系统崩溃,提交的数据也不丢失。确保数据库始终处于一致性的状态。确保数据库的完整性和一致。

Mysql的名词

1.数据库:database

2.  表 : table

     行 : row

     列 : column

3.索引:index

4.视图:view

5.存储过程:procedure

6.触发器:trigger

7.用户:user

8.权限:privilege

mysql的语句规范

在数据库系统中,sql不区分大小写,但是建议大写。语句不区分,但是表名严格区分大小写。

sql语句可以单行也可以多行书写,但默认都以 ;结尾。

关键词不能跨行或者简写。

子语句通常位于度路航,便于编辑,提高可读性。

数据库命名规范

1.必须已字母开头,后面可以包含数据,特殊字符:#_$

2.不能使用mysql的保留字作为名字 :table select

3.数据库名 表名 用户名严格区分大小写

数据库的字符类型

字符类型 用法
int 4个字节,用来存储整数,范围很大
char 只能存取固定长度的字符串,用来存储定长的字符串
varchar 可变长度的字符类型,存储可变长度的字符串。(无限制的可以随便写)
float (m,d)

单精度浮点

m:总长度 d:小数位

double (m,d) 双精度浮点数,存储浮点数 。M是总位置,d表示小数位
text 用于存储大文本数据 ,文档,或者字符长度
image 二进制存储的图像,图片,多媒体
decimal (5.2) 用于存储固定精度的小数,其中5表示总位数,2表示小数位。
date 存储日期:YYYY-MM-DD
datetime 存储日志 yyyy-mm-dd hh:mm:ss (年-月-日-时-分-秒)
timestamp 和datetime格式一致,可以自动更新位当前的时间戳

char和varchar的区别

char:无论是否定义了值,他都会占用固定长度的字节大小

varchar:在保存时,varchar14 实际长度是5。结果就是实际长度+隐藏符号=6个

varchar比char节省磁盘空间,但是varchar读写速度比char慢

sql语句的分类

DDL:数据定义的语言,用于创建数据的对象,创建库,表,索引。

  CREATE :创建

 DROP :删除

 ALTER:修改

show global variables like 'port';

MySQL的概念和sql语句_第2张图片

show databases;
查看库
use mysql;
//使用mysql库

MySQL的概念和sql语句_第3张图片

show tables;

MySQL的概念和sql语句_第4张图片

describe user\G;
//纵向查看
desc test1;
//简写

MySQL的概念和sql语句_第5张图片

show databases;
create databases zzr;

MySQL的概念和sql语句_第6张图片

create table hj (id int(4) not null,name varchar(10) not null,score decimal(5,2),passwd char(48),primary key(id));

MySQL的概念和sql语句_第7张图片

desc hj;
//查看表结构

MySQL的概念和sql语句_第8张图片

null和空格的区别:

null表示什么都没有,对象没有任何的描述信息。

DML:数据操纵语言,对表中的数据进行管理

select:查看

update:更新

insert:添加

delect:删除 对表进行删除操作

insert into hj values(4,'ZZR',92,password('789'))

MySQL的概念和sql语句_第9张图片

mysql> update hj set passwd=password('456') where id = 3;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select * from hj;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  1 | A    |  NULL |                                           |
|  2 | 啊   | 90.00 | 123                                       |
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
|  4 | ZZR  | 92.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
4 rows in set (0.01 sec)

MySQL的概念和sql语句_第10张图片

mysql> delete from hj where id = 4;
mysql> select * from hj;

MySQL的概念和sql语句_第11张图片

DQL语言:查询数据记录

select * from hj where id = 3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
1 row in set (0.00 sec)

//查看指定行

MySQL的概念和sql语句_第12张图片

mysql> select * from hj limit 2,3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from hj limit 1,3;
+----+------+-------+-------------------------------------------+
| id | name | score | passwd                                    |
+----+------+-------+-------------------------------------------+
|  2 | 啊   | 90.00 | 123                                       |
|  3 | AAA  | 95.00 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |
+----+------+-------+-------------------------------------------+
2 rows in set (0.00 sec)

limit 2;
//表示前两行

MySQL的概念和sql语句_第13张图片

查看指定列

mysql> select distinct name from hj;
+-----------+
| name      |
+-----------+
| A         |
| 啊        |
| AAA       |
| zhaozirui |
| 赵子瑞    |
+-----------+
5 rows in set (0.00 sec)

//查看指定列

修改表的名称

修改表的名称
mysql> show tables;
+---------------+
| Tables_in_zzr |
+---------------+
| hejing        |
+---------------+
1 row in set (0.00 sec)

mysql> alter table hejing rename hj;
//格式
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+---------------+
| Tables_in_zzr |
+---------------+
| hj            |
+---------------+
1 row in set (0.00 sec)

MySQL的概念和sql语句_第14张图片

更新信息

mysql> update hj set birth=date('2002-5-31') where id = 4;

//根据唯一索引查看定位

MySQL的概念和sql语句_第15张图片

修改列名

mysql> alter table hj change birth birthday datetime;

MySQL的概念和sql语句_第16张图片

删除列

删除列
mysql> alter table hj drop birthday;

MySQL的概念和sql语句_第17张图片

修改字段类型

mysql> alter table hj modify column passwd varchar(52);
Query OK, 5 rows affected (0.01 sec)

MySQL的概念和sql语句_第18张图片

DCL:数据控制语言,设置或者更改数据库用户或者用户权限

   GRSNT:赋予权限

   REMOVE:取消权限

   TCL:事物控制语句,管理数据库当中的事物

      commit:确认提交事物,一旦提交就无法修改

      ROLLBACK:事物提交之后无法回滚。

   savepoint保存点,可以回滚

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