MySQL数据库基础操作
MySQL数据库基础操作
关于数据
一、数据
1、数据(Date) 是用来描述事物的记录符号,是数据库中存储的基本对象,数据库的核心
2、数据的形式多种多样,包括:数字、字母、文字、图形、声音、动画等
二、信息
1、信息通常指被加工处理过的数据, 是行为、决策的基础
2、数据库软件不仅仅保存数据,而且具有加工数据产生信息的能力
信息 = 数据 + 处理
三、数据库
1、数据库(DataBase 简称DB),是长期储存在计算机内、有组织的、可共享的相关数据的集合
2、数据库不仅仅包括数据本身,还包括数据间的联系,而且能够被不同用户和程序访问
四、数据库系统
1、数据库系统(DataBase System 简称DBS),指在计算机系统中引入数据库后的系统构成
2、主要包括:数据库、硬件、软件、数据库管理系统、数据库管理员、数据库用户
注意:DBMS在操作系统的支持下工作,应用程序DBMS支持下才能使用数据库
五、数据管理系统
1、数据库管理系统(DataBase Management System 简称为DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库
2、数据库管理系统有:MySQL、Oracle、Microsoft SQL server、Microsoft Access等等
3、数据库管理系统是数据库系统的核心,是管理数据库的软件
4、主要功能:
- 数据定义功能(建库建表等)
- 数据操纵功能(增删查改)
- 数据运行管理功能
- (备份还原等)
六、数据库管理人员
1、数据库管理人员(DataBase Administrator 简称DBA)是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称
2、DBA的主要职责是运维和管理数据库管理系统,如数据备份还原等
概述
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL作为网站数据库。
表结构
库-表-字段名-数据MySQL表由information_schema表、schemata表、tables表和columns表等组成,如数据库名、表名、列的数据类型,以及访问权限等
- information_schema表:MySQL自带的系统数据库,用于存储数据库元数据(关于数据的数据),如数据库名、表名、列的数据类型,以及访问权限等。
- schemata表:存储数据库名的表,当前MySQL实例的所有数据库。(select schema_name from schemata)
- tables表:存储数据库及数据库中的表名。(select table_schema,table_name from information_schema.tables)
- columns表:存储数据库、表,以及表中的字段(是select group_concat(column_name) from information_schema.columns)
库操作
增加库
create database 库名;
查看当前有哪些数据库
show databses;
切换数据库
需要使用哪个数据库就使用use 库名;
删除数据库
drop database 库名;
表操作
增加
创建表,格式:
1 | create table 表名(字段名1 字段类型,字段名2 字段类型, ...); |
1 | create table users(name varchar(200),age int); |
向表中增加数据,格式:
1 | INSERT INTO table_name (column1, column2, column3, ...) |
注意:如果数据是字符型,必须使用单引号 ‘ 或者双引号 “,如: ‘value1’, “value1”。
1 | mysql> insert into users (name,age) values ('Ming',20); |
也可以进行批量插入数据
1 | mysql> insert into users values ('Hong',18),('Kong',25); |
修改
关键词 update,语法:update 表名 set 字段名=值 [where 条件表达式]
全部字段都做了更改
1 | mysql> update users set age = 50; |
如果只想修改name=‘Ming’的age为20呢?
1 | mysql> update users set age = 20 where name='Ming'; |
删除
只想删除数据表中的一行数据
1 | delete from users where 字段名=值; |
清空整张表
1 | truncate [table] 表名; |
删除记录
1 | delete from 表名; |
truncate与delete的区别:
1 | DELETE: |
其他操作
1 | - 删除字段:alter table 表名 drop 字段名 |
查询
查询不但能实现数据检索,而且可以在查询过程中进行计算、合并不同数据源的数据
查询当前数据库下有哪些表,关键词show
1 | show tables; |
查询格式
1 | SELECT[ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] ... |
单表查询
1、查询表中全部数据
1 | select * from table_name; |
2、只查询name字段的数据
3、查询name=lin的数据
4、查询某几行数据
5、模糊查询
字段名 [ NOT ] like …
如果条件不确定,必须使用LIKE关键字进行模糊查询,用like进行字符串匹配,将该字符串叫做匹配串,用它与属性值进行比较。
匹配串中的通配符为:_ 任意单个字符;% 零个或多个任意字符串
1 | mysql> select * from users where name like 'L%'; |
多表查询
同时涉及多个表的查询称为连接查询,用来连接两个表的条件称为连接条件或连接谓词。
一般格式:[<表名1>.] <列名1> <比较运算符> [<表名2>.]<列名2>。
比较运算符:=、>、<、>=、<=、 !=
连接谓词中的列名 称为连接字段,连接条件中的各连接字段类型必须是可比的,但不必是相同的。
在多表查询中,存在 内连接、外连接、自连接。
联合查询,合并结果集,关键词 union,使用union将多个select语句的查询结果集组合成一个结果集
语法:select 字段列表1 from table1 UNOIN [all] select 字段列表2 from table2
注意:
- 字段列表1和字段列表2的字段个数必须相同,且具有相同的数据类型
- union与union all的区别:union 会筛选掉select结果集中重复记录,union all 会直接合并两个结果集
交集 intersect 和 差集 except 在SQL Server中支持,MySQL不支持
常用函数
1、聚合函数-count(),统计元组个数。
2、order by 字段名,根据字段进行排序,asc 顺序,desc倒序(默认使用顺序)。
3、@@hostname:主机名
4、@@datadir:数据库路径
5、database():数据库名
6、current_user():当前用户
7、version():数据库版本
8、注释符
单行注释可以使用 # 或 – 注释符。使用 # 后直接加注释内容,而使用 – 后需要跟一个空格才能生效。
多行注释使用 /* */ 注释符,可以跨多行。