数据库
数据库、数据表、数据之间的关系
DDL 操作数据库和数据表
/*
查询所有数据库
-- 标准语法:
SHOW DATABASES;
*/
SHOW DATABASES;
/*
查询某个数据库的创建语句
标准语法:
SHOW CREATE DATABASE 数据库名称
*/
SHOW CREATE DATABASE mysql;
/*
创建数据库
标准语法:
CREATE DATABASE 数据库名称;
*/
-- 创建0809开始自学的数据库内容
CREATE DATABASE case0806;
/*
为了避免出现上面数据库创建语句,如果重复时,创建报错,
故使用下面的数据库创建语句来避免出现这种错误出现,
下面语句执行后,若存在同样的数据库,便只是会出现警告
并不会报错
创建数据库,判断、如果不存在则创建
标准语法:
CREATE DATABASE IF NOT EXISTS 数据库名称;
*/
CREATE DATABASE IF NOT EXISTS case0806;
/*
创建数据库,并指定字符集
标准语法:
CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
*/
CREATE DATABASE case0806 CHARACTER SET utf8;
-- 查看数据库的字符集
SHOW CREATE DATABASE case0806;
CREATE DATABASE IF NOT EXISTS case0806 CHARACTER SET utf8;
SHOW CREATE DATABASE case0806;
/*
修改数据库的字符集
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
*/
ALTER DATABASE case0806 CHARACTER SET gbk;
SHOW CREATE DATABASE case0806;
ALTER DATABASE case0806 CHARACTER SET utf8;
/*
删除数据库:
DROP DATABASE 数据库名称;
*/
DROP DATABASE case0806;
/*
删除数据库,判断、如果存在则删除:(与前面的创建数据库类似)
DROP DATABASE IF EXISTS 数据库名称;
*/
DROP DATABASE IF EXISTS db2;
/*
使用数据库
USE 数据库名称;
*/
USE case0806;
/*
查询当前使用的数据库
SELECT DATABASE();
*/
SELECT DATABASE();
-- 操作数据表
-- 使用mysql数据库
USE mysql;
/*
查询所有的数据表
SHOW TABLES;
*/
SHOW TABLES;
/*
查询表结构:
DESC 表名;
*/
-- 查询库中所有的表
DESC USER;
/*
查询数据表的字符集
SHOW TABLE STATUS FROM 数据库名称 LIKE '表名';
*/
SHOW TABLE STATUS FROM mysql LIKE 'user';
/*
创建数据表
CREATE TABLE 表名(
列名 数据类型 约束,
列名 数据类型 约束,
...
列名 数据类型 约束
);
*/
CREATE TABLE product(
id INT,
NAME VARCHAR(20),
price DOUBLE,
stock INT,
insert_time DATE
);
-- 查询库中所有的表
DESC product;
-- 修改数据表
/*
修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
*/
ALTER TABLE product RENAME TO product2;
/*
修改表的字符集
ALTER TABLE 表名 CHARACTER SET 字符集名称;
*/
SHOW TABLE STATUS FROM case0806 LIKE 'product';
ALTER TABLE product CHARACTER SET gbk;
/*
单独添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
*/
ALTER TABLE product ADD color VARCHAR(10);
/*
修改某列的数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
*/
ALTER TABLE product MODIFY color INT;
DESC product;
/*
修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
*/
ALTER TABLE product CHANGE color address VARCHAR(200);
/*
删除某一列
ALTER TABLE 表名 DROP 列名;
*/
ALTER TABLE product DROP address;
-- 数据表删除
/*
DROP TABLE 表名;
*/
DROP TABLE product;
/*
删除数据表(判断,如果存在则删除)
DROP TABLE IF EXISTE 表名;
*/
DROP TABLE IF EXISTS product;
DML 表数据的增删改
-- 新增表数据
-- 列名和值的数量以及数据类型要对应,除了数字类型,其他数据类型的数据都需要加引号(单弓双引都行,推荐单引)。
/*
给指定列添加数据
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);
*/
INSERT INTO product(id,NAME,price,stock,insert_time) VALUES (1,'qq',1999.99,25,'2020-02-02');
INSERT INTO product (id,NAME,price) VALUES (2,'但是',3999.99);
/*
给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,...);
*/
INSERT INTO product VALUES (3,'冰袖',1500,35,'2030-02-03');
/*
批量添加数据
INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...),(值1,值2,...),...;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),...;
*/
-- 修改和删除表数据
/*
修改表中的数据
UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 条件];
中括号表示可选,可以有where也可以没有,在这里需要有,因为没有的话会删除全部的数据
修改语句中必须加条件,如果不加条件,则会将所有数据都修改。
*/
UPDATE product SET price=3500 WHERE NAME='qq';
UPDATE product SET price=1800,stock=36 WHERE NAME='但是';
/*
删除表中的数据
DELETE FROME 表名 [WHERE 条件];
删除语句中必须加条件,如果不加条件,则会将所有数据都删除。
*/
DELETE FROM product WHERE NAME='但是';
DELETE FROM product WHERE stock=25;