第3步---MySQL的DDL和DML操作

第3步---MySQL的DDL和DML操作

1.DDL操作

Data Defination Language 数据定义语言。创建数据库和表的不涉及到数据的操作。

1.1DDL基本操作

1.1.1数据库相关操作

  1. ddl:创建数据库,创建和修改表

  2. 对数据库常见的操作:

操作数据库

复制代码
-- 展示数据库
SHOW DATABASES;

-- ================数据库相关操作==========================
-- 创建数据库
CREATE DATABASE if NOT  EXISTS lxz;

-- 使用数据库
USE lxz;

-- 删除数据库
DROP DATABASE if  EXISTS lxz;

-- 修改数据库编码
ALTER DATABASE lxz CHARACTER SET utf8mb4;
ALTER DATABASE lxz CHARACTER SET utf8;

2.1.2数据库表的相关操作

复制代码
-- =================表的相关操作========================
-- 删除数据库表
DROP TABLE IF EXISTS student;

CREATE TABLE IF NOT EXISTS student(
sid INT,
name VARCHAR(20),
gender VARCHAR(20),
age int,
birth date,
address VARCHAR(20)
)

字段约束
字段名 字段类型(宽度) 约束条件 comment '字段说明',
-- 删除数据库表
DROP TABLE IF EXISTS student;

CREATE TABLE IF NOT EXISTS student(
sid INT,
name VARCHAR(20) COMMENT '姓名',
gender VARCHAR(20),
age int,
birth date,
address VARCHAR(20)
)[表的设置]



-- 查看当前数据库所有的表
SHOW TABLES;

-- 查看指定表的创建语句
SHOW CREATE TABLE student;

-- 查看表结构 属性的结构
DESC student;

-- 删除表
drop TABLE if EXISTS student;

-- 删除数据库表
DROP TABLE IF EXISTS student;

CREATE TABLE IF NOT EXISTS student(
sid INT,
name VARCHAR(20) COMMENT '姓名',
gender VARCHAR(20),
age int UNSIGNED, -- 设置无符号
birth date,
address VARCHAR(20),
score DOUBLE
)

2.1.3表的字段数据类型

数值类型:

  • tinyInt:1字节。有符号 ,-128-127 ,无符号的:0-255

  • smallInt:2字节。0-65535。-32768-32767

  • mediumInt:3字节

  • Int或Integer:4字节

  • BigInt:8字节。很大

浮点数

  • Float:4字节

  • double:8字节

  • decimal:socore DECIMAL(2,1) 整数部分+小数部分

字符串类型

  • char:定长。0-255

  • varchar:0-65535

  • tinyBlob:不超过255字符的二进制字符串

  • blob:0-65535

  • text:长文本

  • mediumBlob:二进制形式的中等长度文本数据

  • mediumText:中等长度的长文本数据

  • longBlob:二进制形式的极大文本数据

  • longText:极大文本数据

日期类型

  • date:yyyy-mm-dd 日期类型

  • time:hh:mm:ss 时间

  • year:yyyy年份

  • datetime:给什么时间就是什么时间

  • TIMESTAMP:时间戳和当前的时区有关系的

    b YEAR,
    c date,
    d time,
    f TIMESTAMP,
    g datetime

2.1.4修改表结构

修改表的列的数据

复制代码
​
复制代码
-- 添加新的列
ALTER TABLE student ADD dept VARCHAR(20) DEFAULT '计算机系' ;
ALTER TABLE 表名 ADD ;列名 类型(长度) 约束 ;

-- 修改列的名称和类型
-- 修改已有的列
ALTER TABLE student CHANGE dept department CHAR(30);


-- 删除列
ALTER TABLE student DROP test;


-- 修改表名
RENAME 旧表名 student TO 新表名称;
RENAME TABLE student TO new_student;

1.2DML

data manager langunage 数据库操作语言

就是对数据的增删改查的操作

1.2.1数据插入INSERT

复制代码
-- 数据插入
INSERT INTO new_student(sid,name,gender) VALUES('1','张三','男');
INSERT INTO new_student(sid,name,gender) VALUES('1','张三','男'),('2','李四','男');

-- 不写(sid,name,gender)可以插入所有的数据但是需要前后对应,默认是全部的属性

2.2.2数据更新UPDATE

复制代码
-- 修改数据
-- 修改一个属性
UPDATE new_student SET name='张三修改' WHERE sid ='1';

-- 修改多个属性
UPDATE new_student SET name='张三修改',gender='女' WHERE sid ='1';

-- 找到唯一的id的数据并也修改了
UPDATE new_student SET name='张三修改',gender='女', sid='11' WHERE sid ='1';

2.2.3数据删除DROP

复制代码
-- 删除数据
DELETE FROM new_student WHERE sid='1';
-- 删除全部
DELETE FROM new_student;
TRUNCATE TABLE new_student; -- 把整个表全部删除并创建一个新的表
TRUNCATE  new_student ;

主键和事务的操作是不一样的。

相关推荐
2401_891409261 小时前
量化数据13:港股分钟K线、Level2逐笔Tick、十档盘口和港股通历史数据的批量提取
数据库
w-w0w-w7 小时前
SQL注入
网络·数据库·sql
tianyuanwo7 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼7 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
IvorySQL8 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶9 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河9 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士6669 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊10 小时前
MySQL 的四种隔离级别
java·数据库·mysql
say_fall10 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++