首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据库、数据表的基本操作及查询数据

[CONSTRAINT] FOREIGN KEY 字段1[,字段2...] REFERENCES 主键列1[,主键列2...] 使用非空约束 非空约束指字段的值不能为空。...对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。 字段名 数据类型 NOT NULL 使用唯一性约束 唯一性约束要求该列唯一,允许为空,但只能出现一个空值。...,字段名n] FROM 表名; 查询指定记录 在 SELECT语句中,通过 WHERE子句可以对数据进行过滤。 SELECT 字段名1[,字段名2,......在 SELECT语句中使用 IS NULL子句,可以查询某字段内容为空记录。...复合条件连接查询 复合条件连接查询是在连接查询的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确。 子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询。

3.1K20

SQL岗位30个面试题,SQL面试问题及答案「建议收藏」

· PrimaryKey(主键)——它是表中的一个或多个字段的集合。它们不接受空值和重复值。并且表中只存在一个主键。...· UniqueKey(唯一键)——除了主键之外,表中还有更多键,它们只标识记录,但唯一的区别是它们只接受一个空值但不接受重复值。...它被定义为通过为查询提供条件来设置结果集的限制。他们从整个记录中过滤掉一些行。 一些SQL的字句是WHERE和HAVING。 22.什么是Aggregate Functions(聚合函数)?...在select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。...运算符是一个保留字,主要用于SQL语句的WHERE子句中以进行操作。

4.5K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL命令 FROM(二)

    ,"End of B data" } 表值函数只能在SELECT语句或DECLARE语句的FROM子句中使用。表值函数名可以用模式名限定,也可以用非限定名(没有模式名)限定;非限定名使用默认模式。...FROM子句中的子查询 可以在FROM子句中指定子查询。 这称为流子查询。 子查询被视为与表相同的处理方式,包括它在JOIN语法中的使用以及使用as关键字可选地分配别名。...FROM子句可以以任何组合包含多个表、视图和子查询,但要受JOIN语法的限制,如JOIN中所述。...%VID是一个整数计数器字段; 它的值是系统分配的、唯一的、非空的、非零的、不可修改的。 %VID仅在显式指定时返回。 它以数据类型INTEGER返回。...除非指定了TOP或DISTINCT子句,或者用WHERE或HAVING子句限制它,否则返回的相同数据行数等于指定表中的行数。 指定DISTINCT子句将输出限制为单行数据。

    1.7K40

    SQL优化总结之一

    (3)B+树中,叶节点包含信息,所有非叶结点仅起到索引作用,非叶节点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。   ...,在这个脚本中几个子集的记录绝对不可能重复,故可以改用UNION ALL)连接操作  3) 避免在WHERE子句中使用in,not in,or或者having。   ...F、不要写一些没有意义的查询,比如: SELECT * FROM EMPLOYEE WHERE 1=2   Where后面的原则:     第一个原则:在where子句中应把最具限制性的条件放在最前面。...第二个原则:where子句中字段的顺序应和索引中字段顺序一致。   select field3,field4 from tb where upper(field2)='RMN'不使用索引。...如果一个表有两万条记录,建议不使用函数;如果一个表有五万条以上记录,严格禁止使用函数!两万条记录以下没有限制。

    1.5K50

    干货 | 新手请速戳!30个精选SQL面试问题Q&A集锦

    PrimaryKey(主键)——它是表中的一个或多个字段的集合。它们不接受空值和重复值。并且表中只存在一个主键。...UniqueKey(唯一键)——除了主键之外,表中还有更多键,它们只标识记录,但唯一的区别是它们只接受一个空值但不接受重复值。...它被定义为通过为查询提供条件来设置结果集的限制。他们从整个记录中过滤掉一些行。 一些SQL的字句是WHERE和HAVING。 22.什么是Aggregate Functions(聚合函数)?...在select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。...运算符是一个保留字,主要用于SQL语句的WHERE子句中以进行操作。 算术运算 逻辑运算 比较运算符() 复合算子() 28. 如何定义NULL值,Blank Space(空格)和ZERO(0)?

    1.5K10

    SQL常见面试题总结

    GROUP BY 子句中 where和having子句的区别 having和where的区别: 作用的对象不同。...这样比在 HAVING 里增加限制更加高效,因为我们避免了为那些未通过 WHERE 检查的行进行分组和聚集计算 综上所述: having一般跟在group by之后,执行记录组选择的一部分来工作的。...请说出sql语句中 left join ,inner join 和right join的区别 left join(左联接) :返回包括左表中的所有记录和右表中联结字段相等的记录 right join...(右联接) :返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) :只返回两个表中联结字段相等的行 分库分表的问题如何实现分布式全局唯一ID 在分库分表的环境中...重新获得另一个目录root权限的程序无法访问或命名此目录之外的文件,此目录被称为“chroot监狱”。 通过利用chroot环境,你可以限制MySQL进程及其子进程的写操作,增加服务器的安全性。

    2.3K30

    数据库优化面试题

    (3)B+树中,叶节点包含信息,所有非叶结点仅起到索引作用,非叶节点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。...,在这个脚本中几个子集的记录绝对不可能重复,故可以改用UNION ALL)连接操作 3) 避免在WHERE子句中使用in,not in,or 或者having。...F、不要写一些没有意义的查询,比如 SELECT * FROM EMPLOYEE WHERE 1=2 Where后面的原则 第一个原则:在where子句中应把最具限制性的条件放在最前面。...第二个原则:where子句中字段的顺序应和索引中字段顺序一致。 select field3,field4 from tb where upper(field2)='RMN'不使用索引。...如果一个表有两万条记录,建议不使用函数;如果一个表有五万条以上记录,严格禁止使用函数!两万条记录以下没有限制。

    4.1K21

    第37次文章:数据库基本语法

    第二条语句中,我们填写了需要插入的属性,所以我们需要对应着属性来插入相关的值,与此同时,我们使用到了子查询语句,在select语句后面对应的插入参数值。...二、修改 1、修改单表的记录 update 表1 别名 连接类型 join 表2 别名 on 连接条件 set 字段=值,字段=值 【where 筛选条件】; 2、修改多表的记录【补充】 (1)sql92...还有一点就是表的复制,通过上面的案例可以发现一点,表的复制,使用的是create关键字,在表的后面可以添加子查询语句,有点类似于dml语句中的插入语法。...四、常见的约束 1、含义 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠 2、分类 (1)not null :非空,用于保证该字段的值不能为空。...比如姓名,学号等(2)default:默认,用于保证该字段有默认值。比如性别 (3)primary key:主键,用于保证该字段的值具有唯一性,并且非空。

    1.3K10

    Mysql优化-索引

    表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该建在较高选择性的字段上...如果是,则可以建立复合索引;否则考虑单字段索引; 如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; 如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段...,所以id字段为nullF:subquery:除了from字句中包含的子查询外,其他地方出现的子查询都可能是subqueryG:dependent subquery:与dependent union类似...如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句。...5.6.x之后支持ICP特性,可以把检查条件也下推到存储引擎层,不符合检查条件和限制条件的数据,直接不读取,这样就大大减少了存储引擎扫描的记录数量。

    1.3K50

    Mysql常用查询语句

    = ‘T’ SELECT * FROM tb_name WHERE type = ‘F’ 逻辑运算符:and or not 五查询非空数据 SELECT * FROM tb_name WHERE... WHERE 查询条件 注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替 十六NOT与谓词进行组合条件的查询 (1)NOT BERWEEN... … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询 (4)NOT IN... 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七显示数据表中重复的记录和记录条数 SELECT  name...,则默认为ASC升序 十九对数据进行多条件查询 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC  … 注意:对查询信息进行多条件排序是为了共同限制记录的输出

    5.1K20

    centos sqlite3安装及简单命令

    ,该列的值可以自动增长 NOT NULL – 非空: 约束列记录不能为空,否则报错 UNIQUE – 唯一: 除主键外,约束其他列的数据的值唯一 CHECK – 条件检查: 约束该列的值必须符合条件才可存入...set field1=val1, field2=val2 where expression; where是sql语句中用于条件判断的命令,expression为判断表达式 例,修改学生信息表学号为...0001的数据记录: update student_info set stu_no=0001, name=hence where stu_no=0001; 4)删除数据记录 delete from...例,删除学生信息表学号为0001的数据记录: delete from student_info where stu_no=0001; 5)查询数据记录 select指令基本格式: select...columns from table_name [where expression]; a查询输出所有数据记录 select * from table_name; b限制输出数据记录数量 select

    3.4K20

    数据库性能优化之SQL语句优化

    推荐方案:用NOT EXISTS 方案代替 (c) IS NULL 或IS NOT NULL操作(判断字段是否为空) 判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的。...Order by语句对要排序的列没有什么特别的限制,也可以将函数加入列中(象联接或者附加等)。任何在Order by语句的非索引项或者有计算表达式都将降低查询速度。...如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销....(非oracle中)on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后,因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据...ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.

    5.7K20

    MySQL:DQL 数据查询语句盘点

    本篇内容包括:DQL 的简介、SELECT 语句、WHERE 条件语句、JOIN 连接查询(多表查询)和分组、过滤、排序、分页、子查询的使用。...查询的字段X的值,至少与括号中的一个值相同,多个值之间用英文逗号隔开 7、NULL空值条件查询 NULL代表"无值" 区别于零值0和空字符串"" 只能出现在定义允许为NULL的字段 须使用IS NULL...,便于引用 如无重名查询字段则可省略数据表的指定 4、非等值连接 SELECT 字段1,字段2,.......LIMIT[m,]n 或 LIMIT n OFFSET m 限制 SELECT 返回结果的行数 m 指定第一个返回记录行的偏移量(显示的起始位置) n 指定返回记录行的最大数目(显示行数) m 不指定则偏移量为...0,从第一条开始返回前 n 条记录 在MySQL中,显示每页的行数可以使用 LIMIT (页码-1)*行数,行数 ---- 六、子查询 在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句 嵌套查询可由多个子查询组成

    1.6K20

    MySQL 数据库基础知识(系统化一篇入门)

    常见约束: 约束条件 说明 PRIMARY KEY 主键约束用于唯一标识对应的记录 FOREIGN KEY 外键约束 NOT NULL 非空约束 UNIQUE 唯一性约束 AUTO_INCREMENT...) default 'male' ); 5.5、非空约束 非空约束即 NOT NULL指的是字段的值不能为空,基本的语法格式如下所示: 字段名 数据类型 NOT NULL; 示例:MySQL命令: create...例如,在WHERE子句中使用聚合函数是错误的。 接下来,我们学习常用聚合函数。...查询学生姓名以r为开头的记录 MySQL命令: select * from student where name like "r%"; 7.3.8、使用LIMIT限制查询结果的数量 查询学生表中年纪最大的...; 7.5、子查询 子查询是指一个查询语句嵌套在另一个查询语句内部的查询;该查询语句可以嵌套在一个 SELECT、SELECT…INTO、INSERT…INTO等语句中。

    5.1K60

    这是我见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

    它包含类似于真实表的行和列。视图中的字段是来自一个或多个实际表的字段。 视图不包含自己的数据。它们用于限制对数据库的访问或隐藏数据复杂性。 21.视图的优点是什么?...SQL中可用的约束有哪些? SQL中的一些约束包括–主键,外键,唯一键,SQL非空,默认,检查和索引约束。 38.什么是唯一约束? 使用唯一约束来确保字段/列中没有重复值。 39.什么是主键?...如前所述,空值是没有值的字段,该值不同于零值和空格。 空值是没有值的字段。 零是数字, 空格是我们提供的值。space的ASCII值为CHAR(32)。 47.如何测试NULL值?...SQL Operator是保留字,主要在SQL语句的WHERE子句中使用,以执行诸如算术运算和比较之类的操作。这些用于在SQL语句中指定条件。 共有三种类型的运算符。...我们可以在DELETE语句中使用WHERE条件,并可以删除所需的行 我们不能在TRUNCATE语句中使用WHERE条件。

    27.1K20

    常用SQL查询语句,值得回看不要错过,好记性不如多看看!

    FROM tb_name WHERE type = ‘F’ 逻辑运算符:and or not 五、查询非空数据 SELECT * FROM tb_name WHERE address ” order...字段名 FROM 表名 WHERE 查询条件 注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替 十六、NOT与谓词进行组合条件的查询 (1...)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询...(4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七、显示数据表中重复的记录和记录条数...,则默认为ASC升序 十九、对数据进行多条件查询 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC … 注意:对查询信息进行多条件排序是为了共同限制记录的输出

    3K30

    explain的属性详解与提速百倍的优化示例

    subquery:除了from字句中包含的子查询外,其他地方出现的子查询都可能是subquery。...derived:from字句中出现的子查询,也叫做派生表,其他数据库中可能叫做内联视图或嵌套select。 table 输出的行所引用的表。...partitions 版本5.7以前,该项是explain partitions显示的选项,5.7以后成为了默认选项。该列显示的是分区表命中的分区情况。非分区表该字段为空(null)。...where条件单表查,锁定最小返回记录表——把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高 explain查看执行计划,是否从锁定记录较少的表开始查询...获得后,再和cm_log的379条记录根据规则关联。从执行过程上可以看出返回了太多的数据,返回的数据绝大部分cm_log都用不到,因为cm_log只锁定了379条记录。 3.优化分析 如何优化呢?

    1.4K30

    数据库知识学习,数据库设计优化攻略(十)

    C、杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销。...第一个原则:在 where 子句中应把最具限制性的条件放在最前面。...2)在下面的 select 语句中: select * from tab where a=… and b=… and c=…; 若有索引 index(a,b,c),则 where 子句中字段的顺序应和索引中字段顺序一致...第二个原则:where 子句中字段的顺序应和索引中字段顺序一致。 以下假设在 field1 上有唯一索引 I1,在 field2 上有非唯一索引 I2。...如果一个表有两万条记录,建议不使用函数;如果一个表有五万条以上记录,严格禁止使用函数!两万条记录以下没有限制。

    63110
    领券