数据库

数据库基本概念数据库是存储和管理数据的仓库

本质是一个文件系统,以文件的形式保存在电脑上。

| 存储方式 | 优点 | 缺点 | | -------- | ---------------------------------------------------------- | ---------------------- | | 内存 | 速度快 | 不可以永久保存,临时性 | | 文件 | 数据永久保存 | 使用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 数据库名 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 字符集向表中添加相关列 关键字ADD

alter table 表名 add 字段名称 字段类型修改表中列的 数据类型或长度 , 关键字MODIFY

alter table 表名 modify 字段名 字段类型修改列名称,关键字change

alter table 表名 change 旧列名 新列名 类型(长度)删除列 关键字DROP

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 | 不成立,取反。 | - 模糊查询通配符

| 通配符 | 功能 | | ------ | ---------------------- | | % | 表示匹配任意多个字符串 | | _ | 表示匹配 一个字符 |