目录
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)创建数据库(指定字符集)进行对比
(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 db1 LIKE 'student';
数据表的创建
(1)创建数据表
其中约束在后续的章节中详细讲解!
-- 创建商品表(商品编号,商品名称,商品价格,商品库存,上架时间)
CREATE TABLE product(
id INT,
NAME VARCHAR(20),
price DOUBLE,
num INT,
insert_time DATE
);
-- 查看product表的详细结构
DESC product;
(补)数据类型(部分)
数据表的修改(结构上的修改)
(1)修改表名 (rename to)
将product表的名字改为product2
ALTER TABLE product RENAME TO product2;
(2)修改表的字符集 (character set)
将demo数据库中的product2表的字符集改为utf8.
ALTER TABLE product2 CHARACTER SET utf8;
注:可以和上面再对比一下
(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 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)
(2)
(3)