今日内容:
1. mysql概述
2. sql概述
3. DDl
4. DML
MySql概述:
1. 内存和文件的优缺点:
* 内存:速度快,但是不能永久保存,数据是临时状态。
* 文件:数据可以永久保存,操作数据不方便,查询某个数据。
2. 数据库优缺点:
* 优点:
1. 数据可以永久保存
2. 查询速度快
3. 对数据的管理方便
* 缺点:
1. 占用资源,需要购买。
2. 需要专门的软件进行编写,需要学习成本去使用它的语法和使用方式
3. 什么是数据库:
1.储存数据的仓库
2.本质上是一个文件系统,还是以文件的方式存在服务器的电脑上的。
3.所有的关系型数据库都可以使用通用的SQL语句进行管理DBMS DataBase Management System
4.为什么选择MySQL
1.免费
2.功能强大
5.MySQL目录结构:
bin<目录>:所有mysql的可执行文件,如:mysql.exe
MySQLInstanceConfig.exe: 数据的配置向导,在安装时出现的内容;
date<目录>:系统必须的数据库所在的目录。
my.ini文件:mysql的配置文件,一般不建议去修改。
6. 数据库管理系统:指一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统各访问数据库表内的数据。
7. 结论:
* 一个数据库服务器包含多个库,一个数据库包含多张表,一个表包含多条记录
SQL概述
1.SQL:Structured Query Language 结构化查询语言
2. SQL作用:
1.是一种所有关系型数据库的查询规范,不同的数据库都支持。
2.通用的数据库操作语言,可以用在不同的数据库中。
3.不同的数据库SQL语句有一些区别。
3. SQL语句分类:
DDL:建库,建表
DML:增删改
DQL:对表中的查询操作
DCL:对用户权限的设置
4. MySQL语法:
每条语句以分号结尾,如果在SQLyog中不是必须加的。
SQL中不区分大小写,关键字中认为大写和小写是一样的。
3中注解:
--空格 单行注释 # 单行注释(这个是mysql特有的注释方式)
/* */这是mysql特有的注释方式
DDL:
1. DDL操作数据库:
1. 创建数据库: CREATE DATABASE 数据库名;
2. 判断数据库是否已经存在,不存在则创建数据库 :
* CREATE DATABASE IF NOT EXISTS 数据库名;
3. 创建数据库并指定字符集:
*CREATE DATABASE 数据库名 CHARCTER SET 字符集;
4. 按tab可以自动补全关键字;
5. 修改数据库默认的字符集:
* alter database 数据库名 default character set 字符集;
6. 将db3数据库的字符集改成utf8
* alter database bd3 character set utf8;
7. 删除数据库的语法:
* drop database 数据库名;
8. 具体操作:
* 每行SQL语句需要选中再执行,可以按F9
9. 查看正在使用的数据库:
* select database(); 使用的一个mysql中的全局函数
10. 使用/切换数据库
* use 数据库名;
2. DDL操作表结构:
* 创建表的格式:
create table 表名(
字段名1 字段类型1;
)
3. 添加数据:语法:insert into 表名(列名1,列名2...)values(值1,值2...);
* 注意:
1. 列名和值要一一对应。
2. 如果表名后,不定义列名,则默认给所有列添加值。
* insert into 表名 values(值1,值2,值...);
3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来。
3. 删除数据:
* 语法:
1. delete from 表名 [where 条件]
* 注意:
1. 如果不加条件,则删除表中所有记录。
2. 如果要删除所有记录
2. delete from 表名; --不推荐使用。有多少条记录就会执行多少次操作。
3. truncate table 表名; --先删除表,然后再创建一张一模一样的表。
* 查询表中的记录: select * from 表名;
4.数据库的基本概念:
1. DataBase 简称DB
2. 什么是数据库? 用于存储和管理数据的仓库。
3. 数据库的特点:
* 持久化储存数据的。 其实数据库就是一个文件系统。
* 方便存储和管理数据
* 使用了统一的方式操作数据库。 --SQL
4. 常见的数据库软件:Oracle,MySQL,DB2,MySQLSEVER等。
5. MySQL软件 相当于是服务端3306. 所以它必须开启服务,才能被其他连接。
6. 配置:
* MYSQL服务启动:
1. 手动
2. cmd-->services.msc 打开服务的窗口
3. 使用管理员打开cmd
7. 开启关闭服务
1. net start mysql :启动mysql的服务。
2. net stop mysql :关闭mysql的服务。
8. MYSQL登录
1. mysql -uroot -p密码
2. mysql -hip -p连接目标的密码 (安装数据库要勾上远程控制访问才可以)
3. mysql --host=ip --user=root --password=连接目标的密码
9. MYSQL的目录结构:
1.MYSQL安装目录结构
配置文件: my.ini
2.MYSQL数据目录
几个概念
数据库---->文件夹
表 ---->文件
数据 ----->数据
10. SQL是结构化查询语言,定义了操作所有关系型数据库的规则。
5. 三种注释:
1. 单行注释:-- 注释内容(两个横杠一个空格)
2. # ---> mysql特由于的单行注释
3. 多行注释:/* */
6. SQL通用语法:
1.SQL语句可以单行或多行书写,以分号结尾。 (在mysql中可以自动加上;)
2.可使用空格和缩进来增强语句的可读性。
3.MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4.注释
7. SQL分类:
1.DDL:数据定义语言:定义数据库,表,列等:关键字:create,drop,alter等
2.DML:数据操作语言:用来对数据库表中的数据进行增删改。关键字:insert ,delete, update等
3.DQL:数据查询语言,用来查询数据库中表的记录(数据)。关键字:select,where等
4.DCL:数据控制语言:用来定义数据库的访问权限和安全级别,及创建用户。关键字:grant,revoke;
8. DDL:操作数据库、表
1.操作数据库:CRUD
1.C :create:创建
2.R :retrieve:查询 查询所有数据库的名称:show databases;
3.U :update:修改
4.D : delete:删除
5.使用数据库
9. 操作数据库:
1. 创建:
create database 数据库名称;
* 创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
* 创建数据库,并制定字符集:
create datebase 数据库名称 character set 字符集名;
2. 查询:
* 查询所有数据库的名称:
show databases;
* 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
3. 修改:
* 修改数据库字符集名称:
alter database 数据库名称 character set 字符集名称;
4. 使用:
* use 数据库名称;
10. 查询表:R(Retrieve)查询
查询所有表:show tables;
查看表结构:desc haha;
11. 创建表: C(create):创建
1.语法:
create table表名 (
列名1 数据类型,
列名2 数据类型2,
...
列名n 数据类型n
);
* 注意:最后一列,不需要加“,”号;
12. 数据库类型:
1. int:整数类型 *age int,
2. double:小数类型 *score double(5,2), ->说明总长度5位,保留两位小数。
3. date:日期,只包含年月日,yyyy-MM-dd
4. datetime:日期,包含年月日时分秒
yyyy-MM-dd HH:mm:ss
5. timestamp:时间错类型 包含年月日时分秒
yyyy-MM-dd HH:mm:ss
6. varchar:字符串
* name varchar(20):姓名最大20个字符
7. 创建表:
create table student(
id int,
name varchar(32),
age int,
score double(4,1);
);
* 大型数据可以储存在CLOB里面,二进制类型可以储存图片;
13. 修改,添加,删除:
1. 修改U(Update):
1.修改表名
alter table 表名 【rename to 新的表名;】
2.修改表的字符集
alter table 表名 【character set 字符集名称;】
2. 添加:
* 添加一列:* alter table 表名 【add 列名 数据类型;】
3. 修改列名称 类型
* alter table 表名 【change 列名 新列名 新数据类型】
5. 删除列:alter table 表名 【drop 列名】;
6. D(Delete):删除
1. drop table 表名;
2. drop table if exists 表名;
DML
1. DML:增删改表中的数据:
1. 添加数据:
* 语法: insert into 表名(列名1,列名2,...列名n)values(值1,值2,...值n);
* 注意:
1. 列名和值要一一对应。
2. 如果表名后,不定义列名,则默认给所有列添加值。
insert into 表名 values (值1,值2,...值n);
2. 删除数据:
* 语法:delete from 表名[where 条件]
* 注意:
1. 如果不加条件,则删除表中所有记录。
2. 如果要删除所有记录:
* 示例:
1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次。
2. truncate table 表名; #推荐使用,效率更高,先删除表,然后再创建一张一模一样的表。
3. 修改数据:
* 语法:update 表名 set 列名1=值1,列名2=值2,...[where 条件];
* 注意:1.如果不加任何条件,则会将表中所有记录全部修改。
* DQL:查询表中的记录
* 语法: slect * from表名
"*"代表所有字段
1.基本查询:
select 字段名1,字段名2...from 表名;
4. distinct 去重复;
1. 语法:
select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组之后的条件
order by 排序
limit 分页限定
2. 基础查询:
1.多个字段的查询:
select 字段名1, 字段名2...from 表名;
* 注意:如果查询所有字段,则可以使用*