目录
概述-数据模型
1、关系型数据库(RDBMS)
概念
建立在关系模型基础上,由多张相互连接的二维表组成的数据库
特点
- 使用表存储结构,格式统一,便于维护
- 使用SQL语言操作,标准统一,使用方便
2、MySQL数据库
数据模型
客户端通过SQL语句连接DBMS(数据库管理系统)来创建数据库或者在数据库里面创建表
- 一个数据服务器当中可以创建多个数据库
- 一个数据库当中可以创建多个表
- 一个表当中可以存储多个记录
通用语法及分类
通用语法
1、SQL语句可以单行或者多行书写,以分号结尾
2、SQL语句可以使用空格/缩进来增强语句的可读性
3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4、注释:
单行注释:-- 注释内容 或 # 注释内容
多行注释:/*注释内容*/
- DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
- DML: 数据操作语言,用来对数据库表中的数据进行增删改
- DQL: 数据查询语言,用来查询数据库中表的记录
- DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限
DDL(数据定义语言)
数据定义语言
数据库操作
-
查询所有数据库:
SHOW DATABASES;
-
查询当前数据库:
SELECT DATABASE();
-
删除数据库:
DROP DATABASE [ IF EXISTS ] 数据库名;
-
使用数据库:
USE 数据库名;
-
创建数据库:
CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];
查询所有数据库
SHOW DATABASES
创建数据库
CREATE DATABASE test
没有在创建,有则忽略
CREATE DATABASE IF NOT EXISTS test
指定字符集
CREATE DATABASE test2 DEFAULT CHARSET utf8mb4
删除数据库
DROP DATABASE test
没有在删除,有则忽略
DROP DATABASE IF EXISTS test
使用数据库
USE test2
查询使用的数据库
SELECT DATABASE()
注意事项
- UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
表操作
- 查询当前数据库所有表:
SHOW TABLES;
- 查询表结构:
DESC 表名;
- 查询指定表的建表语句:
SHOW CREATE TABLE 表名;
- 创建表:
CREATE TABLE 表名( 字段1 字段1类型 [COMMENT 字段1注释], 字段2 字段2类型 [COMMENT 字段2注释], 字段3 字段3类型 [COMMENT 字段3注释], ... 字段n 字段n类型 [COMMENT 字段n注释] )[ COMMENT 表注释 ];
# 创建表
CREATE TABLE users(
id INT COMMENT "编号",
name VARCHAR(50) COMMENT "姓名",
age INT COMMENT "年龄",
gender VARCHAR(1) COMMENT "性别"
) COMMENT "用户表";
# 查询表结构
DESC users
# 查询指定表的建表语句:
SHOW CREATE TABLE users
-
添加字段:
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
-
修改数据类型:
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
-
修改字段名和字段类型:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
-
删除字段:
ALTER TABLE 表名 DROP 字段名;
-
修改表名:
ALTER TABLE 表名 RENAME TO 新表名
-
删除表:
DROP TABLE [IF EXISTS] 表名;
-
删除表,并重新创建该表:
TRUNCATE TABLE 表名;
添加字段
ALTER TABLE users ADD nickname VARCHAR(20) COMMENT "昵称"
修改字段
ALTER TABLE users CHANGE nickname username VARCHAR(30) COMMENT "用户名"
修改字段类型
ALTER TABLE users MODIFY username VARCHAR(50)
删除字段
ALTER TABLE users DROP username
修改表名
ALTER TABLE users RENAME user
删除表
DROP TABLE IF EXISTS user
DML(数据操作语言)
添加数据
指定字段:
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
全部字段:
INSERT INTO 表名 VALUES (值1, 值2, ...);
批量添加数据: 指定字段:
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
批量添加数据: 全部字段:
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
注意事项
- 字符串和日期类型数据应该包含在引号中
- 插入的数据大小应该在字段的规定范围内
更新和删除数据
修改数据:
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [ WHERE 条件 ];
删除数据:
DELETE FROM 表名 [ WHERE 条件 ];
# 插入指定字段 (单条)
INSERT INTO users(id,name,age,gender) VALUES (1, "张三","18","男")
# 插入全部字段 (单条)
INSERT INTO users VALUES(2, "小明","20","女")
# 插入指定字段 (多条)
INSERT INTO users(id,name,age,gender) VALUES (3, "王麻子","28","男"),(4, "小五","38","男")
# 插入全部字段 (多条)
INSERT INTO users VALUES(6, "刘刘","20","女"),(7, "小七","20","女")
# 修改数据
UPDATE users SET name = "大王" WHERE id = 1
UPDATE users SET name = "小王",gender = "男" WHERE id = 2
UPDATE users set age = 18
# 删除数据
DELETE FROM users WHERE id = 7
DELETE FROM users