2018.11.28_MySQL基础_总结

 2018.11.28

今日内容

1.数据库的基本概念

2.MySQL数据库软件

  1)安装

  2)卸载

  3)配置

3.SQL

 

一、数据库的基本概念
数据库概念:  用来存储和管理数据的仓库,本质上是一个文件系统
特点
  (1)持久化存储数据
  (2)存储和管理数据
  (3)使用统一的方式进行操作(SQL)

常见的数据库
  MySQL:免费的,开放源代码
  Oracle:收费的,不开放源代码

 

 二、 MySQL数据库软件
安装时注意事项:允许root用户远程连接的√最好勾上
卸载的步骤:
  (1)复制安装目录下my.ini中datadir指向的路径,例如:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
  (2)停止MySQL服务,卸载MySQL
  (3)删除datadir路径中MySQL文件夹(C:\ProgramData目录下,是隐藏文件夹)


MySQL服务的启动和关闭
  (1)开始菜单搜索cmd.exe
  (2)右键cmd.exe,以管理员方式运行
  (3)执行 net start mysql 开启MySQL服务
  (4)执行 net stop mysql 停止MySQL服务


MySQL登录和退出
登录
  (1)mysql -u用户名 -p密码
  (2)mysql -h地址 -u用户名 -p密码
  (3)mysql --host=地址 --user=用户名 --password=密码
退出
  (1)exit
  (2)quit


MySQL的目录结构
安装目录:basedir="D:/MySQL/"
配置文件 my.ini
数据目录:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
数据库:文件夹
表:文件
数据:文件中的具体内容

三、SQL
概念:Structured Query Language 结构化查询语言,可以操作所有关系型数据库
通用语法
  (1)SQL语句可以单行或多行书写,以;号结尾
  (2)使用空格和缩进增强语句的可读性
  (3)MySQL中关键字不区分大小写,建议大写
注释:
  -- 注释内容:单行注释,-- 后面必须写空格
  # 注释内容:单行注释,# 后面的空格可有可无(MySQL特有)
  /*注释内容*/:多行注释

SQL分类
DDL (Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

DML (Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

DQL (Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等

DCL (Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

DDL 操作数据库和表
操作数据库:CRUD


C(Create)创建
create database 数据库名称;      -- 创建指定名称的数据库
create database 数据库名称 character set 字符集名称;     -- 创建指定名称的数据库并指定字符集
create database if not exists 数据库名称;     -- 指定名称数据库不存在,则创建
create database if not exists 数据库名称 character set 字符集名称;     -- 指定名称数据库不存在,则创建,并指定字符集

R(Retrieve)查询
show databases;   -- 查询所有数据库的名称
show create database 数据库名称;   -- 查询某个数据库的创建语句(字符集)

U(Update)修改
alter database 数据库名称 character set 字符集名称;  -- 修改指定名称数据库的字符集

D(Delete)删除
drop database 数据库名称;  -- 删除指定名称的数据库
drop database if exists 数据库名称;   -- 指定名称数据库存在,则删除

使用数据库
select database();  -- 查询当前正在使用的数据库
use 数据库名称;  -- 使用指定名称的数据库

操作表
C(Create)创建
语法
create table 表名(列名1 数据类型,...列名n 数据类型);
注意事项:最后一列,不用写逗号

数据类型
int:整数类型
double:小数类型(整体有几位,小数占几位)
date:日期,包含年月日 yyyy-MM-dd
datetime:日期,包含年月日时分秒 yyyy-MM-dd HH-mm-ss
timestamp:时间戳,包含年月日时分秒,如果赋值为null或者不赋值,会自动赋值当前系统时间
varchar:字符串,例如:zhangsan 8个字符,张三 2个字符

复制表
create table 表名 like 要复制的表名;

R(Retrieve)查询
show tables;  -- 查看当前数据库下所有表的名称
desc 表名;  -- 查询指定表的结构

U(Update)修改
alter table 表名 rename to 新表名;  -- 更改表名
alter table 表名 character set 字符集名称;  -- 修改表的字符集
alter table 表名 add 列名 数据类型;  -- 添加一列
alter table 表名 change 列名 新列名 新数据类型;  -- 修改一列的列名和数据类型
alter table 表名 modify 列名 新数据类型;  -- 修改一列的数据类型
alter table 表名 drop 列名;  -- 删除一列

D(Delete)删除
drop table 表名;  -- 删除指定名称的表
drop table if exists 表名;  -- 指定名称的表存在,则删除

SQLYog的使用
注意事项:使用前必须确保MySQL的服务已经开启,通过cmd可以进行登录

DML 增删改表中的数据
添加数据: insert into 表名(列名1,...,列名n) values(值1,...,值n);
注意事项
  (1)列名和值必须一一对应
  (2)给所有列添加值时,列名可以省略不写
  (3)除数字类型外,其他类型必须适应引号引起来(单引号,双引号都可以)

修改数据:  update 表名 set 列名1=值1,...,列名n=值n [where 条件];
注意事项:如果不加条件,则修改表中所有记录

删除数据: delete from 表名 [where 条件];
注意事项:如果不加条件,则删除表中所有记录
删除表中所有记录,有两种方式:
delete from 表名:不推荐使用,逐行删除,效率低
truncate table 表名:推荐使用,先删除表,再创建新表,效率更高

DQL 查询表中的数据
语法
select 字段列表
from 表名列表
where 条件列表
group by 分组字段
having 分组后的条件
order by 排序的字段
limit 分页限定

基础查询
select 字段1,...,字段n from 表名;  -- 查询多个字段
select * from 表名;  -- 查询所有字段
select distinct 字段名 from 表名;  -- 去除重复

计算列
可以使用四则运算计算一些列的值(必须是数值类型的列)

注意事项
  (1)null参与的运算,结果都为null
  (2)可以使用ifnull处理,ifnull(A,B),A是要判断的列,B是为null时替换的值

起别名: select 字段名1 as 别名1,...,字段名n as 别名n from 表名;(as可以省略不写)

条件查询
运算符
  (1)基本运算符:> < >= <= = != <>
  (2)并且:and,between...and...,&&
  (3)或者:or,in(值1,值2,值3),||
  (4)是否为null:is null,is not null

模糊查询:  select * from 表名 where 字段 like 'xxx';
占位符
  _:一个任意字符
  %:多个任意字符

猜你喜欢

转载自www.cnblogs.com/xcs842590060/p/10027477.html