mysql概述
目录
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase (DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System (DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 Structured Query Language (SQL)
MySQL官方提供了两种不同的版本:
- 社区版 (MvSOL Community Server)免费,MySQL不提供任何技术支持
- 商业版(MySQL Enterprise Edition)收费,可以试用30天,官方提供技术支持
关系型数据库(RDBMS)
概念: 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
特点:
- 使用表存储数据,格式统一,便于维护
- 使用SQL语言操作,标准统一,使用方便
sql
SQL通用语法:
- SQL语句可以单行或多行书写,以分号结尾。
- SOL语句可以使用空格/缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
- 注释:
- 单行注释: – 注释内容 或 # 注释内容(MySQL特有)
- 多行注释: /*注释内容”/
SQL分类:
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
DDL
DDL-数据库操作
- 查询
- 查询所有数据库
SHOW DATABASES; - 查询当前数据库
SELECT DATABASE() ;
-
创建
CREATE DATABASE[IF NOT EXISTS] 数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则]; -
删除
DROP DATABASE[IF EXISTS]数据库名; -
使用
USE 数据库名;
例:
#创建数据库
create database itcase;
Query OK, 1 row affected (0.01 sec)
create database itcase;
ERROR 1007 (HY000): Can't create database 'itcase'; database exists#无法创建,因为itcase数据库存在
create database if not exists itcase;#if not exists存在不创建,不存在创建
create database itheima default charset utf8mb4;#utf8占三个字节 utf8mb4四个字节
#删除
drop database test;
drop database if exists text;#如果存在删除,不存在则不删除
use itcase;
#使用数据库
use itcase;#database change
#查询当前数据库
select database();#必须加括号
系统自带数据库:
- information_schema
- mysql
- performance_schema
- sys
DDL-表操作-查询和创建
#展示当前数据库的所有表
show tables;
use itcase;#不要在系统数据库进行操作
creat table tb_user(
id int comment '编号',
name varchar(50) comment '姓名',#MySQL里字符串用varchar,varchar(50)代表有50位;Java里字符串用string,字符用char
age int commnet'年龄',
gender varchar(1) comment '性别'#注意:最后一句不要加逗号
)comment'用户表';
#看查表是否创建完成
show tables;
#查询表结构
desc tb_user;
#展示建表语句
show create table tb_user;
engine是存储引擎 ;default charset(默认字符集)=utf8mb4 ;collate(默认排序规则)
数据类型
数值类型
123.34
M(精度):5(数字位数)
D(标度):2(小数位数)
age TINYINT UNSIGNED(age数值范围不可能为负数且数字小,则选取TINYINT UNSIGNED)
score double(4,1)(有小数,数字小;4代表精度,1代表标度)
字符串类型
blob:二进制(视频,音频,安装包)
text:文本
#定长字符串
char(10)//即使存一个字符,也会占用10个字符空间,未占用的空间也会用空格进行补位(性能好)
性别 gender char(1)//只会存储一个汉字
#变长字符串
varchar(10)//存几个字符,占几个字符的空间(性能较差,根据内容计算占用的空间)
用户名 username varchar(50)//用户输入不确定,是变长
日期类型
常用:
- date
- time
- datetime
birthday date//生日适合使用date类型
案例
create table emp(
id int comment'编号',
worknum varchar(10) comment'工号',
name varchar(10) comment'姓名',
gender char(1) commnet '性别',
age tinyint unsigned comment '年龄',#无符号
idcard char(18) comment '身份证号',
entrydate date comment '入职'
)comment '员工表';
#查询表结构
desc emp;
DDL-表操作-修改
添加(增)
- 注意:方括号里面的为可添加选项
#为emp表增添一个新加的字段“昵称”为nickname,类型为varchar(20)
alter table emp add nickname varchar(20) comment'昵称';
#查询表结构,查看是否添加字段
desc emp;
Test results:
修改(改)
#将emp表的nickname字段修改为uername,类型为varchar(30)
alter table emp change nickname username varchar(30) comment'用户名';
#查看是否修改成功
desc emp;
Test results:
删除(删)
#将emp表的字段username删除
alter table emp drop username;
#查看表是否删除(查看表结构)
desc emp;
修改表名(改)
#将emp表的表名修改为employee
alter table emp rename to employee;
desc emp;#会显示itcase.emp不存在
#查看数据库中的表
show tables;
Test results:
删除表(删)
注意:在删除表时候,表中的全部数据也会被删除
#想删除表tb_user
drop table if exists tb_user;
#查看数据库中的表
show tables;
Test results:
truncate table employee;#在删除表时候,表中的所有数据会也会被删除;在重新创建该表的时候,该表会成为全新的表,里面的数据都没有,只留下空表的表结构
#查看数据库中的表
show tables;
Test results:
DDL-总结
mysql图形化界面
`推荐选择DataGrip``
如何下载和配置DataGrip
选择安装位置
在桌面创建图标
选择运行DataGrip
选择免费使用
设置新项目名称
选择数据来源
设置User和Password
Download下载 --> Test Connection(Succeeded)
更新数据库
如何在DataGrip中创建数据库或表
schema
也是数据库,使用效果和database
相同
修改表
自动生成语句
用sql语句,编写数据库
DML(Database Manipulation Language数据操作语言)
对数据库中表的数据记录进行增删改操作
DML-添加数据