1、关于库的增删改查 增 CREATE DATABASE 库名称; #-----------------=====----------------- CREATE DATABASE shool CHARSET...表名 CHARSET 新编码; 查 查看所有表:SHOW TABLES; 查看指定表信息:DESC TABLE 表名称; 查看指定表创建信息:SHOW CREATE TABLE 表名称; 增 插入一个值...,v2) # 该方式必须保证 插入的数据个数与 必须与指 插入多个值 INSERT INTO 表名 VALUES(v1),(v2) INSERT INTO 表名(字段名称1,字段名称2) VALUES(...v1,v1),(v2,v2) 删 删除所有:DELETE FROM 表名; 删除指定条件下:DELETE FROM 表名 WHERE 条件; 改 修改所有数据:UPDATE 表名 SET 字段名称=新的值...,字段名称2=值2; 修改满足条件的数据:UPDATE 表名 SET 字段名称=新的值,字段名称2=值2 WHERE 条件 查 查看所有字段:SELECT * FROM 表名; 查看指定字段:SELECT
可能会影响到索引的使用 例如这里我们查询一下:student表中 id > 2的学生: 3.指定列查询: 指定列的顺序不需要按定义表的顺序来,这里我们查name和mail; 4....查询字段为表达式: 4.1 表达式不包含字段: 4.2 表达式包含一个字段: 4.3 表达式包含多个字段: 5 别名: 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称...没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序 7.2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面 7.3....AND, 查询分数在30到50的成绩 8.3模糊查询:LIKE % 匹配任意多个(包括 0 个)字符:查询带' 孙' 字的同学 匹配严格的一个任意字符:查询 "...例子:删除孙悟空同学的考试成绩
MySQL表的增删改查(基础) 据库最主要的操作就是增(create)删(update)改(retrieve)查(delete)。(CURD) 注意:进行增删改查操作的时候,请务必选中数据库。...如果是要排序的列中,有NULL,NULL视为“最小值”。如果要是多个记录,排序的列值相同,此时先后顺序也是不确定的。 排序也可以针对 表达式/别名来进行。...先把数据库中保存的数据,进行查询,查的时候,每次得到一行,就带入到条件中。 加入or就可以带上空值了。很多sql字句都是可以相互组合的。 这里是两个列进行比较。...在这个代码中,此处的where子句不能够使用列的别名来比较。 比如: 这取决于mysql内部的实现。mysql里执行查询操作的时候,现针对每一行记录,计算条件,并按照条件筛选。...注意 匹配到了三行,但是程心和程乐乐都是空值,空值是没法进行算术运算的。
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准 现在创建一张表user1: mysql...; Query OK, 0 rows affected (0.00 sec) mysql> 创建表user2: mysql> create table if not exists user2(...(0.02 sec) //也可以不指定,直接创建 mysql> create table if not exists user3 (name char(32)); Query OK, 0 rows...xingming varchar(60) DEFAULT NULL; 向表中插入数据insert into values mysql> insert into user values (1,'张三...','12345','2010-10-1'); Query OK, 1 row affected (0.00 sec) mysql> insert into user values (2,'李四','
选择要操作的数据库 已经登录后可以直接选择数据库 mysql> use samp_db1; Database changed 创建数据表 以建立person_t数据表为例 mysql> create...; 增 - 插入数据 insert [into] 表名 [(列名1, 列名2, 列名3, …)] values (值1, 值2, 值3, …); mysql> insert into student values...(null,"张三","男",23,"13666665555"); mysql> insert into student (name,sex,age) values("李四","女",20); 查 -...,运用得当会节省运行时间 改 - 修改表中的数据 基本的使用形式为: update 表名称 set 列名称=新值 where 更新条件; 我们终于拿到了李四的联系方式,将数据库中的tell更新 mysql...值 mysql> update student set age=age+1; Query OK, 5 rows affected (0.05 sec) Rows matched: 5 Changed:
MySQL基本查询 表的增删改查:CRUD Create(创建)包含insert Retrieve(读取)包含select Update(更新) Delete(删除) 一.增加数据Create 主要是...update 的值相等 1 row affected: 表中没有冲突数据,数据被插入 2 row affected: 表中有冲突数据,并且数据已经被更新 此外,通过 MySQL 函数获取受到影响的数据行数...exam_math; 3.查询字段为表达式 在MySQL数据类型的介绍中,select可以执行相应的各种表达式,函数。...实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚。...都是对表进行各种的增删查改,尤其对于查找,表与表之间因外键的联系等。
本文先来讲讲慢查日志。 1. 是什么? MySQL慢查日志是一种记录执行很慢的sql的日志。...MySQL中可以通过long_query_time来设置一个阀值,如果执行时间超过这个阀值,就会被认为是慢sql,就会记录到慢查日志中。该阀值默认是10s,即执行超过10s的sql就会被记录。 2....开启方法: MySQL默认是没有开启慢查日志的,如果不是调优需要的话,不建议开启,因为这个也会带来性能的影响。...要大于10s才会触发,等于是不会触发的。但是10s这个阀值太大了,我们一般会改小一点,通过以下sql可以修改该值: set long_query_time = 3; ?...执行结果 日志分析工具:mysqldumpslow 生产环境可能会出现很多的慢查日志,如果都要手工分析,也是比较费时的,MySQL提供了慢查日志分析工具,mysqldumpslow。
查漏补缺 目录 MySQL查漏补缺 唯一索引比普通索引快吗, 为什么 MySQL由哪些部分组成, 分别用来做什么 MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更....MyISAM和InnoDB的区别有哪些 MySQL怎么恢复半个月前的数据 MySQL事务的隔离级别, 分别有什么特点 做过哪些MySQL索引相关优化 简要说一下数据库范式 一千万条数据的表, 如何分页查询...订单表数据量越来越大导致查询缓慢, 如何处理 欢迎关注公众号(代码如诗) 推荐阅读 十个MySQL知识点(面试题), 查漏补缺, 共同学习, 欢迎交流....MySQL事务的隔离级别, 分别有什么特点 读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到. 读提交(RC): 一个事务提交之后, 它做的变更才会被其他事务看到....第三范式: 在二范式的基础上, 要求一个数据库表中不包含已在其它表中已包含的非主关键字信息. 所以第三范式具有如下特征:1). 每一列只有一个值. 2). 每一行都能区分. 3).
mysql的Boolean值是什么? 如何插入 可以用tinyint来代替布尔值 tinyint(1)
数据库约束 1.约束类型 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。...FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。 CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。...key (字段名) references 主表(列) 用例: -- 创建班级表,有使用MySQL关键字作为字段时,需要使用``来标识 DROP TABLE IF EXISTS classes; CREATE...三大范式: 第一范式(1NF): 第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值,或不能有重复的属性。...expr) 返回查询到的数据的最大值,不是数字没有意义 MIN([DISTINCT] expr) 返回查询到的数据的最小值,不是数字没有意义 用例: -- 统计平均总分 SELECT AVG(chinese
数据库约束 约束类型 NOT NULL 指示某列不能存储NULL值. UNIQUE 保证某列的每行必须有唯一的值。 数据库如何判定,当前这一条记录是重复的?先查找,再插入。...注意: 实际开发中,大部分的表,一般都会带有一个主键,主键往往是一个整数表示的id 在mysql中,一个表里,只能有一个主键,不能有多个 虽然主键不能有多个,mysql允许把多个列放到一起共同作为一个主键...(联合主键) 主键另外一个非常常用的方法,就是使用mysql自带的“自增主键”作为主键的值。...(主键需要保证不重复,如果我们靠自己去生成一些不重复的主键值,就比较麻烦) 值得注意的是:自增主键,并不会重复利用中间的空隙,是依照之前的最大值,来往后累加的。...mysql的数据量比较小,所有的数据都在一个mysql服务器上,自增主键是可以很好地工作的,如果mysql的数据量很大,一台主机放不下就需要进行分库分表,使用多个主机来进行存储。
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说MySQL增删改查语句_MySQL comment,希望能够帮助大家进步!!!...1.前言 mysql慢查询,已经有现成的成熟的方案收集展示了:pt-query-digest结合box公司的anemometer,没用过的移步:《mysql慢查询可视化》(本章内容需要提前了解anemometer...但DBA们一定还遇到过这样的问题:某个时间段CPU负载较高,但慢查却没有。这种情况一般是由高并发的但单个性能正常的SQL导致的,所以慢查没有,但总体负载会升高。 那怎么办呢?...2.功能展示 选择时间段、host(沿用的慢查中的名称,理解为mysql实例): 展示每个digest的总次数、最高执行频率(按分钟)、平均耗时(毫秒) 点击checksum,查看某个SQL执行频率的走势图...' ## 指定实例默认值,否则默认查所有数据,响应慢 'custom_fields' => array( 'checksum' => 'checksum
是否存在 主键/外键/唯一键 约束 Default 表示 是否有默认值 Extra 表示 额外信息 2.2.查看建表信息 如果想查看关于表更详细的信息,可以通过指令查看建表时的语句内容,语法为 SHOW...mysql> show create table person\G mysql> show create table goods\G 其实之前使用 desc 指令查询到的结果,就是从这里截取的,更详细的信息包括...:列的注释、字符集、存储引擎,这也证明了当我们不指定这些属性时,自动使用数据库的默认属性 MySQL 会记录下用户的所有操作痕迹,这也是备份后,恢复数据库的关键,把所有指令再执行一遍,就能得到一模一样的数据库了...属性,比如约束、默认值、是否为空等,支持同时新增多个字段 给 person 表新增 出生日期、爱好 两个字段 注意: 如果新增多个字段时,需要使用 ( ) 将新增的一批字段括起来 mysql> alter...(a int, b int, c double); mysql> alter table person drop a, drop b, drop c; 刚刚新增的无用字段立马就被删除了 在 MySQL
(20) comment '姓名', qq_mail VARCHAR(20) comment 'QQ邮箱' ); 单行数据+全列插入 -- 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致...查询的列越多,意味着需要传输的数据量越大; -- 2. 可能会影响到索引的使用。(索引待后面课程讲解) SELECT * FROM exam_result; ?...指定列查询 -- 指定列的顺序不需要按定义表的顺序来 SELECT id, name, math FROM exam_result; ?...别名: 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法: SELECT column [AS] alias_name [...]...ORDER BY column [ASC|DESC], [...]; 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序 NULL 数据排序,视为比任何值都小,升序出现在最上面
DML和DQL 增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据 INSERT INTO grade(gradeID,gradeName) VALUES...04.delete删除后自增列编号会接着上次最大值 Truncate截断表:自增列编号从1开始 查询 将查询结果保存到 新表中! ...查询年级表中 id不等于1的数据 !...= SELECT gradeID,gradeName FROM grade WHERE gradeid 1 + 必须是相同的数据类型,能转换成2进制的数据!...null: 01.标识 空值 02.不是0,也不是空串"" 03.只能出现在定义 允许为null的字段 04.只能使用is null 或者is not null 进行比较!
ALTER TABLE 旧表名 RENAME 新表名; 此语句可以修改表的名称,其实一般我们在终端中使用,有可视化工具完全没必要用命令。...增加字段 ALTER TABLE stu ADD demo VARCHAR(10) NOT NULL ; -- ALTER TABLE 表名 ADD 要加的字段名 数据类型 [属性(可不写)] ; 删除字段
Mysql中的Null值 在大对数编程语言中,逻辑表达式的值只有两种:True,False。但是在关系型数据库中的逻辑表达式并非两种,而是三值逻辑的表达式(True、False、Unknown)。...------+ | null = null | +-------------+ | NULL | +-------------+ 1 row in set (0.00 sec) 出乎意料的是...null = 1返回的是null,而null = null返回的也是null,而不是1。...对于返回值是null的情况,应该将它视为unknown的情况,即表示未知。...在不同的语句下unknown表示不同的值 ON unknown被视为False GROUP BY group by会把null值分到一组 ORDER BY order by会把null值排列在一起
2.2非指定插入 SQL执行语句:insert into 表名 values(值,值,值......); 代码实例如下: mysql> insert into student values(1,'孙悟空...',66,77,88); Query OK, 1 row affected (0.00 sec) 注意:这里的数据值的插入应该和上述创建表的列名因该一一对应,否则会发生报错。...2.3指定列插入 SQL执行语句:insert into 表名 (列名,列名....)values (值,值....); 代码实例如下: mysql> insert into student(id,name...2.4插入多行数据 SQL执行语句:insert into 表名 values(值,值...)...,(值,值...)....; 代码实例如下: mysql> insert into student values(3,'猪八戒',67,56,87), (4,'沙悟净',57,99,67.5), (5,
最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下 只是做备忘,有的概念只是一笔带过,具体可自行搜索 本文中配置和选项文件一个意思 1.配置文件优先级 ?...若配置文件中同一参数有多个值,后面的优先级更高 若有多个配置文件则后读取的文件优先级更高 mysqld --help --verbose 2> /dev/null | grep -A1 "Default...相关defaults选项 --no-defaults会忽略配置文件的参数,只会按预编译时的参数以及命令行启动时的参数 mysqld --no-defaults --basedir=/opt/mysql...--datadir=/mysql/data --user=mysql --pid-file=/mysql/pid --socket=/mysql/socket --port=3307 --defaults-file...5.2 持久化全局变量 使用SET PERSIST variable_name = value 来持久化全局变量,而不用修改配置文件是MySQL 8.0的新特性 需要如下权限 SYSTEM_VARIABLES_ADMIN
AVG 求平均值 select avg(math) from student;-- 对整个班级的数学分进行求平均值 MAX 求最大值 -- 求这列的最大值 MIN 求最小值 条件查询(where,in...desc-- 先安id顺序排列,如果id相同则安照name字典序逆序排列 select * from user group by gender,age;-- 按照gender分组,再按age分组,如果有重复的列组值...联合查询/集合查询(union)select 查询结果是元组的集合,可用union进行结果的集合操作,相当于把多个查询结果进行连接起来输出UNION规则UNION必须由两条以上的SELECT语句组成,...UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)。列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。...我们希望获取所有人的名字和电子邮件。
领取专属 10元无门槛券
手把手带您无忧上云