数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等。
操作数据库的SQL语言,基于功能,划分为4类:
1、数据定义:DDL(Data Definition Language)
库的创建、删除,表的创建、删除等;
2、数据操纵:DML(Data Manipulation Language)
新增数据、删除数据、修改数据等;
3、数据控制:DCL(Data Control Language)
新增用户、删除用户、密码修改、权限管理等;
4、数据查询:DQL(Data Query Language)
基于需求查询和计算数据;
SQL语法特征
1、不区分大小写
2、可以单行或多行书写,最后以;号结束
3、支持注释
单行注释:-- 注释内容
单行注释:# 注释内容
多行注释:/*注释内容*/(要以换行写更多内容)
PS:不同的数据库软件或不同的系统版本等因素,可能支持的单行注释的方式不一样,以上两种可以尝试,至少会有一种是可以实现单行注释的;
DDL(数据定义:数据库、表相关操作)
一、数据库
查看数据库
SHOW DATABASES;
使用数据库
USE 数据库名称;
创建数据库
CREATE DATABASE 数据库名称 [CHARSET UTF8];
说明:中括号里的内容是可选的内容,可以写,也可以不写,但是建议写上,选择以UTF8作为编码;
删除数据库
DROP DATABASE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();
二、表
查看有哪些表
SHOW TABLES;
说明需要先选择数据库,才能查看当前数据库中的表;
创建表
语法:
CREATE TABLE 表名称(
列名称 列类型,
列名称 列类型,
......
);
列类型说明
int -- 整数
float -- 浮点数
varchar(长度) -- 文本,长度为数字,做最大长度限制,数字必须填写
date -- 日期类型
timestamp -- 时间戳类型
删除表
DROP TABLE 表名称;
DROP TABLE IF EXISTS 表名称;
DML(数据操纵:增、删、改)
数据库操作语言,用来对数据库中表的数据记录进行更新。
关键字:
插入:INSERT
删除:DELETE
更新:UPDATE
一、INSERT - 插入数据
基础语法:
INSERT INTO 表名[ (列1, 列2, 列3,......, 列N) ] VALUES (值1, 值2, 值3, ......, 值N) [ (值1, 值2, 值3, ......, 值N), (值1, 值2, 值3, ......, 值N), ...... (值1, 值2, 值3, ......, 值N)]
说明:中括号中的内容是可选
例:插入一条数据
INSERT INTO 表名(列1, 列2, 列3,......, 列N) VALUES (值1, 值2, 值3, ......, 值N)
例:插入多条数据
INSERT INTO 表名(列1, 列2, 列3,......, 列N) VALUES(值1, 值2, 值3, ......, 值N), (值1, 值2, 值3, ......, 值N), ...... (值1, 值2, 值3, ......, 值N)
插入数据的值跟列是一一对应的,值要符合列的数据类型,才能插入成功。
例:列1是int类型,值1写varcher,则不可以,要写int类型才行
二、DELETE - 删除数据
基础语法:
DELETE FROM 表名称 [WHERE 条件判断];
说明:加WHERE条件,删除符合条件的数据,不加WHERE条件,直接删除整张表所有的数据
条件判断
操作符:= < > >= <= != 等
字段名 = 值
例:
id = 2
name != '小明'
price >= 12.22
三、UPDATE - 更新数据
基础语法
UPDATE 表名 SET 列 = 值 [WHERE 条件判断];
说明:加WHERE条件,更新符合条件的列的值,不加WHERE条件,将整表的列的值全部更新。
条件判断
操作符:= < > >= <= != 等
字段名 = 值
例:
id = 2
name != '小明'
price >= 12.22
例1:带WHERE条件
题目:表中字段名sname,值有小明,将小明的值更新为小雨
语句:UPDATE 表名 SET name = '小雨' WHERE name = '小明'
执行完成后,表中所有叫【小明】的将替换为【小雨】没有小明的名字了
例2:不带WHERE条件
表中字段中sname,有小兵、小雨、小花
语句:UPDATE 表名 SET sname = '小天'
执行完成后,表中name字段的所有的值都显示为【小天】了
注意:字符串的值,要用英文单引号'值'包围起来