By 张旭 CaesarChang 合作 : root121toor@gmail.com 关注我 带你看更多好的技术知识和面试题 给定一个链表,判断链表中是否有环。...为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
②获得表中行组的和 ③找出表列(或所有行或某些特定的行)的最大值、最小值和平均值 聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数(MySQL还支持一些列的标准偏差聚集函数...,可利用count()确定表中行的数目或符合特定条件的行的数目; count()函数有两种使用方式: ①使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值; ②使用...)对cust_email列中有值的行进行计数; PS:如果指定列名,则指定列的值为空的行被count()函数忽略,但如果count()函数中用的是星号(*),则不忽略; 3、max()函数 max()...price列的最大值; PS:MySQL允许max()用来返回任意列中的最大值,包括返回文本列的最大值;但用于文本数据时,如果数据按相应的列排序,则max()返回最后一行(max()函数忽略列值为null...列最小值; PS:MySQL允许min()用来返回任意列中的最小值,包括返回文本列的最小值;但用于文本数据时,如果数据按相应的列排序,则min()返回最前面的行(min()函数忽略列值为null的行)
数据库写入 "parameter": { "writeMode": "replace", // 写入模式为替换(如果表存在则先删除再写入)...,设置了 SSL、公钥检索、Unicode 编码等参数 "table": [ // 写入的数据库表列表,这里只写入 ads_alarm_stat_last_month...数据库写入 "parameter": { "writeMode": "replace", // 写入模式为替换(如果表存在则先删除再写入) "username": "root",...mysql.tables.import= mysql.tables.export= is.seperated.tables=0 hdfs.uri=hdfs://hadoop102:8020 import_out_dir...{ads_table_name | all}" echo "Example: $0 ads_mileage_stat_last_month" ;; esac chmod +x hdfs_to_mysql.sh
左连接即是将左边表中的数据全部查找出来。数据库会以左边为基础,与右边表做笛卡尔乘积。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。...如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。 RIGHT JOIN 或 RIGHT OUTER JOIN 右链接 右向外联接是左向外联接的反向联接。...如果右表的某行在左表中没有匹配行,则将为左表返回空值。 FULL JOIN 或 FULL OUTER JOIN 全联接 完整外部联接返回左表和右表中的所有行。...当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
MAX 可以是 0,这意味着没有限制。如果查询耗时少于 1 秒,将增加块大小,如果超过 2 秒,将减半 --split-partitions 将分区导出到单独的文件。...,不增加错误计数,并将警告改为重要 -e, --build-empty-files 即使表中没有数据,也要生成空文件 --no-check-generated-fields...如果元数据文件中的表数量很大,应增加此值。...默认:100 --ignore-errors 在发生逗号分隔的错误编号列表中的任何错误时,不增加错误计数并改为警告 Threads Options...默认:如果可能,从转储中检测,否则使用 BACKTICK --show-warnings 如果启用,则在 INSERT IGNORE 期间打印警告 -
外键列, constraint 外键名称 foreign key (外键列名称) references 主键名称(主表列名称) ); 创建表后添加外键约束 alter table 表名 add constraint...中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键 数据库范式 设计数据库时,需要遵循的一些规范。...例如:(学号,课程名称) --> 分数 部分函数依赖:A–>B , 如果A是一个属性组,则B属性值的确定只需要依赖于A属性组中某一些值即可。...例如:学号–>系名,系名–>系主任 码:如果在一张表中,一个属性或属性组,被其他所有属性所依赖,则称这个属性(属性组)为该表的码。...但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。 问题 脏读:一个事务,读取到另一个事务中没有提交的数据。
要使一个量词成为懒惰的,必须在普通量词后添加一个问号 ?。 占有量词会覆盖整个目标然后尝试寻找匹配内容,但它只尝试一次,不会回溯。占有量词就是在普通量词之后添加一个加号 +。...下表列出了懒惰量词。什么时候懒惰式匹配最实用?如果想匹配最少而不是最多数目的字符,就可以使用懒惰量词。 语法 说明 ?? 懒惰匹配零次或一次 +? 懒惰匹配一次或多次 *?...mysql> select distinct regexp_substr(a,'0.*+') from t1 where a regexp '0.*+'; +----------------------...如果将加号去掉,它会找到所有的0,因为它变回贪心式匹配了。...下表列出了占有量词。 语法 说明 ?
1 1 1 1 1 1 1 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 下表列出2^0到2^15的十进制值 2^n 十进制 2^n 十进制 2^0 1 2^8...2^5 32 2^13 8192 2^6 64 2^14 16384 2^7 128 2^15 32768 1.1.2 无符号二进制到十进制的转换 对于一个包含n个数字的无符号二进制数来说,加权位计数法...(如果将一个数与其加法逆元相加,加过为0). 例如:如果表达式为A,B.则就可以很方便的将其转换为加法表达式:A+(-B)....如果十进制数是负数,则在第一步的基础上,求改十六进制的补码. 1.9 有符号十六进制到十进制的转换 有符号十六进制到十进制的转换步骤如下: 如果十六进制数是负数,求其补码,否则保持该数不变....把第一步得到的整数转换为十进制.如果初始值是负数.则在该十进制整数的面前加负号.
数据类型 数据类型(datatype):每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。...安装MySQL 首先应该安装MySQL数据库,安装过程参考: mysql数据库安装教程 安装MySQL之后通常会安装图形化管理工具,如果没有图形化管理工具的话就要通过命令行查看数据库,非常不方便。...Step3 测试连接 如果看到弹出“连接成功”,则说明已经成功连接上MySQL数据库,接下来就可以对数据库进行操作了。...采用命令行连接数据库: mysql -u root -p 连接数据库 注:如果没有密码,则在输入以上命令之后直接Enter键即可。...表操作 在针对某一个数据库里面的表进行操作时,要切换至当前数据库: USE practice; 切换到practice数据库 新建表 新建表,添加字段(列) 添加完所有字段之后,保存
MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。 在MySQL的命令提示符中,我们可以很容易的获取以上服务器信息。...my $count = $dbh->do ($query); # 如果发生错误会输出 0 printf "%d 条数据被影响\n", (defined ($count) ?...$count : 0); PHP 实例 在PHP中,你可以使用 mysqli_affected_rows( ) 函数来获取查询语句影响的记录数。...mysqli_affected_rows ($conn_id) : 0); print ("$count 条数据被影响\n"); ---- 数据库和数据表列表 你可以很容易的在MySQL服务器中获取数据库和数据表列表...如果你没有足够的权限,结果将返回 null。 你也可以使用 SHOW TABLES 或 SHOW DATABASES 语句来获取数据库和数据表列表。
)//主函数 程序的入口 { int num; printf("请输入一个数:"); scanf("%d",&num); printf("%d\n",num); return 0;...: 请输入一个数:4 4 -------------------------------- Process exited after 4.701 seconds with return value 0...C语言scanf函数 一般形式 scanf(格式控制,地址表列) 格式控制和printf函数一样,地址表列是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。...使用C语言scanf函数的注意事项 scanf函数中的格式控制后面应当是变量地址,而不是变量名。...如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入这些字符相同的字符。 在用%c格式声明输入字符时,空格字符和转义字符中的字符都作为有效字符输入。
MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。 在MySQL的命令提示符中,我们可以很容易的获取以上服务器信息。...$query my $count = $dbh->do ($query); # 如果发生错误会输出 0 printf "%d 条数据被影响\n", (defined ($count) ?...$count : 0); PHP 实例 在PHP中,你可以使用 mysqli_affected_rows( ) 函数来获取查询语句影响的记录数。...mysqli_affected_rows ($conn_id) : 0); print ("$count 条数据被影响\n"); ---- 数据库和数据表列表 你可以很容易的在MySQL服务器中获取数据库和数据表列表...如果你没有足够的权限,结果将返回 null。 你也可以使用 SHOW TABLES 或 SHOW DATABASES 语句来获取数据库和数据表列表。
MySQL主要提供整数类型有:TINYTINT、SMALLINT、MEDIUMINT、INT、BIGINT。整数类型属性的字段可以添加AUTO_INCREMENT自增约束条件。...下表列出了MySQL中的数值类型。...MySQL中字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。下表列出了字符串数据类型。...MySQL中存储二进制字符串数据类型有:BIT、BINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。...DECIMAL在MySQL中是以字符串存储的,用于定义货币等对精确度要求较高的数据。DECIMAL在MySQL中是以字符串存储的。
1.mysql聚集函数 AVG() 返回某列的平均值 COUNT() 返回某列的行数 COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值 ...COUNT(column)对特定列中具体值的行进行计数,忽略NULL值 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 如:select...GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数),如果在select中使用表达式,则必须在GROUP BY子句中指定相同的表达式且不能使用别名 。...如果分组列中有NULL值,则NULL将作为一个分组返回 。
MySQL约束 (一) 概念 约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 1. 主键约束:primary KEY 2. 非空约束:not NULL 3....); -- 注意mysql中,唯一约束限定的列的值可以有多个null -- 2....自动增长 A:概念:如果某一列是数值类型的,使用 AUTO_INCREMENT 可以来完成值得自动增长 B:在创建表时,添加主键约束,并且完成主键自增长 create table...创建表之后,添加外键 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); (三...添加级联操作 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON
mysqld.exe的进程 管理员运行cmd,启动mysql服务 使用新密码登录 约束 使用 SHOW CREATE TABLE 语句来查看表中的约束 非空约束:not null,...,添加外键 alter table 表名 add constraint 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称) 级联操作 添加级联操作...则称B依赖于A 完全函数依赖:A--->B,如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值 部分函数依赖:A--->B,如果A是一个属性组,则B属性值的确定只需要依赖于A属性组中某一些值即可...传递函数依赖:A--->B,B--->C,如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称C传递函数依赖于A 码:如果在一张表中,一个属性或属性组...但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题 存在问题: 脏读:一个事务,读取到另一个事务中没有提交的数据 不可重复(虚读):在同一个事务中,两次读取到的数据不一样
例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。...若理解为数据库查询下标从 0 开始。因此第一个被检索的行是第 0 行,而不是第 1 行。因此,LIMIT 2 OFFSET 1 会检索第 2 行,而不是第1行。...它使用的是列的位置,因此 SELECT 中的第一列(不管其列名)将用来填充表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。这对于从使用不同列名的表中导入数据是非常有用的。...删除表的内容而不是表 DELETE 语句从表中删除行,甚至是删除表中所有行。但是,DELETE不删除表本身。 更快的删除 如果想从表中删除所有行,不要使用 DELETE。...只有一点例外,假如表中的一个旧记录与一个用于 PRIMARY KEY 或一个 UNIQUE 索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
领取专属 10元无门槛券
手把手带您无忧上云