MySQL基础(之DDL、DML)

DB和DBMS的区别

DBS(数据库系统)包含:DB(数据库)、DBMS(数据库管理系统)。

1、DB,即存储在磁带、磁盘、光盘等外存介质上,按一定结构组织在一起的相关数据集合。

2、DBMS,是一组能够描述、管理、维护数据库的程序系统。它按照一种公有和可控制的方法完成插入新数据、修改和检索原有数据的操作。

SQL语言的分类,分别有什么作用,及其关键字有什么

1、DDL(数据定义语言):用来操作数据库和表

关键字:cteate drop alter

2、DML(数据操作语言):用来对数据库中表的数据进行增删改

关键字:insert delete update

3、DQL(数据查询语言):用来对数据库中表的数据进行查询

关键字:select from where

4、TCL(事务控制语言):用来控制数据库的事务操作

关键字:commit rollback

5、DQL(数据控制语言):用来定义数据库的访问权限和安全级别,及创建用户。

关键字:grant revoke

DDL

创建数据库

sql 复制代码
# 创建数据库
CREATE DATABASE mydb1;
# 创建数据库,并采用指定的字符集
CREATE DATABASE mydb2 CHARACTER SET UTF8;

查看数据库

sql 复制代码
# 查看当前数据库服务器中的所有的数据库
SHOW DATABASES;
# 查看创建数据库mydb1定义的信息
SHOW CREATE DATABASE mydb1;

修改数据库

sql 复制代码
# 将数据库mydb1的字符集修改为GBK
ALTER DATABASE mydb1 CHARACTER SET GBK;

删除数据库

sql 复制代码
DROP DATABASE mydb1;

其他操作

sql 复制代码
# 切换当前使用的数据库
USE mydb1;
# 查询当前使用的数据库
SELECT DATABASE();

表与表之间的关系

  1. 一对一

在实际开发中应用不多。因为一对一的关系,完全可以放到一个表中

  1. 一对多

一对多建表原则:在多的一方,创建一个字段,作为外键作为指向另外一的那一方的主键。

  1. 多对多

多对多的建表原则:需要创建第三张表,在中间表中至少需要有两个字段。这两个字段分别作为外键指向各自一方的主键。

数据类型

int:整型

double:浮点型,例如double(5,2):表示最多有5位,其中必须有两位是小数,即最大值是 999.99

char:固定长度的字符串,例如char(5) : 'aa' 占5位

varchar:可变长度的字符串,例如varchar(5):'aa' 占2位

text:字符串类型

blob:字节类型

date:日期类型,格式是:yyyy-MM-dd

time:时间类型,格式为:hh:mm:ss

timestamp:时间戳类型,yyyy-MM-dd hh:mm:ss,会自动赋值

datetime:时间类型,yyyy-MM-dd hh:mm:ss

DDL使用(表)

sql 复制代码
# DDL操作(表)
# 创建表格
CREATE TABLE t_users(name varchar(50), age INT, gender VARCHAR(10), height INT, weight INT);
# 删除表格
DROP TABLE t_users;
# 查看当前数据库中所有的表
SHOW TABLES;
# 查看创建一个表的信息
SHOW CREATE TABLE t_users;
# 查看一张表的字段信息
DESC t_users;
# 给一张表添加一个字段
ALTER TABLE t_users ADD score DOUBLE(5,2);
# 修改一张表的字段类型
ALTER TABLE t_users MODIFY score INT;
# 修改一张表的字段名
ALTER TABLE t_users CHANGE name uname VARCHAR(50);
# 修改一张表的字符集
ALTER TABLE t_users CHARACTER SET GBK;
# 删除一张表中的字段
ALTER TABLE t_users DROP score;

DML操作

DML指的是对数据库中的数据进行增、删、改的操作。不要和DDL搞混了。
在SQL中,字符串类型和日期类型需要用单引号括起来

空值:null / NULL

sql 复制代码
# 增:INSERT INTO
# 向表t_users插入一条数据,并且给每一个字段进行赋值,小括号中的是字段对应的值。要保证顺序。
INSERT INTO t_users VALUES('lily', 21, 'female', 172, 60);
INSERT INTO t_users VALUES('lucy', 21, 'female', 171, 60);

# 向表t_users插入一条数据,并且对部分字段进行赋值
INSERT INTO t_users (uname, age, gender) VALUES('JimGreen', 22, 'male');
# 向表t_users插入一条数据,并且对部分字段进行赋值,字段的顺序可以随意,但是要保证values后面的值要和前面的字段匹配
INSERT INTO t_users (age, gender, uname) VALUES(10, 'male', 'polly');

插入数据

sql 复制代码
INSERT INTO `t_name` VALUES(值1, 值2, ...)
INSERT INTO `t_name` (字段1, 字段2, ...) VALUES (值1, 值2, ...)

删除数据

sql 复制代码
# 删除数据
DELETE FROM t_student;
# 按照条件进行删除 WHERE
DELETE FROM t_student WHERE sname = '韦一笑';
# 删除掉表中所有的数据
TRUNCATE TABLE t_student;

修改数据

sql 复制代码
# 将所有的数据中的年龄都修改为60
UPDATE t_student SET sage = 60;
# 将姓名为'张三丰'的数据年龄改成60
UPDATE t_student SET sage = 60 WHERE sname='张三丰';
# 将姓名为'谢逊'的数据年龄改成50, java成绩修改成60
UPDATE t_student SET sage = 50, score_java = 60 WHERE sname = '谢逊';
# 将姓名为'灭绝师太'的数据mysql成绩在现有基础上加10
UPDATE t_student SET score_mysql = score_mysql / 10 where sname = '灭绝师太';
相关推荐
陪我一起学编程4 分钟前
关于ORM增删改查的总结——跨表
数据库·后端·python·django·restful
天空之城夢主27 分钟前
PostgreSQL 初体验
数据库·postgresql
数据知道1 小时前
【系统分析师】2009年真题:综合知识-答案及详解
数据库·系统分析师·综合知识
Samesky0012 小时前
Oracle数据库学习笔记 - 创建、备份和恢复
数据库·学习·oracle
大千AI助手2 小时前
Python3安装MySQL-python踩坑实录:从报错到完美解决的实战指南
数据库·python·mysql·mysqlclient·mysql-python
无色海2 小时前
mysql 通用响应数据包详解
数据库
AA-代码批发V哥2 小时前
MySQL-DML语句深度解析与实战指南
数据库·mysql
待什么青丝3 小时前
【linux】驱动学习问题及解决方法
linux·数据库·学习
天天爱吃肉82183 小时前
《零基础读懂新能源汽车》——V2G/电池梯次利用/氢能源生态级技术拆解与商业预言
数据库·python·汽车·能源·创业创新
LuLaLuLaLeLLLLLL3 小时前
MySQL 调优笔记
笔记·mysql·adb