内容
数据库的基本概念
MySQL数据库软件
1.安装
2.卸载
3.配置SQL
数据库的基本概念
1.数据库的英文单词:DataBase 简称:DB
4.常用的数据库软件
2.什么是数据库?
* 用于存储和管理数据的仓库。
3.数据库的特点
* 1.持久化存储数据的。其实数据库是一个文件系统;
* 2.方便存储和管理数据
* 3.使用了统一的方式操作数据库。--SQL
18年数据库排行
MySQL数据库软件
- 安装
- 卸载
1.去mysql的安装目录找到my.ini文件
*复制datadir = "C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
2.卸载MySQL
3.删除C:/ProgramData目录下的MySQL文件夹- 配置
MySQL服务启动
1.手动
2.cmd--> service.msc 打开服务窗口(看服务是否开启)
3.使用管理员打开cmd
*net start mysql:启动mysql服务
*net stop mysql:关闭mysql服务
MySQL登录
1.mysql -u root -p 密码
2.mysql -h ip地址 -u root -p 连接目标的密码
3.mysql --host=ip地址 --user=root --password=连接目标的密码
MySQL退出
1.exit
2.quit
MySQL目录结构
1.MySQL安装目录
*配置文件 my.imi
2.MySQL数据目录C:/ProgramData/MySQL/MySQL Server 5.5/Data/
*几个概念
(1)数据库:文件夹
(2)表:文件
(3)数据:数据
SQL
1. 什么是SQL?
Structured Query Language:结构化查询语言
其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
2. SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾。
2.使用空格和缩进来提高语句的可读性。
3.SQL语句不区分大小写,关键语句建议用大写来写。
4.三种注释
单行注释:--注释内容或#注释内容(mysql特有)
多行注释:/注释/
3. SQL分类
(1)DDL(Data Definition Language):数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等。
(2)DML(Data Manipulation Language):数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert,delete,update等。(3)DQL(Data Query Language):数据查询语言
用来查询数据中表的记录(数据)。关键字:select,where等。
(4)DCL(Data Control Language):数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户,关键字:grant,revoke等
DDL:操作数据库、表
1. 操作数据库:CRUD
1.C(create):创建
- 创建数据库:
create database 数据库名称;- 创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;- 创建数据库,并制定字符:
create database 数据库名称 character set 字符集名;- 创建db4数据库,判断是否存在,并制定字符集为gbk:
create database if not exists db4 character set gdk;
2.R(Retrieve):查询
- 查询所有数据库的名称:
show databases;- 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
3.U(Update):修改
- 修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
4.D(Delete):删除
- 删除数据库
drop database 数据库名- 判断数据库存在,存在再删除
drop database if exists 数据库名称;
5.使用数据库
- 查询当前正在使用的数据库的名称
select database();- 使用数据库
use 数据库名称;
2. 操作表
1.C(create):创建
*创建表:
create table 表名称( 列名1 数据类型1, 列名2 数据类型2 , ... 列名n 数据类型n );
- 注意:最后一列不需要加逗号(,)
- 数据库类型:
(1)int:整数类型
age int,
(2)double:小数类型
score double(5,2)//5位小鼠=数,小数点后最多保留2位小数
(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个字符
- 创建表
create table student( id int, name varchar(32), age int, score double(4,1), birthday date, insert_time timestamp );- 复制表
create table 表名 like 被复制表名
2.R(Retrieve):查询
- 查询某个数据库中所有表的名称:
show tables;- 查询表结构
desc 表名;
3.U(Update):修改
- 修改表名
alter table 表名 rename to 新的表名;- 修改表的字符集
alter table 表名 character set 字符集名称;- 添加一列
alter table 表名 add 列名 数据类型;- 修改列名称、类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;- 删除列
alter table 表名 drop 列名;
4.D(Delete):删除
- 删除表
drop table 表名- 判断数据库存在,存在再删除
drop table if exists 表名;
3. 图形化工具ser
DML:增删改表中数据
- 添加数据:
- 语法:
insert into 表名(列名1,列名2,...列名n)value(值1,值2,...值n);- 注意:
1.列名和值要一一对应;
2.如果表名后不添加列名,则默认给所有列添加值
3.除了数字类型,其他类型需要引号引起来(单双号)
- 删除数据
- 语法:
delect from 表名 [where 条件]- 注意:
1.如果不加条件,则删除表中所有记录;
2.如果要删除所有数据
*delect from 表名不推荐使用。有多少条记录会执行多少次删除操作;
*truncate table 表名推荐使用,效率更高,先删除表,再创建一张一模一样的表。
- 修改数据
- 语法:
update 表名 set 列名1 =值1,列名2 =值2,...[where 条件];- 注意:
1.如果不添加任何条件,则会将表中所有记录全部修改
DQL:查询表中记录
select * from 表名;
- 语法:
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
- 基础查询
1.多个字段的查询:
select 字段名1,字段名2,... from 表名;
注意:
如果查询所有字段,可以来替代字符列表
2.去除重复:
distinct
3.计算列:
- 一般可以用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2):null参与的计算,结果大多为null
*表达式1:那个字段需要判断是否为null
*表达式2:如果该字段为null后的替换值4.起别名:
as:as也可省略
- 条件查询
1.where子句后面跟条件
2.运算符
* >、<、<=、>=、=、<>
select * from student where age > 20;
*between...and
select * from student where age between 19 and 24;
*in(集合)
select * from student where age in (19,20,21);
*like:模糊查询(_:单个任意字符,%:多个任意字符)
select * from student where name like "马%";
*is null
select * from student where score is null;
*and 或 &&
select * from student where age > 20 && age <16;
*or 或 ||
select * from student where age > 20 || age <16;
*not 或 !
select * from student where age !> 20 ;