云狐网

您现在的位置是:首页 > 电脑之家 > 电脑知识

电脑知识

如何用mysql建立数据库(MySQL数据库基础知识及优化)

云狐网络 2022-09-18 21:39:11电脑知识

SQL语句基础知识及优化

SQL语句主要分为哪几类 *

  • 数据据定义语言DDL(Data Definition Language):主要有CREATE,DROP,ALTER等对逻辑结构有操作的,包括表结构、视图和索引。
  • 数据库查询语言DQL(Data Query Language):主要以SELECT为主
  • 数据操纵语言DML(Data Manipulation Language):主要包括INSERT,UPDATE,DELETE
  • 数据控制功能DCL(Data Control Language):主要是权限控制能操作,包括GRANT,REVOKE,COMMIT,ROLLBACK等。

SQL约束有哪些? **

  • 主键约束:主键为在表中存在一列或者多列的组合,能唯一标识表中的每一行。一个表只有一个主键,并且主键约束的列不能为空。
  • 外键约束:外键约束是指用于在两个表之间建立关系,需要指定引用主表的哪一列。只有主表的主键可以被从表用作外键,被约束的从表的列可以不是主键,所以创建外键约束需要先定义主表的主键,然后定义从表的外键。
  • 唯一约束:确保表中的一列数据没有相同的值,一个表可以定义多个唯一约束。
  • 默认约束:在插入新数据时,如果该行没有指定数据,系统将默认值赋给该行,如果没有设置没默认值,则为NULL。
  • Check约束:Check会通过逻辑表达式来判断数据的有效性,用来限制输入一列或者多列的值的范围。在列更新数据时,输入的内容必须满足Check约束的条件。

什么是子查询? **

子查询:把一个查询的结果在另一个查询中使用HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

子查询可以分为以下几类:HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 标量子查询:指子查询返回的是一个值,可以使用 =,>,<,>=,<=,<>等操作符对子查询标量结果进行比较,一般子查询会放在比较式的右侧。SELECT * FROM user WHERE age = (SELECT max(age) from user) //查询年纪最大的人
  • 列子查询:指子查询的结果是n行一列,一般应用于对表的某个字段进行查询返回。可以使用IN、ANY、SOME和ALL等操作符,不能直接使用SELECT num1 FROM table1 WHERE num1 > ANY (SELECT num2 FROM table2)
  • 行子查询:指子查询返回的结果一行n列SELECT * FROM user WHERE (age,sex) = (SELECT age,sex FROM user WHERE name="zhangsan")
  • 表子查询:指子查询是n行n列的一个数据表SELECT * FROM student WHERE (name,age,sex) IN (SELECT name,age,sex FROM class1) //在学生表中找到班级在1班的学生

了解MySQL的几种连接查询吗? ***

MySQl的连接查询主要可以分为外连接,内连接,交叉连接HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 外连接外连接主要分为左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)、全外连接。左外连接:显示左表中所有的数据及右表中符合条件的数据,右表中不符合条件的数据为null。

如何用mysql建立数据库(MySQL数据库基础知识及优化)(1)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

右外连接:显示左表中所有的数据及右表中符合条件的数据,右表中不符合条件的数据为null。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

如何用mysql建立数据库(MySQL数据库基础知识及优化)(2)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

MySQL中不支持全外连接。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 内连接:只显示符合条件的数据

如何用mysql建立数据库(MySQL数据库基础知识及优化)(3)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 交叉连接:使用笛卡尔积的一种连接。笛卡尔积,百度百科的解释:两个集合X和Y的笛卡尔积表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 。例如:A={a,b},B={0,1,2},A × B = {(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}

举例如下:有两张表分为L表和R表。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

L表HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

如何用mysql建立数据库(MySQL数据库基础知识及优化)(4)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

R表HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

如何用mysql建立数据库(MySQL数据库基础知识及优化)(5)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 左外连接 :select L.`*`,R.`*` from L left join R onL.b=R.b

如何用mysql建立数据库(MySQL数据库基础知识及优化)(6)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 右外连接:select L.`*`,R.`*` from L right join R onL.b=R.b

如何用mysql建立数据库(MySQL数据库基础知识及优化)(7)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 内连接:select L.`*`,R.`*` from L inner join R on L.b=R.b

如何用mysql建立数据库(MySQL数据库基础知识及优化)(8)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 交叉连接:select L.`*`,R.`*` from L,R

如何用mysql建立数据库(MySQL数据库基础知识及优化)(9)HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

mysql中in和exists的区别? **

in和exists一般用于子查询。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • 使用exists时会先进行外表查询,将查询到的每行数据带入到内表查询中看是否满足条件;使用in一般会先进行内表查询获取结果集,然后对外表查询匹配结果集,返回数据。
  • in在内表查询或者外表查询过程中都会用到索引。
  • exists仅在内表查询时会用到索引
  • 一般来说,当子查询的结果集比较大,外表较小使用exist效率更高;当子查询寻得结果集较小,外表较大时,使用in效率更高。
  • 对于not in和not exists,not exists效率比not in的效率高,与子查询的结果集无关,因为not in对于内外表都进行了全表扫描,没有使用到索引。not exists的子查询中可以用到表上的索引。

varchar和char的区别? ***

  • varchar表示变长,char表示长度固定。当所插入的字符超过他们的长度时,在严格模式下,会拒绝插入并提示错误信息,在一般模式下,会截取后插入。如char(5),无论插入的字符长度是多少,长度都是5,插入字符长度小于5,则用空格补充。对于varchar(5),如果插入的字符长度小于5,则存储的字符长度就是插入字符的长度,不会填充。
  • 存储容量不同,对于char来说,最多能存放的字符个数为255。对于varchar,最多能存放的字符个数是65532。
  • 存储速度不同,char长度固定,存储速度会比varchar快一些,但在空间上会占用额外的空间,属于一种空间换时间的策略。而varchar空间利用率会高些,但存储速度慢,属于一种时间换空间的策略。

MySQL中int(10)和char(10)和varchar(10)的区别? ***

int(10)中的10表示的是显示数据的长度,而char(10)和varchar(10)表示的是存储数据的大小。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

drop、delete和truncate的区别? **

dropdeletetruncate速度快逐行删除,慢较快类型DDLDMLDDL回滚不可回滚可回滚不可回滚删除内容删除整个表,数据行、索引都会被删除表结构还在,删除表的一部分或全部数据表结构还在,删除表的全部数据HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

一般来讲,删除整个表,使用drop,删除表的部分数据使用delete,保留表结构删除表的全部数据使用truncate。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

UNION和UNION ALL的区别? **

union和union all的作用都是将两个结果集合并到一起。HNO电脑_数码_手机应用问题解决的IT技术网站 - 云狐网

  • union会对结果去重并排序,union all直接直接返回合并后的结果,不去重也不进行排序。
  • union all的性能比union性能好。

 1/2    1 2 下一页 尾页