MySQL数据库-DDL与DML

SQL介绍

什么是SQL?

SQL通用语法

SQL分类

DDL数据定义语言

DDL数据库

查询数据库

创建数据库

修改,删除,使用数据库

DDL数据表

数据表的查询

数据表的创建

数据表的修改(结构上的修改)

数据表的删除

DML数据操作语言

新增表数据

修改、删除表数据


SQL介绍

什么是SQL?

Structured Query Language:结构化查询语言。其实就是定义了操作所有关系型数据库的规则

每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。

SQL通用语法

SQL 语句可以单行或多行书写,以分号结尾

可使用空格和缩进来增强语句的可读性

MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。

数据库的注释:

        单行注释:-- 注释内容   #注释内容(mysql特有)

        多行注释:/* 注释内容 */

SQL分类

DDL(Data Definition Language)数据定义语言

用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

DML(Data Manipulation Language)数据操作语言

用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

DQL(Data Query Language)数据查询语言 (最重要!!!)

用来查询数据库中表的记录(数据)。关键字:select, where 等 

DCL(Data Control Language)数据控制语言(了解)

用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

DDL数据定义语言

DDL数据库

查询数据库

(1)查询所有数据库 

SHOW DATABASES;

(2)查询某一个数据库的创建语句

SHOW CREATE DATABASE demo;

创建数据库

(1)创建名为demo的数据库

CREATE DATABASE demo;

(2)创建数据库(判断,如果不存在就创建) (exists)

CREATE DATABASE IF NOT EXISTS demo;

如果已经创建过该数据库——demo,程序不会报错,但是会有警告

(3)创建数据库(指定字符集) (character set)

CREATE DATABASE demo01 CHARACTER SET utf8;

警告不用管!这样子就创建了一个名为demo01且字符集为utf8的数据库。

小案例

创建demo02数据库、如果不存在则创建,指定字符集为gbk

CREATE DATABASE IF NOT EXISTS demo02 CHARACTER SET gbk;

可以使用show create database demo02; 查看字符集

修改,删除,使用数据库

(1)修改数据库的字符集  (character set)

ALTER DATABASE demo CHARACTER SET gbk;

上述SQL代码把demo的字符集修改为了gbk

为了加深记忆,我们将其与上述的(3)创建数据库(指定字符集)进行对比

-- 修改数据库的字符集

ALTER DATABASE 数据库名 CHARACTER SET 字符集;

-- 指定字符集创建数据库

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

(2)删除数据库  (drop)

DROP DATABASE demo01;

(3)删除数据库(判断,如果存在则删除) 

DROP DATABASE IF EXISTS demo02;

(4)使用数据库

USE demo;

(4.1)查询正在使用的数据库

SELECT DATABASE();

DDL数据表

数据表的查询

(1)查询所有的数据表

SHOW TABLES;

因为这里的db1数据库中只有一个 

(2)查询表的结构  (desc)

DESC student;

表的详细结构信息 

(3)查询表的状态信息  (status,like)

SHOW TABLE STATUS FROM 数据库 LIKE '数据表';

SHOW TABLE STATUS FROM db1 LIKE 'student';

数据表的创建

(1)创建数据表

其中约束在后续的章节中详细讲解!

-- 创建商品表(商品编号,商品名称,商品价格,商品库存,上架时间)
CREATE TABLE product(
	id INT,
	NAME VARCHAR(20),
	price DOUBLE,
	num INT,
	insert_time DATE
);

-- 查看product表的详细结构
DESC product;

(补)数据类型(部分)

1. int:整数类型
2. double:小数类型
3. date:日期,只包含年月日     yyyy-MM-dd
4. datetime:日期,包含年月日时分秒     yyyy-MM-dd HH:mm:ss
5. timestamp:时间戳类型    包含年月日时分秒     yyyy-MM-dd HH:mm:ss    
    如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
6. varchar:字符串

数据表的修改(结构上的修改)

(1)修改表名 (rename to)

将product表的名字改为product2

ALTER TABLE product RENAME TO product2;

(2)修改表的字符集 (character set)

将demo数据库中的product2表的字符集改为utf8.

ALTER TABLE product2 CHARACTER SET utf8;

注:可以和上面再对比一下

-- 修改数据库的字符集

ALTER DATABASE 数据库名 CHARACTER SET 字符集;

-- 指定字符集创建数据库

CREATE DATABASE 数据库名 CHARACTER SET 字符集;

-- 修改的字符集

ALTER TABLE 表名 CHARACTER SET 字符集;

(3)单独添加一列 (add)

将product2表添加一列color

ALTER TABLE product2 ADD color VARCHAR(10);

(4)修改表某一列的数据类型 (modify)

ALTER TABLE product2 MODIFY color INT;

已经将varchar(10)改为了int数据类型。 

(5)修改列名和数据类型 (change)

ALTER TABLE 表名 CHANGE 旧列名 新列名 新列的数据类型;

ALTER TABLE product2 CHANGE color address VARCHAR(200);

(6)删除某一列 (drop)

删除address列

ALTER TABLE product2 DROP address;

数据表的删除

(1)删除数据表

DROP TABLE product2;

(2)删除数据表(判断,存在就删除)

DROP TABLE IF EXISTS product2;

DML数据操作语言

新增表数据

(1)给指定列添加数据

列名和值的数量以及数据类型要对应,除了数值类型,其他的数据类型都要加引号,(单、双都可以,推荐单引号

-- 完整写法

INSERT INTO 表名(列名1,列名2,...) VALUES (值1,值2,...); 

INSERT INTO product (id,NAME,price,num) VALUES (100,'张三',5,5);

SELECT * FROM product;

注意:

这一种方式添加一行数据,某一个数据项可以没有数据,当对应列名的位置应该去除,如下:

id为100,name为李四,price为空,num为空。

INSERT INTO product (id,NAME) VALUES (100,'李四');

(2)默认给全部列添加数据

-- 省略列名

INSERT INTO 表名 VALUES (值1,值2,值3,...);

INSERT INTO product VALUES (101,'电脑',9999.99,23);

(3)批量添加数据

-- 多个值之间使用 "," 隔开

INSERT INTO 表名 VALUES (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...);

INSERT INTO product VALUES 
		(101,'电脑',9999.99,23),
		(102,'笔记本',2.99,2),
		(103,'电饭煲',99.99,53);			

SELECT * FROM product;

修改、删除表数据

(1)修改表中的数据  (update)

UPDATE 表名 SET 列名1=值1,列名2=值2,... [WHERE条件];

修改语句中必须加条件,如果不加条件,则会将所有数据都修改

UPDATE product SET price=3500 WHERE NAME = '电脑';

将name值为电脑的price值改为3500。

(2)删除表中的数据 (delete)

DELETE FROM 表名 [WHERE 条件];

删除语句中必须加条件,如果不加条件,则会将所有数据都删除。

DELETE FROM product WHERE NAME = '电脑';

将name值为电脑的记录删除了。

posted @ 2022-02-14 14:06  金鳞踏雨  阅读(28)  评论(0编辑  收藏  举报  来源