mysql的常用语句和语法
//创建数据库
CREATE DATABASE DATABASE-NAME
//删除数据库
DROP DATABASE DATABASE-NAME
//更改表名
alter table oldname rename to newname;
//更改表的引擎
alter table tablename engine="MyISAM";
//切换数据库
use databasename;
//创建表的语法
create table 表名(
字段1 字段类型,
字段2 字段类型,
...
字段n 字段类型
);
//常用的时间数据类型
date :日期类型 格式为: yyyy-MM-dd
time :时间类型 格式为:hh:mm:ss
timestamp 时间戳类型 格式为 yyyy-MM-dd hh:mm:ss 会自动赋值
datetime 日期时间类型 格式为 yyyy-MM-dd hh:mm:ss
//显示当前数据库中所有的表
show tables;
//查看某张表的结构
desc tablename;
//在表中增加一列,这里增加的是 add_col,类型为varchar(10)
alter table tablename add add_col varchar(10);
//修改某一字段的长度
alter table tablename modify colname varchar(30);
//删除某一个字段
alter table tablename drop colname;
//修改表名
rename table tablename to newname;
//修改表中的字段名.后面的字段类型要和原本一样,不然就不止改字段名字了
alter table tablename change colname newname varchar(20);
//修改表的编码为GBK
alter table tablename character set gbk;
对数据库进行增删查改
//插入数据
insert into tablename (colname1,colname2...colnamen) values(value1,value2...valuen)
//更新数据
update tablename set colname where colname='?';
//子查询 找的一个例子,基本结构就是将一个查询结果作为一张表在进行连接查询
SELECT
e.ename, t.deptno, e.sal
FROM
emp e
JOIN
(SELECT
deptno, AVG(sal) AS avgSal
FROM
emp
GROUP BY deptno) t ON e.deptno = t.deptno
WHERE
e.sal > t.avgSal;
mysql的搜索引擎
1.MyiSAM
节省数据库空间,当数据读操作远远大于修改删除时,使用该引擎
2.innoDB
支持事务,当数据的修改较多的时候,使用该引擎
3.MEMORY
存储在内存中,速度快,长存放的是临时性,非永久的数据
mysql的事务
事务要保证多个操作的原子性,保证批量的DML的要么全部成功,要么就全部失败。
account | monery |
1001 | 1000 |
1002 | 2000 |
update t_bank=100 where account=1001;
update t_bank=2500 where account=1002;
两条语句单独来看是具有原子性的,单是在执行的过程中,可能会出现第二条语句不执行,
事务可以保证事件的原子性。事务的四个特征
- 原子性
- 一致性
- 隔离性
- 持久性
MySQL的事务提交和回滚
在mysql中,事务是自动提交的,执行完一条DML语句以后,就开启并提交事务,可以通过下面的语句查看是否为自动提交。
show variables like '%commit%';
关闭自动提交
start transaction;