DBMS(数据库管理系统)
RDBMS(关系型数据库管理系统)
MySQL关系型数据库
NoSql非关系型数据库
1.RDBMS专业术语: 表:具有固定的列数和任意的行数。
数据库:一些关联表的集合。
列:一个数据项Field字段。
行:一条记录 row。
主键:唯一的,一个表中只能包含一个主键,可以使用主键来查询数据。
外键:用于关联两个表。
索引:使用索引可以快速访问数据库表中的特定信息。
(索引是对数据库表中的一列或多列的值进行排序的一种结构,类似于书籍的目录)
2.MySQL数据库分为两种:系统数据库:information_schema:存储数据库对象信息。
mysql:存储数据库服务器性能参数信息。
performance_schema:存储数据库用户权限信息。
sys:通过这个库可以快速的了解系统的元数据信息。
用户数据库
3.创建数据库:create database 数据库名称;
4.删除数据库:drop database 数据库名称;
5.查看数据库:show databases;
6.使用数据库:use 数据库名;
7.查看数据库当中有多少张表:show tables;
8.使用顺序: 先查看有哪些数据库-->再使用相应的数据库-->查看数据库中的表。
9.MySQL存储引擎:数据库对象:存储,管理和使用数据的不同结构形式,如表,视图,存储过程,函数等。
数据库:存储数据库对象的容器。
存储引擎:MySQL中数据用不同的存储机制、索引技巧,不同的存储引擎的性能不一样。
事务:
分类:MYISAM:不支持事务,但访问快。文件后缀:.frm(表).MYD(数据).MYI(索引)
INNODB:支持事务,有提交,回滚和恢复能力。 (现在最常用的)
MEMORY:访问快,数据放在内存中,一旦服务器关闭,表数据丢失,表还存在。
10.什么是SQL:Structured Quevy Language(结构化查询语言)
11.sql功能分类:DDL:数据定义语言,用来定义数据库对象,创建库、表、列等。
DML:数据操作语言,用来操作数据库表中的记录。
DQL:数据查询语言,用来查询数据。
DCL:数据控制语言,用来定义访问权限和安全级别。
12.常用的数据类型:double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数。
char:固定长度字符串类型。
varchar:可变长度字符串类型。
text:字符串类型。
blob:二进制类型。
date:日期类型,格式为yyyy-mm-dd。
time:时间类型,格式为hh:mm:ss。
datetime:日期时间类型,格式为yyyy-mm-dd hh:mm:ss。
(在mysql中,字符串类型和日期类型都要用单引号括起来。'Myxq' '2020-01-01')。
13.DDL:创建数据库:create database 数据库名 character set utf8;
创建学生表:create table students(
-> name vachar(25),
-> age int,
-> sex vachar(5)
-> );
添加一列:alter table 表名 add 列名 数据类型;
查看表的列:desc 表名;
修改列的类型:alter table 表名 modify 列名 数据类型;
删除一列:alter table 表名 drop 列名;
修改表名:rename table 表名to 要修改的表名;
查看表的创建细节: show create table 表名;
修改表的字符集为gbk: alter table 表名 character set gbk;
修改表的列名:alter table 表名 change 原列名 新列名 数据类型;
删除表:drop table 表名;
14.DML:查询表中的所有数据:select * from 表名; select * from 表名\G;
插入操作:insert into 表名 (列名1,列名2,...) values
-> (列值1,列值2,...),
-> (列值1,列值2,...),
注意事项:列名与列值一一对应,不能超出列定义长度,日期和字符要用引号括起来。
更新操作:更改一列的所有列值:update 表名 set 列名=列值;
更改列中某一项的值:update 表名 set 列名1=列值1,列名2=列值2 where 列名=列值;
删除操作:删除一行数据:delete from 表名 where 列名=列值; (可找回)
删除所有数据:delete from 表名; (可找回)
删除所有数据:truncate table 表名; (不可找回)
15.修改数据库密码:方式一:use mysql;
update mysql.user set authentication_string=password('***')
->where user='root' and Host='localhost';
flush privileges;
方式二:mysqladmin -u root -p password *** (需要配置好环境变量)
16.DQL:查询所有列:select * from 表名;
结果集:通过查询语句查询出来的数据以虚拟表的形式展示。
查询指定列的数据:select 列名1,列名2,... from 表名;
条件查询:在查询语句后面加上where以及一些运算符和关键字。
SELECT * from students where sex='woman' and age=19;
模糊查询:根据指定关键字进行查询,使用like关键字后跟通配符(_任意一个字母)(%任意n个字母)
select * from students where score like '9%';
字段控制查询:去掉重复记录:select DISTINCT sex from students;
结果运算:select *,IFNULL(age,0)+IFNULL(score,0) from students;
起别名:SELECT *,IFNULL(age,0)+IFNULL(score,0) as total from students;
排序:对查询的结果进行排序,使用关键字order by。
降序排序:SELECT * from students order by score desc;
升序排序:SELECT * from students order by score;
聚合函数:对查询的结果进行统计计算。
count():统计指定不为NULL的记录行数。
max():计算指定列的最大值。
min():计算指定列的最小值。
sum():计算指定列的数值和。
avg():计算指定列的平均值。