一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。
写在前面👀
SQL (Structured Query Language) ,结构化查询语言,用于管理MySQL、Oracle、DB2等关系型数据库(RDBMS,全称Relational Database Management System)
一、初识SQL🤞
1️⃣SQL通用语法✨
- SQL语句可以单行或多行书写,以分号
;结尾 - SQL语句不区分大小写,但建议关键字使用大写
- SQL注释写法
- 单行注释:
-- 注释内容(注意--后面要加空格);#注释内容(MySQL写法) - 多行注释:
/* 注释内容 */
- 单行注释:
2️⃣SQL分类🎉
-
DDL(Data Definition Language)
- 数据定义语言,用来定义数据库对象:数据库,表,列等。关键字:
CREATE,DROP,ALTER等
- 数据定义语言,用来定义数据库对象:数据库,表,列等。关键字:
-
DML(Data Manipulation Language)
- 数据操纵语言,用来对表中数据进行增删改。关键字:
INSERT,UPDATE,DELETE等
- 数据操纵语言,用来对表中数据进行增删改。关键字:
-
DQL(Data Query Language)
- 数据查询语言,用来查询表中的记录。关键字:
SELECT,WHERE等
- 数据查询语言,用来查询表中的记录。关键字:
-
DCL(Data Control Language)
- 数据控制语言,用来定义数据库的访问权限和安全级别及创建用户。关键字:
GRANT,REVOKE,COMMIT,ROLLBACK等
- 数据控制语言,用来定义数据库的访问权限和安全级别及创建用户。关键字:
3️⃣CRUD的意思🎊
- C(Create):创建
- R(Retrieve):查询
- U(Update):修改
- D(Delete):删除
二、DDL:操作数据库、表📦
1️⃣操作数据库(DATABASE)⚽
- 创建:
CREATE
CREATE DATABASE 数据库名; # 创建新数据库
CREATE DATABASE IF NOT EXISTS 数据库名; # 判断此数据库是否存在,再决定是否创建
CREATE DATABASE 数据库名 CHARACTER SET 字符集名; # 创建数据库,并指定字符集
- 查询:
SHOW
SHOW DATABASES; # 查询所有数据库名称
SHOW CREATE DATABASE 数据库名称; # 查询指定数据库的创建语句
- 修改:
ALTER
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名; # 修改指定数据库的字符集
- 删除:
DROP🈲危险操作❗
DROP DATABASE 数据库名; # 删除数据库
DROP DATABASE IF NOT EXISTS 数据库名; # 判断次数据库是否存在,再决定是否删除
- 使用:
USE
SELECT DATABASE(); # 查询正在使用的数据库
USE 数据库名; # 使用(进入)指定数据库
2️⃣操作表(TABLE)🏀
- 创建:
CREATE
注意:最后一列不加逗号,括号后面记得加分号;
/*基本语法*/
CREATE TABLE 表名(
列名1 数据类型1,
列名2 数据类型2,
...
列名n 数据类型n # 最后一列没有逗号
);
/*复制表*/
CREATE TABLE 表名 LIKE 被复制的表名
- 举个栗子,创建一个学生表
CREATE TABLE student(
ID int, # 学号
age int, # 年龄
name varchar(20), # 姓名,最多能装下20个字符(20个汉字或20个字母)
score double(4,1), # 分数,最大四位数(包括小数位),保留一位小数
birthday date, # 生日,以年月日显示
insert_time timestamp # 数据添加时间,时间戳根据系统当前时间记录
);
- 查询:
SHOW,DESC
SHOW TABLES; # 查询某个数据库中的所有表名称
SHOW CREATE TABLE 表名; # 查询指定表的创建语句
DESC 表名; # 查询表结构
- 修改:
ALTER
ALTER TABLE 表名 RENAME 新表名; # 修改表名
ALTER TABLE 表名 CHARACTER SET 字符集名称 # 修改表的字符集
ALTER TABLE 表名 ADD 列名 数据类型 # 添加一列
ALTER TABLE 表名 MODIFY 列名 数据类型 # 修改数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型 # 修改列名和数据类型
ALTER TABLE 表名 DROP 列名 # 删除列名
- 删除:
DROP
DROP TABLE 表名; # 删除表
DROP TABLE IF NOT EXISTS 表名; # 判断表是否存在,再决定是否删除
三、DML:增删改表中数据🧾
1️⃣添加数据🏓
注意:除了数字类型的值,其他类型的值都需要用双引号" "或单引号''括起来
INSERT INTO 表名 values(值1,值2,...值n); # 不加列名,默认给所有列添加值
INSERT INTO 表名(列名1,列名2,...列名n) values(值1,值2,...值n); # 列名和值要一一对应
2️⃣删除数据🏸
DELETE FROM 表名 [WHERE 条件] # 删除符合WHERE条件的数据
/*删除表中所有记录*/
DELETE FROM 表名 # 不加表名,默认删除表中所有数据,但这种方法要一条一条删记录,效率低
TRUNCATE TABLE 表名 # 先删除原来的表,再建一张相同的表,效率高
3️⃣修改数据🎾
UPDATE 表名 SET 列名1=值1,列名2=值2,... # 不加WHERE,默认修改表中所有记录
UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 条件] # 修改符合WHERE条件的记录
写在后面🍻
感谢观看啦✨
有什么不足,欢迎指出哦💖
掘金的运营同学审核辛苦了💗