数据库
2019-01-08 20:03:12 34 举报
AI智能生成
只是数据库最基本的知识
作者其他创作
大纲/内容
数据库的安装
增删改查
增
insert into 表名(类型) values (对应)
删
delete from 表名 删除所有的数据
drop table 表名 删除表
drop database 库名 删除库
改
update 表名 set 类型=值
查
show databases 查看数据库
show table 看表
select * from 表名 where 条件
使用 数据库
use 使用数据库
数据库的约束
主键约束
唯一且不为空,可以有多个主键
外键约束
条件:两个表之间。 可以为空,但需要一个表中的主键的相关类型连的键数据类型一致
默认值约束
default
唯一性约束
可以为空,但只能出现一个
不为空约束
not null
自增 auto_increment
作用在主键上
常见的错误
1005:创建表失败
1006:创建数据库失败
1049:数据库不存在
1050:数据表已存在
1051:数据表不存在
1050:数据表已存在
1051:数据表不存在
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败
1169:字段值重复,更新记录失败
1177:打开数据表失败
1180:提交事务失败
1181:回滚事务失败
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:加锁超时
1211:当前用户没有创建用户的权限
1216:外键约束检查失败,更新子表记录失败
1217:外键约束检查失败,删除或修改主表记录失败
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:权限不足,您无权进行此操作
1235:版本过低,不具有本功能
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败
1169:字段值重复,更新记录失败
1177:打开数据表失败
1180:提交事务失败
1181:回滚事务失败
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:加锁超时
1211:当前用户没有创建用户的权限
1216:外键约束检查失败,更新子表记录失败
1217:外键约束检查失败,删除或修改主表记录失败
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:权限不足,您无权进行此操作
1235:版本过低,不具有本功能
查询
合并查询结果
利用union关键字,可以给出多条select语句,并将它们的即通过组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同。各个select语句之间使用 union(会删去重复行)或union all(不会删除重复行)关键字分隔。
连接查询
内连接查询(INNER JOIN)
使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新的记录,也就是说,在内连接查询中,只有满足条件的记录才能出现在结果关系中。
自连接查询:(特殊的内连接)
外连接查询
返回到查询结果集合中的不仅包含复合连接条件的行,而且还包括左表(左外连接 或左连接)、右表(右外连接或右连接)或两个边接表(全外连接)中所有数据行。
左外连接查询
右外连接查询
复合条件连接查询
子查询
1.带ANY SOME关键字的子查询,表示满足其中任一条件,他们允许创建一个表达式 对子查询的返回值列表进行比较,只要满足内层子查询中的任何一个比较条件,就 返回一个结果作为外层查询的条件。
2.带EXISTS关键字的子查询
EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是 否返回行,如果至少返回一行,那么EXISTS的结果为true,此时外层查询语句将 进行查询;如果子查询没有返回任何行,那么EXISTS返回的结果为false,此时外 层语句将不进行查询。
EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是 否返回行,如果至少返回一行,那么EXISTS的结果为true,此时外层查询语句将 进行查询;如果子查询没有返回任何行,那么EXISTS返回的结果为false,此时外 层语句将不进行查询。
3.带IN关键字的子查询 (IN、NOT IN)
IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值 将提供给外层查询语句进行比较操作。
IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值 将提供给外层查询语句进行比较操作。
函数
.COUNT()函数:
计算数据表中总共有的记录行数,或者根据查询结果返回的列中包含的行数。
计算数据表中总共有的记录行数,或者根据查询结果返回的列中包含的行数。
SUM()函数:
是一个求总和的函数,返回指定列的总和。
是一个求总和的函数,返回指定列的总和。
AVG()函数:
通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
MAX()函数:
返回指定列中的最大值。
返回指定列中的最大值。
MIN()函数:
返回指定列中的最小值。
返回指定列中的最小值。
一、数学函数
ABS(x) 返回x的绝对值
BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)
CEILING(x) 返回大于x的最小整数值
EXP(x) 返回值e(自然对数的底)的x次方
FLOOR(x) 返回小于x的最大整数值
GREATEST(x1,x2,...,xn)返回集合中最大的值
LEAST(x1,x2,...,xn) 返回集合中最小的值
LN(x) 返回x的自然对数
LOG(x,y)返回x的以y为底的对数
MOD(x,y) 返回x/y的模(余数)
PI()返回pi的值(圆周率)
RAND()返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y)返回参数x的四舍五入的有y位小数的值
SIGN(x) 返回代表数字x的符号的值
SQRT(x) 返回一个数的平方根
TRUNCATE(x,y) 返回数字x截短为y位小数的结果
ABS(x) 返回x的绝对值
BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)
CEILING(x) 返回大于x的最小整数值
EXP(x) 返回值e(自然对数的底)的x次方
FLOOR(x) 返回小于x的最大整数值
GREATEST(x1,x2,...,xn)返回集合中最大的值
LEAST(x1,x2,...,xn) 返回集合中最小的值
LN(x) 返回x的自然对数
LOG(x,y)返回x的以y为底的对数
MOD(x,y) 返回x/y的模(余数)
PI()返回pi的值(圆周率)
RAND()返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y)返回参数x的四舍五入的有y位小数的值
SIGN(x) 返回代表数字x的符号的值
SQRT(x) 返回一个数的平方根
TRUNCATE(x,y) 返回数字x截短为y位小数的结果
二、聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
MIN(col)返回指定列的最小值
MAX(col)返回指定列的最大值
SUM(col)返回指定列的所有值之和
GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果
AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
MIN(col)返回指定列的最小值
MAX(col)返回指定列的最大值
SUM(col)返回指定列的所有值之和
GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果
三、字符串函数
ASCII(char)返回字符的ASCII码值
BIT_LENGTH(str)返回字符串的比特长度
CONCAT(s1,s2...,sn)将s1,s2...,sn连接成字符串
CONCAT_WS(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔
INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果
FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置
ASCII(char)返回字符的ASCII码值
BIT_LENGTH(str)返回字符串的比特长度
CONCAT(s1,s2...,sn)将s1,s2...,sn连接成字符串
CONCAT_WS(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并用sep字符间隔
INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果
FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置
四、日期和时间函数
CURDATE()或CURRENT_DATE() 返回当前的日期
CURTIME()或CURRENT_TIME() 返回当前的时间
DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),
CURDATE()或CURRENT_DATE() 返回当前的日期
CURTIME()或CURRENT_TIME() 返回当前的时间
DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),
五、加密函数 MD5() 计算字符串str的MD5校验和
正则表达式简介REGEXP
以特定字符或字符串开头的记录 REGEXP '^b'
以特定字符或字符串结尾 REGEXP 'y$'
用符号'.'来代替字符串中的任意一个字符
'*'匹配前面的字符任意多个,包括出现0次 范围:0~n次 (前面一个)
'+'匹配前面的字符至少出现一次 范围:1~n次 (前面所有)
‘[^字符集合]’匹配不在指定集合中的任何字符(只要有一个满足条件就返回)
子主题
使用{M}或者{M,N}来指定字符串连续出现的次数
字符串{n,}表示至少匹配n次前面的字符串
字符串{n,m}表示匹配前面的字符串不少于n次,不多于m次
0 条评论
下一页