翼度科技»论坛 编程开发 mysql 查看内容

MySQL基础知识分享(一)

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
写在前面

大家好,不知道前面的20题大家写的怎么样,前面分享的20题是SQL中查询的基础题型,这部分被称为DQL部分,是每个学习MySQL必须要学会的部分,下面就让我来介绍MySQL中的其他部分。
回顾DQL部分

先介绍一下sql语句的语法和执行顺序(序号代表顺序由1~9):
  1. select 查询列表         (7)
  2. from 表名              (1)
  3. [
  4. join type join 表2     (2)
  5. on 连接条件。           (3)
  6. where 筛选条件          (4)
  7. group by 分组字段       (5)
  8. having 分组后的筛选     (6)
  9. order by 排序的字段     (8)
  10. ]
  11. limit [offset] ,size;  (9)
  12. 其中:
  13. select: 指定要查询的列或表达式,用于检索数据。
  14. from: 指定要查询的表名,表示数据来自哪个表。
  15. join: 将两个或多个表连接起来进行查询,有不同类型的连接(如内连接、左连接、右连接等)。
  16. on: 指定连接条件,即指定两个表如何关联。
  17. where: 筛选条件,用于过滤数据,只返回满足条件的行。
  18. group by: 按指定列对结果集进行分组,通常与聚合函数一起使用(如 SUM、COUNT)。
  19. having: 对分组后的结果应用筛选条件,过滤分组后的结果集。
  20. order by: 指定结果集的排序方式,可以是升序(ASC)或降序(DESC)。
  21. limit: 限制查询返回的行数,常与 offset 一起使用,表示从第几行开始取数据,取多少行。
  22. offset: 要显示条目的起始索引(起始索引从0开始)。
  23. size: 要显示的条目个数。
复制代码
当你在编写 SQL 查询时,通常会使用这些来获取想要的数据,是MySQL中DQL的基本语法,要想熟练掌握它,需要不断通过sql习题来增强记忆,学会分析问题的思路,最后就能快速地实现需求。
DML(数据操作语言)部分

以下是数据库操作部分的语法及其示例:
插入数据:
  1. ## 方式一:insert into 表名 values(,,) ;
  2. # 示例 :
  3. INSERT INTO beauty
  4. VALUES (17,'关晓彤','女',NULL,'18788888888',NULL,NULL);
  5. ## 方式二:insert into 表名 set 1,2,3;
  6. # 示例 :
  7. INSERT INTO beauty
  8. SET id=18,name='张静怡',phone='19088888888';
复制代码
更新数据:
  1. ## 单表更新:
  2. update  表名  set xx=xx ;
  3. # 示例 :
  4. UPDATE boys SET boyName='李晨',userCP=50
  5. WHERE id = 3;
  6. ## 多表更新:
  7. # (92规范)示例 :
  8. UPDATE boys bo,beauty b
  9. SET b.boyfriend_id = 3
  10. WHERE bo.id = b.boyfriend_id
  11. AND bo.id IS NULL;
  12. # (99规范)示例 :
  13. UPDATE boys bo
  14. RIGHT JOIN beauty b
  15. ON bo.id = b.boyfriend_id
  16. SET b.boyfriend_id = 3
  17. WHERE bo.id IS NULL;
复制代码
删除数据:
  1. ## 单表删除:
  2. delete [from](单表加上,多表放表名后面)表名 where 筛选条件;
  3. # 示例 :
  4. DELETE FROM beauty WHERE phone LIKE '19%';
  5. ## 多表删除:
  6. # 方式一:使用delete
  7. DELETE b
  8. FROM beauty b
  9. INNER JOIN boys bo ON b.boyfriend_id = bo.id
  10. WHERE bo.boyName = '汪峰';
  11. delete b
  12. from beauty b , boys bo
  13. where b.boyfriend_id = bo.id
  14. and bo.boyName = '汪峰';
  15. # 方式二:使用truncate
  16. truncate  table 表名
  17. TRUNCATE TABLE boys WHERE userCP > 100; -- 报错,truncate只能用于截断或者说是清空表。
  18. TRUNCATE TABLE boys;      相当于清空表
复制代码
delete和truncate对比

(1)delete可以加where条件,truncate不能加。
(2)truncate删除,效率高一点。
(3)加入要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据自增长列的值从1开始。
(4)truncate删除没有返回值,delete删除有返回值。
(5)truncate删除不能回滚,delete删除可以回滚。
DDL(数据定义语言)部分

以下是数据库定义部分的语法及其示例:
创建 create
  1. #库:
  2. DROP DATABASE IF EXISTS books;
  3. CREATE DATABASE  [IF NOT EXISTS]  books;
  4. #表:
  5. DROP TABLE IF EXISTS books;
  6. CREATE TABLE [IF NOT EXISTS]  books(
  7.          id INT,
  8.         bName VARCHAR(20)
  9. );
复制代码
修改 alter
  1. # 库:
  2. RENAME DATABASE books TO 新库名;   -- 一般不修改
  3. # 更改库的字符集
  4. ALTER DATABASE books CHARACTER SET 'utf8';
  5. # 表:
  6. # 语法:
  7. alter table 表名 add | drop | modify | change  column 列名 [列类型 约束];
  8. add(加字段):ALTER TABLE author ADD COLUMN age INT;
  9. drop(删字段):ALTER TABLE author DROP COLUMN age;
  10. modify(修改字段类型):ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
  11. change(修改列名):ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;
  12. 如果想修改表名:ALTER TABLE author RENAME TO book_author;
  13. 添加外键:ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES other_table(column_name)
复制代码
删除 drop
  1. #库:
  2. DROP DATABASE [IF EXISTS] books;
  3. #表:
  4. DROP TABLE [IF EXISTS] book_author;
复制代码
表的复制
  1. # 方式一: 使用like复制表结构  
  2. CREATE TABLE 表名 LIKE author;
  3. # 方式二: 复制结构和数据
  4. CREATE TABLE 表名 SELECT * FROM author;
  5. # 使用where 0和 where 1 来实现:
  6. CREATE TABLE 表名
  7. SELECT id,au_name
  8. FROM author
  9. WHERE 0;  (仅仅复制表结构即字段)
  10. CREATE TABLE 表名
  11. SELECT id,au_name
  12. FROM author
  13. WHERE 1;      (结构加数据)      
复制代码
常见数据类型
  1. 整型:         int           bigint
  2. 小数定点数:   DECIMAL类型    NUMERIC类型  
  3. 小数浮点数:    float          double
  4. 字符型较短的文本:char       varchar
  5. 字符型较长的文本:text       blob(较长的二进制数据)
  6. 日期型:         date        datetime      timestamp         
  7. 在创表时不确定的字段类型使用varchar(255)
复制代码
好了,今天就先介绍这么多,以后每天还会分享更多的大数据技术基础知识!
最后附上这部分思维导图,以便大家记忆。
DML部分:

DDL部分:


来源:https://www.cnblogs.com/cjybigdatablog/p/18326252
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具