我的sql笔记

17 阅读3分钟

以下输出来自黑马JAVAWEB+AI课程飞书文档讲义(‌‬⁠⁠‍⁠⁠‍⁠‌‌‌‌⁠‌‌‍‬‬‍‍⁠‍概述 - 飞书云文档)的输入

DDL语句

数据库操作

 //查询所有数据库
 show databases;
 //查询当前数据库
 select database();
 //创建数据库
 create database [ if not exits ] 数据库名 [ default charset utf8mb4];
     /创建数据库时,可以不指定字符集。 因为在MySQL8版本之后,默认的字符集就是 utf8mb4。
 //使用数据库
 use 数据库名;
 //删除数据库
 drop database [ if exists ] 数据库名;
     / - 如果删除一个不存在的数据库,将会报错。
     / - 可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

表操作

 //创建表
 create table 表名(
         字段1 字段1类型 [约束] [comment 字段1注释],
         字段2 字段2类型 [约束] [comment 字段2注释],
         ...
         字段n 字段n类型 [约束] [comment 字段n注释]
 )[ comment 表注释]
     /  - 注意: [ ] 中的内容为可选参数; 最后一个字段后面没有逗号
 ​

约束: 作用在表中字段上的规则,用于限制存储在表中的数据。

在MySQL数据库当中,提供了以下5种约束:

非空,唯一,主键(一行数据的唯一标识,要求非空且唯一),默认,外键

image.png 数据类型(暂略)

表操作-其他操作

 -- 查询当前数据库的所有表
 show tables;
 ​
 -- 查看指定的表结构
 desc 表名 ;   -- 可以查看指定表的字段、字段的类型、是否可以为NULL、是否存在默认值等信息
 ​
 -- 查询指定表的建表语句
 show create table 表名 ;
 ​
 -- 添加字段
 alter table 表名 add  字段名  类型(长度)  [comment 注释]  [约束];
 ​
 -- 比如: 为tb_emp表添加字段qq,字段类型为 varchar(11)
 alter table tb_emp add  qq  varchar(11) comment 'QQ号码';
 ​
 -- 修改字段类型
 alter table 表名 modify  字段名  新数据类型(长度);
 ​
 -- 比如: 修改qq字段的字段类型,将其长度由11修改为13
 alter table tb_emp modify qq varchar(13) comment 'QQ号码';
 ​
 -- 修改字段名,字段类型
 alter table 表名 change  旧字段名  新字段名  类型(长度)  [comment 注释]  [约束];
 ​
 -- 比如: 修改qq字段名为 qq_num,字段类型varchar(13)
 alter table tb_emp change qq qq_num varchar(13) comment 'QQ号码';
 ​
 -- 删除字段
 alter table 表名 drop 字段名;
 ​
 -- 比如: 删除tb_emp表中的qq_num字段
 alter table tb_emp drop qq_num;
 ​
 -- 修改表名
 rename table 表名 to  新表名;
 ​
 -- 比如: 将当前的emp表的表名修改为tb_emp
 rename table emp to tb_emp;
 ​
 -- 删除表
 drop  table [ if exists ]  表名;
 ​
 -- 比如:如果tb_emp表存在,则删除tb_emp表
 drop table if exists tb_emp;  -- 在删除表时,表中的全部数据也会被删除。

🌟DML语句

 -- 向指定字段添加数据
 insert into 表名(字段名1,字段名2) values(值1,值2);
 -- 全部字段添加数据
 insert into 表名 values(值1,值2, ...);
 -- 批量添加数据(指定字段)
 insert into 表面 (字段名1,字段名2) values(值1,值2),(值1,值2);
 -- 批量添加数据(全部字段)
 insert into 表名 values(值1,值2, ...),(值1,值2, ...);
 ​

注意事项:

  1. 字符串和日期型数据应该包含在引号中。
  2. 插入的数据大小,应该在字段的规定范围内。

 ​delete from 表名  [where  条件] ;

image.png

 ​update 表名 set 字段名1 = 值1,字段名2 = 值2, ...[where 条件];

image.png

🌟DQL语句(select)

 ​select
 字段列表
 from
 表名列表
 where 
 条件列表
 group by
 分组字段列表
 having
 分组后条件列表
 order by 
 排序字段列表
 limit
 分页参数