mysql -u root -p123456
数据库概念和sql语句
数据:数:数字信息 据:属性
对一系列具体属性的描述的集合。
数据库:数据库就是用来组织(各个数据之间是有关联,按照规则组织起来的),存储和管理(对数据的增,删,改,查)数据的仓库。
数据库是企业的信息资产,在使用数据库时,要注意(查和增,无所谓,但是删和改,要谨慎!)
数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件
mysql
数据库是一个系统,是一个人机系统,硬件,os数据库,DBMS和数据库用户共同组成。
用户是通过DBMS(各种数据库软件)来对数据库进行操作。
数据库的分类:
MySQL:关系型数据库。
非关系型数据库:redis es
关系型数据库:存储数据的结构是一个二维的表格
表:行 列
行:记录,用来描述一个对象信息
列:字段,用来描述对象的一个属性。
关系数据库:mysql(中小类型的数据并发请求 免费)orale(大数据量还是用它) sql-server mariaDB postgresql
关系型数据库当中,表里面的数据是关联的,表和表之间数据也是关联起来。
多表关联,最大可以关联几张表?最多三张表(面试题)
非关系型数据库:保存数据不是一张表格,key--->value 键值对来保存数据。ky32=12
redis 缓存性的数据库
es:索引型数据库。
文档型:MongDB
既然有关联,查询速度相对来说,关系型数据查询速度更慢一些。非关系型数据库可以支持高并发读写。对海量数据依旧保存高效率的存储和访问。
MySQL数据库的存储引擎:
5.5之前:默认引擎MYISAM不支持事务和外键的存储引擎。适用于读的多,写的少。
5.6之后默认的存储引擎:innodb,可以支持事务,外键,行级锁定的存储引擎。
支持高并发性能应用。
事务:在数据库当中,一个或者多个操作组成的序列。
这些操作要么全部成功,失败一个就全部不执行。确保数据一致性和完整性。
事务的特点:
原子性:数据库最小工作单元,要么全部执行成功,要么全部不执行,只有一个操作时间,整个执行的序列都会备回滚。完成的操作也会被撤销。
一致性:事务执行前后,数据库的完整性不能被破坏,只能在满足所有的约束条件的情况下,事务才能被提交。
隔离性:事务的执行是相互隔离。一个事务的执行不能受到其他执行事务的干扰。并发事务之间互相隔离。防止数据不一致的情况发生。
持久性:事务一旦提交,他所做所有修改会被永远保存在数据库中,即使系统崩溃,提交的数据也不会丢失。确保数据库始终处于一致性的状态。确保数据的完整和一致。
数据库的名词:
1,数据库:database
2,表:table 行:row 列:column
3,索引:index
4,视图:view
5,存储过程:procedure
6,触发器:trigger
7,用户:user
8,权限:privilege
MySQL语句的规范:
在数据库系统中,sql不区分大小写,单建议你大写。语句不区分,但是表名是严格区分大小写。
sql语句可以单行,也可以多行,但是默认都以;结尾。
关键词是不能换行写
子语句通常位于独立行,便于编辑,提高可读性。
字符串只能用'单引号
数据库的命名规则:
必须以字母为开头,后面可以包含数字,特殊字符:# _ $
不要使用mysql的保留字:table select
数据库名 表名 用户名严格区分大小写。
数据库的字符类型:
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 在保存时,varchar 14 实际长度5 就占5个,加一个隐藏符,6个
varchar比char节省空间
但是varchar索引比较慢
都是字符串类型:一定要用单引号。
sql语句的分类
DDL:数据定义语言,用于创建数据库的对象,创建库 表 索引。
CREATE:创建
DROP:删除
ALTER:修改
查看端口
show global variables like 'port';
查看有哪些库
show databases;
使用数据库
use mysql;
查看表
show tables;
如何查看表的结构
describe user;
纵向查看
describe user\G;
简写:
desc user;
新建库
create database chen;
使用库
use chen;
查看表
show tables;
创建表和其中数据:
create table cc (id int(4) not null,name varchar(10) not null,sroce decimal(5,2),passwd char(48),primary key(id));
表名cc
列:id,name,sroce
主键 id
删除表
drop table cc;
删除库 (库中的表一起删除)
drop database chen;
子语句可以换行写
create table cc (id int(4) not null,
name varchar(10) not null,
sroce decimal(5,2),
passwd char(48),
primary key(id));
null和空格的区别:
null是什么都没有,对象没有任何描述信息。
空格:也是字符。
DML:数据操作语言,对于表中的数据进行管理,
select
update 更新
insert 添加
delete 删除 对表的内容进行删除
清空表
truncate table cc;
插入数据
insert into cc values(1,'cc1',null,'');
给信息加密
insert into cc values(4,'cc4',62,password('333'));
给原有的信息加密
update cc set passwd=password('333') where id = 3;
推荐id,一般表中用id作为唯一标识
删除指定行
delete from cc where id = 4;
DQL:查询数据。
指定条件去查 where(一般用主键查询)
select * from cc where id = 6;
指定行查看limit
从第二行开始往下2行
select * from cc limit 2,2;
前2行
select * from cc limit 2;
指定列查询
select sroce from cc;
去重查询
select distinct sroce from cc;
所有条件包含在内
修改表的名称
alter table cc rename ch;
修改表的结构
加一列
alter table ch add birth date;
对指定内容更新
update ch set birth=date('2020-1-1') where id = 5;
修改列名
alter table ch change birth birthday datetime;
删除整列
alter table ch drop birthday;
修改字段类型
alter table ch modify column passwd varchar(52);
主要是改char和varchar。
其他语句
DCL:数据控制语言,设置或者更改数据库用户或者用户的权限
GRANT 赋予权限
REVOKE 取消权限
TCL:事务控制语句,管理数据库当中的事务。
commit: 确认提交事务
ROLLBACK,事务提交之后无法回滚。
savepoint保存点,可以回滚。