标签:模糊匹配 ant truncate action 事务的概述 base modify 记录操作 col
数据库(mysql) sql是一种编程语言,用于存储,查询,更新,管理关系型数据库 分为四类: DDL:数据定义语言 //针对于数据库和表,creat drop alter select DCL:数据控制语言 //grant...if DML:数据操纵语言 //操作表中数据,insert delete update DQL:数据查询语言 //查询:select 1.数据库的创建/删除/查/切换 a)Create database 数据库名称 //创建数据库 b)Drop database 数据库名称 //删除数据库 c)Show databases //查看所有数据库 d)Use 数据库名称 //切换数据库 2.数据表的操作 创建/删除/修改/show 1 Creat table 表名(字段名1 类型 约束, 字段名2 类型 约束。。。) //创建表格 i.类型: Java中的类型 MySQL中的类型 byte/short/int/long tinyint/smallint/int/bigint float float double double boolean bit char/String char和varchar类型 //char 表示固定长度的字符串,varchar表示可变长度的字符串 定义时需指定长度。 Date date/time/datetime/timestamp //datetime 与datestamp均表示日期时间,区别datetime默认null,datestamp默认当前系统时间 file blob/text ii.约束: primary key //主键约束 not null //非空约束 unique //唯一约束 2 show tables //查看所有表 desc 表名 //查看某个表结构 3 Drop table 表名 //删除 4 修改表: alter table 表名 add 列名 字段类型(长度) [约束] //添加列 alter table 表名 drop 列名 //删除列 alter table 表名 change 旧列名 新列名 字段类型(长度) [约束] //修改列名 alter table 表名 modify 列名 字段类型(长度) [约束] //修改字段类型/长度/约束 alter table 表名 rename to 新表名 //修改表名 rename table 表名 to 新表名 alter table 表名 chatacter set 新字符集 [collate字符集校验规则] //修改字符集 3.表记录操作 1 添加数据 Insert into 表名(列1,列2,列3) values(值1,值2,值3) //添加部分数据 insert into 表名 values(值1,值2,值3 。。。) //添加数据 2 修改数据 update 表名 set 列1=值1,列2=值2,...[where 条件];//省略where条件则修改整列值 3 删除数据 delete from 表名 [where 条件] //删除满足条件的记录 delete from 表名 //删除所有记录,一行一行删 truncate table //删除表,将表删除,然后创建一张和之前表结构相同的新表trancate table 4 基本查询 select * from 表名 where 条件 //按一定条件查询记录 select * from 表名 where name like "李%"; //模糊匹配 "%"代表0个或者多个占位符 "_"表示一个占位符,还可以not like 。。。 select * from 表名 where name in (a,b,c...) //在指定范围内查找记录,也可以使用between...and... 实现,前面可以加not select * from 表名 where english >86 AND english <100; //查找英语成绩在80-100之间的记录,and ->与,or->或,not->否定 select * from 表名 where name is null //用is null 判断是否是空,is not bull 5 聚合函数: sum(字段名) //求和,下面类似 avg() //求平均值 count(*) //统计个数 min() //求最小值 max() //求最大值 ifnull(字段名,值) //任何值和null相加均为null,用ifnull,如果该字段是null 那么用给定的值代替,不为null则返回原来的值 拓展: length(刘a) -->4 //计算字段值的长度,不属于聚合函数,一个中文占3个字符 charlength(刘a) -->2 //字符长度 6 分组函数 group by 字段名 [having 条件] 总结 select … from 表名 where 条件 group by 字段名 hanving 条件 order by asc/desc; having :当条件有聚合函数或者分组之后还需筛选,那么使用having过滤,其他情况用where where : 是对原始表中数据进行过滤,having是对查询结果进行过滤 执行顺序:from...where...group by...select...having...order by 分页查询 select * from table limit 3,5; //其中3表示从第四条记录开始,5表示查询5条数据
MySQL多表&事务 1.数据库的密码重置,备份和还原 1 密码重置:跳过权限开启服务:mysqld –skip-grant-tables-->重新开启cmd,登录mysql-->use mysql-->update user set password=password(‘123’) where user=’root’;-->结束mysqld.exe,重新开启服务 2 数据库还原:方式1:create database db3;-->退出数据库:\q 回车-->mysql -uroot -p db3 < c:/db3.sql 方式2:create database db3;-->source c:/db3.sql; 2.表与表之间的关系的建立 1 一对多:在多的一方添加外键指向一的一方的主键 添加外键: sql语句实现:foreign key (did) references dept(did) //在创建表是添加语句: constraint abc foreign key (did) references dept(did) //abc 为之地指定的约束名,后续可通过名字删除外键 alter table employee add constraint abc foreign key (did) references dept(did) //在创建表之后添加外键 工具实现: 2 多对多:创建一张中间表,在中间表中至少有2个字段分别设置外键指向多对多双方的主键; 3 一对一:假设其中一的一方为多的一方,在多的一方添加外键指向一的一方的主键,并且给外键再设置一个唯一约束 3.多表查询 1 连接查询 交叉连接:-->cross join select * from 表1 cross join 表2; //查询到两个表的笛卡儿积 select * from 表1,表2; //省略了cross join 内连接-->inner join 显示内连接 select * from 表1 inner join 表2 on 关联条件 //也可用where连接条件 隐式内连接 select * from 表1,表2 where 关联条件; //较为常用 外连接-->outer join 左外连接: select * from 表1 left outer join 表2 on 连接条件; 右外连接: select * from 表1 right outer join 表2 on 连接条件; //outer均可省略 2 子查询 使用场景:一个查询语句的条件需要依赖另一个查询语句的结果就叫子查询,也就是说sql语句可以嵌套使用。 分类 带in的子查询:在给定的结果内查询 带exists 子查询:如果exists后面的查询结果存在,执行前面的sql语句 带any子查询:只要符合any后面查询语句的任何一个结果就行 //放在关系表达式中,表示任意 带all的子查询:要符合all后面查询语句中的所有结果才行。 //表示所有 4.事务的概述-->指的是一组逻辑操作,要么同时成功要么同时失败。start transaction commit rollback 使用事务: 开启事务:start transaction 提交事务:commit; 回滚事务:rollback; 四大特性: 原子性:组成事务的最小单元是不可分割的,要么同时成功要么同时失败。 //同时成功,同时失败 一致性:执行事务前后,数据的完整性是一致的;(也就是案例中总钱数是一样的) //数据完整性 隔离性:在数据库中,各个事务之间应该是独立的,不应该受其他事务的影响。 //独立 持久性:事务一旦结束,数据就会序列化到数据库中。 事务的隔离级别: read uncommitted:脏读,不可重复读,虚读都有可能发生 read committed :避免脏读。但是不可重复读和虚读是有可能发生 repeatable-read :避免脏读和不可重复读,但是虚读有可能发生。 serializable:避免脏读,不可重复读,虚读。 从上到下级别越来越高,但是效率越来越低。 脏读:一个事务读到了另一个事务未提交的数据。 不可重复读:一个事务读到了另一个事务已经提交的update数据 虚读/幻读:一个事务读到了另一个事务已经提交的insert数据
标签:模糊匹配 ant truncate action 事务的概述 base modify 记录操作 col
原文地址:https://www.cnblogs.com/liuxuelin/p/10004114.html