Mysql基本

子查询,递归查询,索引与外键,链接表,一个表插入另一个表,双表查询,添

加数据有几种方式。


in(not in)查询值是否在这个表中
between 值1 and 值2 (not) :查询值是否在这个范围中;
is NULL (not) 判断字段的值是否为空;
SELECT DISTINCT 字段名 FROM 表名:查询的值不重复;可作用与多个字段;
带关系运算符的查询:
=等于,<>不等于,等等;
link 关键字的查询,%为通配符;下划线通配符表示一个字符;(_)

and: 且:select id,tea_name,tea_age,tea_class from tea where id in (1,2,3,4) and tea_
name like '%a' and tea_class='javascript';

or : 或 :select * from tea where id<4 or tea_name<>'haha' or classNum=20;

高级查询:
COUNT()——返回某列的行数
SUM()——返回某列值的和
AVG()——返回某列的平均值
MAX()——返回某列的最大值
MIN()——返回某列的最小值

对查询结果的排序
order by ASC方式,升序进行排序
order by DESC方式,降序进行排序、

分组查询:
group by一般和聚合函数(高级查询的函数)如:count(),和having一起使用;

限制结果数量的查询:
limit 值1 为显示条数的数量
limit 值1,值2,:和排序一起使用,值1表示起始位置,值2表示数目;


mysql函数列表
数学函数
ABS(x),返回x的绝对值
SQRT(x),返回x的非负2次方根
MOD(x,y),返回x被y除后的余数
CEILING(x),返回不小于x的最小整数
FLOOR(x),返回不大于x的最大整数
ROUND(x,y),对x进行四舍五入操作,小数点后保留y位
TRUNCATE(x,y),舍去x中小数点y位后面的数
SING(x),返回x的符号,-1、0或者1

字符串函数
LENGTH(str),返回字符串str的长度
CONCAT(s1,s2,……),返回一个或者多个字符串连接,产生的新的字符串
TRIM(str),删除字符串两侧的空格
REPLACE(str,s1,s2),使用字符串s2,替换字符串str中所有的字符串s1
SUBSTRING(str,n,len),返回字符串str的子串,起始位置为n,长度为len
REVERSE(str),返回字符串反转后的结果
LOCATE(s1,str),返回子串s1在字符串str中的起始位置

日期和时间函数
CURDATE()——获取系统当前日期
CURTIME()——获取系统当前时间
SYSDATE()——获取当前系统日期和时间
TIME_TO_SEC()——返回将时间转换成秒的结果
ADDDATE()——执行日期的加运算
SBUDATE()——执行日期的减运算
DATE_FORMAT()——格式化输入日期和时间值

条件判断函数
IF(expr,v1,v2)——如果expr表达式,为true返回v1,否则返回v2
IFNULL(v1,v2)——如果v1不为NULL,返回v1,否则返回v2
CASE expr WHEN v1 THEN r1[WHEN v2 THEN r2……][ELSE m] END——如果,expr

值等于v1,v2等,则返回对应位置THEN后面的结果,否则,返回ELSE后的结果rn

加密函数
MD(str)——对字符串str,进行MD5加密
ENCODE(str,pwd_str)——使用pwd作为密码,加密字符串str
DECODE(str,pwd_str)——使用pwd作为密码,解码字符串str

为表添加外键约束:

Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(

主键字段名);


删除外键约束:
Alter table 表名 drop foreign key 外建名;

表之间的关系:
一对一;人与身份证
多对一;部门与员工
多对多;学生与课程


交叉连接;连接两个表并查询数据:
SELECT * FROM 表1 CROSS JOIN 表2;

内连接查询:
SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 表1.关系字段=表2.关系字段;

外链接查询

SELECT 所查字段 FROM 表1 LEFT } RIGHT [OUTER] JOIN表2
ON 表1.关系字段=表2.关系字段 WHERE 条件

子查询

1. in关键字来进行子查询 如:查询年龄为22的员工存在的部门
2. exists关键字进行子查询,只返回true 和 false
3. any 进行子查询;select * from department where did>any(select did from employee);查

询满足条件的可以比较的操作(大于某一个值)
4. all 进行子查询;select * from department where did>all
(select did from employee);满足条件的比较操作,(大于子查询中的所有的值)
5.带比较运算符的子查询



事物
1.开启事物:start transaction;
2.提交事物:commit;
3.回滚事物:rollback;

删除表数据
1.DROP TABLE table_name ;删除表
2.truncate table tb;删除表的数据但是不删除表的结构;
3.delete table tb;删除表的数据但是不删除表的结构;可以到where条件。效率最低


更新修改表的数据用update
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Claus


视图:是从一个或多个表中导出来的表
是一种虚拟存在的表,并且,表的结构和数据都依赖于基本表

通过视图,不仅可以看到存放在基本表中的数据,还可以像操作基本表一样,对

视图中存放的数据进行查询、修改和删除

存储过程:添加一个存储,减少操作;


事物:就是针对数据库的一组操作,可以由一条或多条SQL语句组成,同一个事务

的操作,具备同步的特点,如果,其中有一条语句无法执行,那么,所有的语句

都不会执行
事务中的语句,要么都执行,要么都不执行



删除,添加或修改表字段:alter
ALTER TABLE testalter_tbl DROP i;删除
ALTER TABLE testalter_tbl ADD i INT;添加列
ALTER TABLE testalter_tbl MODIFY c CHAR(10);修改字段的类型
alter table tableName drop foreign key keyName;删除外键的约束吧;


索引:普通索引,唯一性索引,全文索引,空间索引的创建
1.创建表的时候建立索引
2.create index创建索引
3.alter table创建索引。ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL]

INDEX
索引名 (字段名 [(长度)] [ASC|DESC]

修改字段名
ALTER TALBE 表名 CHANGE 旧字段名 新字段名 新数据类型;
修改字段类型
ALTER TABLE 表名 MODIFY 字段名 数据类型 ;
修改字段排列位置
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2
添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已存在字段

名]
删除字段
ALTER TABLE 表名 DROP 字段名;

修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;


一张表插入另一张表
1. 表结构完全一样
insert into 表1
select * from 表2
2. 表结构不一样(这种情况下得指定列名)
insert into 表1 (列名1,列名2,列名3)
select 列1,列2,列3 from 表2


查看数据表的结构
desc 表名;
show columns from 表名;
describe 表名;
show create table 表名;










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值