修改时间:2021年1月20日
作者:pp_x
邮箱:pp_x12138@163.com
数据库
数据库基本概念
- 数据库是存储和管理数据的仓库
- 本质是一个文件系统,以文件的形式保存在电脑上。
存储方式 | 优点 | 缺点 |
---|
内存 | 速度快 | 不可以永久保存,临时性 |
文件 | 数据永久保存 | 使用io流操作,不方便 |
数据库 | 数据永久保存;方便存储和管理数据;实现统一的方式操作数据库 | 占有资源 |
SQL
SQL概念
- 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
SQL的作用
- 是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL
- 所有的关系型数据库都可以使用SQL
- 不同数据库之间的SQL有一些方言
SQL通用语法
- SQL语句可以单行可以多行编写,以分号结尾
- 使用空格键和缩进来提高可读性
- MySQL中不区分大小写,一般关键字大写。数据库名、表名、列名小写
SQL的分类
- 数据定义语言:简称
DDL(Data Definition Language)
,用来定义数据库对象:数据库,表,列 - 数据操作语言:简称
DML(Data Manipulation language)
,用来对数据库中的表的记录进行更新 - 数据查询语言:简称
DQL (Data Query Language)
,用来对数据库数据查询 - 数据控制语言:简称
DCL(Data Control Language)
,用来定义数据库的访问权限和安全级别及创建用户
DDL操作数据库
- create database 数据库名;————创建指定名称的数据库
- create database 数据库名 default character set 字符集;——————创建指定名称并指定字符集的数据库(一般是utf-8)
查看/选择数据库
命令 | 说明 |
---|
use 数据库 | 切换数据库 |
select database(); | 查看当前正在使用的数据库 |
show databases; | 查看Mysql中 都有哪些数据库 |
show create database 数据库名; | 查看一个数据库的定义信息 |
修改数据库
命令 | 说明 |
---|
alter database 数据库名 character set 字符集; | 数据库的字符集修改操作 |
删除数据库
命令 | 说明 |
---|
drop database 数据库名 | 从MySql中永久的删除某个数据库 |
DDL操作数据表
- MySQL数据类型
创建表
CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型 注意 最后一列不要加逗号 );
create table 新表明 like 旧表名
查看表
show tables;————————查看当前数据库中的所有表名
desc 表名;————————查看数据表的结构
删除表
drop table 表名;—————— 删除表(从数据库中永久删除某一张表)
drop table if exist 表名;————————判断表是否存在, 存在的话就删除,不存在就不执行删除
修改表
rename table 旧表名 to 新表名
alter table 表名 character set 字符集
alter table 表名 add 字段名称 字段类型
- 修改表中列的 数据类型或长度 , 关键字
MODIFY
alter table 表名 modify 字段名 字段类型
alter table 表名 change 旧列名 新列名 类型(长度)
alter table 表名 drop 列名;
DML操作表中的数据
插入数据
insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);
INSERT INTO student (sid,sname,age,sex,address) VALUES(1,'孙悟空',20,'男','花果 山');
INSERT INTO student VALUES(2,'孙悟饭',10,'男','地球');
INSERT INTO category (cname) VALUES('白骨精');
更改数据
update 表名 set 列名 = 值
update 表名 set 列名 = 值 [where 条件表达式:字段名 = 值 ]
删除数据
delete from 表名
truncate table student;
delete from 表名
; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低,可以条件删除truncate table 表名
: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高
DQL查询数据
select 列名 from 表名
条件查询
- 如果查询语句中没有设置条件,就会查询所有的行信息,在实际应用中,一定要指定查询条件,对记录进行过滤
select 列名 from 表名 where 条件表达式
* 先取出表中的每条数据,满足条件的数据就返回,不满足的就过滤掉
运算符 | 功能 |
---|
> < <= >= = <> != | 大于、小于、大于(小于)等于、不等于 |
BETWEEN …AND… | 显示在某一区间的值 |
IN(集合) | 集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒) |
LIKE ‘%张%’ | 模糊查询 |
IS NULL | 查询某一列为NULL的值, 注: 不能写 = NULL |
运算符 | 功能 |
---|
And && | 多个条件同时成立 |
Or | 多个条件任一成立 |
Not | 不成立,取反。 |
通配符 | 功能 |
---|
% | 表示匹配任意多个字符串 |
_ | 表示匹配 一个字符 |