说道数据库 最基本的就是了解它的逻辑和结构 掌握了逻辑和结构之后 我们才能来学习结构化语言
 函数1:创建数据库
 create database;
 create table;(表)
 查看:
 show create database;
 使用数据库:
 use
 删除 drop;
 其余一些主键 约束 数据类型再此不过多讲解 接下来 我们说一下自增字段;例: 创建含各种约束条件的数据表
 CREATE TABLE example(id INT PRIMARY KEY AUTO_INCREMENT, – 创建整数型自增主键
 name VARCHAR(4) NOT NULL, – 创建非空字符串字段
 math INT DEFAULT 0, – 创建默认值为0的整数型字段
 minmax FLOAT UNIQUE – 创建唯一约束小数型字段
 );
 用insert into语句为表插入数据
 语法: insert into 表名(字段1,字段2,…) values ……导入外部文本文件:
 – 为Monthly_Indicator表导入外部txt文件
 load data local infile '文件路径.txt’
 into table Monthly_Indicator
 fields terminated by ‘\t’
 ignore 1 lines;检查表数据
 对导入表中的数据一般从导入内容、导入数据总行数以及表结构三方面进行检查
 – 检查倒入内容Monthly_Indicator
 Select * from Monthly_Indicator;
 – 检查导入数据总行数Monthly_Indicator
 Select count(*) from Monthly_Indicator;
 – 检查表结构
 Desc Monthly_Indicator;
 – MySQL使用alter table语句修改数据表结构
 – 例:将数据表emp改名为empdep
 alter table emp rename empdep;
 – 例:将数据表empdep中depname字段的数据类型由varchar(20)修改成varchar(30)
 alter table empdep modify depname varchar(30);
 – 例:将数据表empdep中depname字段的字段名改为dep
 alter table empdep change depname dep varchar(30);
 – 例:将数据表empdep中dep字段的字段名改回为depname,并将该字段数据类型该会为varchar(20)
 alter table empdep change dep depname varchar(20);
 – 例:为数据表empdep添加新字段maname,新字段数据类型为varchar(10),约束条件为非空
 alter table empdep add maname varchar(10) not null;
 – 例:将数据表empdep中maname字段的排列顺序改为第一位
 alter table empdep modify maname varchar(10) first; – 例:将数据表emp中maname字段的排列顺序改到depid字段之后
 alter table empdep modify maname varchar(10) after depid;
 – 例:删除maname字段
 alter table empdep drop maname;
 SELECT语句的语法avg max sum min count(按列计数)等聚合函数
多表连接:
左 右 内 left right inner
 SELECT <select_list> FROM A
 LEFT JOIN B ON A.Key = B.Key;联合查询
union: 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。
 例: 用union合并t1与t2表
 select t1.* from t1
 union
 select t2.* from t2;
 union all:用于合并两个或多个 SELECT 语句的结果集,保留重复行。
 例: 用union all合并t1与t2表
 select t1.* from t1
 union all
 select t2.* from t2;
 distinct操作符
 distinct: 用来消除重复记录。
 例: 查询fruits表中所有不重复的s_id
 select distinct s_id from fruits;
 子查询
 子查询:写在()中,把内层查询结果当做外层查询参照的数据表来用
 例: 用in操作符与子查询语句来查询所有f_id对应的f_price在10元到20元之间的水果记录
 select * from fruits where f_id in
 (select f_id from fruits where f_price between 10 and 20);
 例: 用any操作符与子查询语句来查询所有f_id对应的f_price在10元到20元之间的水果记录
 select * from fruits where f_id = any
 (select f_id from fruits where f_price between 10 and 20);
 例: 用all操作符与子查询语句来查询所有f_price大于20元的水果记录
 select * from fruits where f_price > all
 (select f_price from fruits where f_price < 20);
 例: 用exists操作符与子查询语句来查询是否存在f_price大于30元的水果记录
 select * from fruits where exists
 (select * from fruits where f_price > 30); 但是子查询一般效率没有连表效率高,所以基本连表处理
 as重命名与limit限制查询结果行数
 as:可以将表名重新命名为别的名称使用,只在查询中有效
 例: 用as将fruits表名重命名为f后使用
 select f.* from fruits as f;
 limit:查询后只显示limit指定数字的行数结果
 例: 显示f_price金额最大的前三名水果记录
 select * from fruits
 order by f_price desc
 limit 3;常用数学函数
函数 说明
 ABS(x) 返回 x 的绝对值
 BIN(x) 返回 x 的二进制(OCT 返回八进制,HEX 返回十六进制)
 EXP(x) 返回值 e(自然对数的底)的 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()
 随机数生成器生成一个指定的值。
 FLOOR(x) 返回小于 x 的最大整数值,(去掉小数取整)
 CEILING(x) 返回大于 x 的最小整数值,(进一取整)
 ROUND(x,y) 返回参数 x 的四舍五入的有 y 位小数的值,(四舍五入)
 TRUNCATE(x,y) 返回数字 x 截短为 y 位小数的结果
 SIGN(x) 返回数字 x 的符号的值(正数返回 1,负数返回-1,0 返回 0)
 SQRT(x) 返回一个数的平方常用的字符串函数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
 中的位置
 LCASE(str)或 LOWER(str) 返回将字符串 str 中所有字符改变为小写后的结果
 UCASE(str)或 UPPER(str) 返回将字符串 str 中所有字符转变为大写后的结果
 LEFT(str,x) 返回字符串 str 中最左边的 x 个字符
 RIGHT(str,x) 返回字符串 str 中最右边的 x 个字符
 LENGTH(str) 返回字符串 str 中的字符数
 POSITION(substr,str) 返回子串 substr 在字符串 str 中第一次出现的位置
 QUOTE(str) 用反斜杠转义 str 中的单引号
 REPEAT(str,srchstr,rplcstr) 返回字符串 str 重复 x 次的结果
 REVERSE(str) 返回颠倒字符串 str 的结果
 LTRIM(str) 去掉字符串 str 开头的空格
 RTRIM(str) 去掉字符串 str 尾部的空格
 TRIM(str) 去除字符串首部和尾部的所有空格
 为字段赋值update…set 与 删除记录 delete其他函数说明GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果
 CAST() 将一个值转换为指定的数据类型