1、数据库概述
1.1什么是数据库
数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本会联系。数据库系统提供对数据的安全控制和完整性控制。
大家普遍的观点认为:数据库(DataBase, DB)是一个长期存储在计算机内的,有组织的、有共享的、统一管理的数据集合。是一个按数据结构来存储和管理数据的计算机软件系统。即:保管数据的“仓库”,以及数据管理的方法和技术。
数据库的特点:实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能。
1.2数据库的优点
数据库是按照特定格式将数据存储在文件中,通过SQL语句可以方便的对大量的数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。
1.3数据库管理系统
数据库管理系统(DataBase ManageMent System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
2、SQL语句
2.1什么是SQL
结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。
【CURD】:create 创建、update 修改、retrieve 检索(read)、delete 删除
2.2SQL作用
通过SQL语句我们可以方便的操作数据库中的数据、表、数据库。
SQL是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。
2.3SQL语句分类
1.DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等
2.DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert,delete,update等
3.DQL(Data Query Language)数据查询语言
DQL语言并不是属于Mysql官方的分类,但是对数据库的操作最多就是查询。
4.DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等
5.TCL(Transaction Control Language)事务控制语言
用于控制数据库的事务操作,关键字:COMMIT,SAVEPOINT,POLLBACK等
2.4DDL语句
2.4.1DDL操作数据库
创建数据库
1.直接创建数据库
create database 数据库名;
2.判断是否存在并创建数据库
create database if not exists 数据库名;
3.创建数据库并指定字符集
create database 数据库名 set character=字符集;
查看数据库
1.查看所有的数据库
show databases;
2.查看某个数据的定义信息
show create database 数据库名;
修改数据库
修改数据库字符集格式
alter database 数据库名 default character set 字符集;
删除数据库
drop database 数据库名;
使用数据库
1.查看正在使用的数据库
select databases;
2.使用/切换数据库
use 数据库名;
2.4.2DDL操作表
创建表
create table 表名(
字段名 字段类型,
字段名 字段类型,
......
);
MySQL数据类型
数据类型 | 描述 |
---|---|
int | 整型; |
double | 浮点型; |
varchar | 字符串型,M为0~65535整数,包含中英文和标点符号; |
date | 日期类型,格式为:yyyy-MM-dd; |
查看表
1.查看某个数据库中的所有的表
show tables;
2.查看表结构
desc 表名;
3.查看创建表的SQL语句
show create table 表名;
快速创建一个表结构相同的表
create table 新表名 like 旧表名;
删除表
1.直接删除表
drop table 表名;
2.判断表是否存在并删除表
drop table if exists 表名;
修改表结构
1.添加表列
alter table 表名 add 列名 类型;
2.修改列类型
alter table 表名 modify 列名 新的类型;
3.修改列名
alter table 表名 change 旧列名 新列名 类型;
4.删除列
alter table 表名 drop 列名;
5.修改表名
rename table 表名 to 新表名;
6.修改字符集
alter table 表名 character set 字符集;
2.5DML语句
2.5.1插入记录
插入全部字段
1.所有的字段名都写出来
insert into 表名(字段名1,字段名2,字段名3...) values(值1,值2,值3...)
2.不写字段名
insert into 表名 values(值1,值2,值3...)
插入部分数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
没有添加数据的字段会使用NULL
1.关键字说明
insert into 表名 -- 表示向该表中添加数据
(字段名1,字段名2,...) -- 给这些指定字段设置值
values(值1,值2,...) -- 设置具体的值
2.注意
- 值与字段必须对应,个数相同,类型相同
- 值的数据大小必须在字段的长度范围内
- 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
- 如果要插入空值,可以不写字段,或者插入null
2.5.2更新表记录
1.不带条件修改数据
update 表名 set 字段名=值;
2.带条件修改数据
update 表名 set 字段名=值 where 字段名=值;
3.关键字说明
update:修改数据
set:修改哪些字段
where:指定条件
2.5.3删除表记录
1.不带条件删除数据
delete from 表名;
2.带条件删除数据
delete from 表名 where 字段名=值;
3.truncate删除表记录
truncate table 表名;
runcate和delete的区别:
- delete是将表中的数据一条一条删除
- truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
2.6DQL–下面介绍简单查询语句
查询不会对数据库中的数据进行修改,只是一种显示数据的方式准备数据
2.6.1查询表所有数据
1.使用*表示所有列
select * from 表名;
2.写出查询每列的名称
select 字段名1,字段名2,...from 表名;
3.别名查询
select 字段名1 as 别名,字段名2 as 别名... from 表名;
select 字段名1 as 别名,字段名2 as 别名... from 表名 as 别名;
注意
查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处
AS关键字可以省略
4.清除重复值
查询指定列并且结果不出现重复数据
select distinct 字段名 from 表名;
5.查询结果参与运算
1.某列数据和固定值运算
select 列名1 + 固定值 from 表名;
2.某列数据和其他列数据参与运算
select 列名1 + 列名2 from 表名;
注意:参与运算的必须是数值类型