携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
1. 安装
- 说到mysql 怎么都躲不开的就是MySQL安装,之前写的一篇博客,已经很详细的说明了mysql 的安装 可以参考一下,navicate绿色版安装包也包含在内:
mysql数据库的安装与navicat 的使用乄捷径的博客-CSDN博客使用navicat需要安装mysql吗
2. 基本指令使用
2.1 数据库的相关概念
- DB database 数据文件(表格)
- DBMS data base Management System 数据库管理系统 MySQL Oracle DB2 SQLServer
- SQL Structured Questionery Language语言,专门用来操作数据库的语言,只要是数据库支持SQL都可以进行增删改查(CURD)
2.2 数据库的基本操作指令
- SHOW DATABASES; 查看所有数据库;
- 新建表格 create database 数据库名 ;
- 导入数据库 source 地址
- 进入数据库表 use 表名 ;
- show tables ; 显示表
- select * from 表名;
2.3 语法与分类
- 不区分大小写,命名的时候推荐使用 ' 单引号 ',"双引号也可以",每条SQL表达式结束之后都以 ;
- 据库里面的null不是数据类型,不能比较
- 数据库不能插入null值 and优先级比or高
- 字段代表表格中的列
- 表格中的行,叫做一条记录,或者一条元组
- 结束 SQL关键字之间以 空格 进⾏分隔 SQL之间可以不限制换⾏(可以有空格的地⽅就可以有换⾏)
- SQL语言的分类:
| 分类 | 类型 | 作用 | ||
|---|---|---|---|---|
| DQL | Data Query Language | 数据查询语言 | Select | 查询数据表 |
| DML | Data Manipulation Language | 数据操作语言 | insert,delete,update | 完成数据表中的数据添加(存储)、删除、修改 |
| DDL | Data Definition Language | 数据定义语言 | create,drop,alter | 完成数据库、创建数据表 |
| DCL | Data Control Language | 数据控制语言 | 完成事务管理等控制性操作 |
3. DDL 数据库操作
3.1创建数据库
- 创建数据库
- create database 数据库名;
- create database is not exists 数据库名; // 判断如果数据库不存在进行创建
- create database character set utf8; // 创建数据库的时候 指定字符编码集
3.2 查询数据库
- show databases;
- show create database 数据库名; // 这样可以查看数据的字符编码集
3.3 修改数据库
- alter database 数据库名 character set gbk; // 修改数据库的字符编码集
3.4 删除数据库
- 删除数据库会删除数据库的所有数据表和其中的数据
- drop database 数据库名
- drop database if exsists 数据库名; // 如果存在才进行删除,防止报错
3.5 切换数据库
use 数据库名
3.6 数据库的表格操作
- desc 数据库中的表名 ; // 查询数据库中的表结构
- show tables; // 查看数据库中的所有表
- drop table 表名; // 删除数据表
- drop table if exists 表名; // 如果存在则删除,防止报错
- alter table 原来表名 rename to 新的表名; // 修改数据库表名
- alter table 表名 character set utf8; // 修改数据库的字符集,默认字符集与数据库一致
- alter table 表名 add 字段名 varchar(200) // 添加列(字段)
- alter table 表名 change 旧的字段名 新的字段名 类型 ; // 修改列(字段)的列表和类型
- alter table 表名 modify 字段名 字段类型 ; // 修改字类型
alter table stus modify stu_sex varchar(20);- alter table stus drop 字段名; // 删除字段
4. 案例
4.1案例1
- 需求: 要求在自定义数据库中创建一张学生表,有姓名,年龄,电话,qq等字段;
// not null 表示此字段必填 unique 唯一,不可重复,每条语句用的是,隔开,不是分号,要注意~
create table students(
stu_name char(8) not null,
stu_age int not null,
stu_tel char(11) not null unique,
stu_qq char(11) unique
);
补充where 条件查询
- 根据条件查询 where 字段 符号 值
- = !=或<> > >= < <=
- null 空
- is null 为空
- in 包含在里面(值1,值2,值3)
- and 并且 or 或者
- between 之间 类似于>= and =<
- like 模糊查询 %匹配任意(次 类型)字符 _单个任意字符
4.2案例2
需求: 在已知的数据表中使用 where 条件查询, 以emp (员工表)表为例
create database test; // 创建一个数据库
source F:\mysql\wc.sql //导入数据库文件
select * from emp where ename = 'SMITH'; //查询emp表中ename 为 'SMITH' 的员工所有信息
select * from emp where COMM is null; //查询emp表中 COMM 为null 如果是null 不能=进行判断
select * from emp where sal>=3000; //查询emp表中 sal> 3000 的所有员工
select * from emp where sal>1000 and(deptno = 30 or deptno = 10); //查询emp表中 符合条件的所有员工
select * from emp where ename in ('ALLEN','KING','随便'); //查询emp表中 查询多个员工
select * from emp where sal >1000 and sal<= 3000; //查询emp表中 查询sal范围的员工