Mysql基础知识
Mysql概述
数据库相关概念
数据库:存储数据的仓库,数据是有组织的进行存储,Database(DB)。
数据库管理系统:操纵和管理数据库的大型软件,DataBase Management System(DBMS)。
SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准,Structured Query Language(SQL).
主流的关系型数据库管理系统:Oracle,Mysql ,Microsoft SQL Server等等。
关系型数据库(RDBMS):建立在关系模型基础上,由多张相互连接的二维表组成的数据库。通过表结构存储数据的数据库称之为关系型数据库,相反,不通过表结构存储数据的数据库称为非关系型数据库。
数据模型:客户端--->DBMS--->构建数据库,表,添加表记录等等。
客户端连接:命令行方法:cmd 输入:
mysql -u root -p
Mysql数据库的启动和停止
方式一:win+R,输入services.msc 打开本地服务,找到mysql选择关闭服务等。
方式二:可通过任务管理器停止服务。默认mysql是开机自动启动的。
方式三:cmd命令
启动:net start mysql80
停止:net stop mysql80
SQL
SQL通用语法
SQL语句可以单行或多行书写,以分号结尾。
SQL语句可以使用空格、缩进来增强语句的可读性。
MySQL数据库的SQL语句不区分大小写,关键字建议大写。
注释:
单行注释:--注释内容 或 #注释内容(MySQL特有)
多行注释:/ * 注释内容 */
SQL分类
分类 | 全称 | 说明 |
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库、表、字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库表中的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
DDL-数据库操作
查询
# 查询当前服务器中所有数据库,注意是databases,复数,分号结尾
SHOWDATABASES;
# 查询当前数据库
SELECTDATABASE();
创建
CREATEDATABASE[IFNOTEXISTS] 数据库名 [DEFAULTCHARSET 字符集][COLLATE 排序规则];
# 例如:create database itqiulimei default charset utf8mb4; #utf8mb4支持存储4个字节的内容
删除
DROPDATABASE[IFEXISTS] 数据库名;
使用
use 数据库名;
DDL-表操作-查询
查询当前数据库所有表,前提是要先进入到这个数据库,用use指令使用这个数据库
SHOWTABLES;
查询表结构
DESC 表名;
查询指定表的建表语句
SHOWCREATETABLE 表名;
DDL-表操作-创建
# 注意:[...]为可选参数,最后一个字段后面没有逗号
CREATETABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
......
字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
DDL-表操作-数据类型
Mysql中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
案例:
createtable emp(
id int,
wordno varchar(10),
name varchar(10),
gender char(1),
age tinyintunsigned,
idcard char(18),
entrytime date
);
DDL-表操作-修改
添加字段
ALTERTABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];
修改指定字段的数据类型
ALTERTABLE 表名 MODIFY 字段名 新数据类型(长度);
同时修改字段名称和字段数据类型
ALTERTABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
删除字段
ALTERTABLE 表名 DROP 字段名;
修改表名
ALTERTABLE 表名 RENAMETO 新表名;
DDL-表操作-删除
删除表
DROPTABLE[IFEXISTS] 表名;
删除指定表,并重新创建该表,意思是将原表的数据全部清空,只剩下表结构,即一张空表。
TRUNCATE TABLE 表名;