SQL语句(总结,完整的select语句)
select distinct * from 表名 where ...group by ... having ...order by ...
limit start,count 执行顺序为:
from 表名
where ...
group by ...
select distinct *
having ...
order by ...
limit start,count
实际使用中,只是语句中某些部分的组合,而不是全部
创建表:
DROP TABLE if EXISTS students;
CREATE table students(
studentNO int UNSIGNED PRIMARY key auto_increment,
name VARCHAR(20),
sex VARCHAR(1),
hometown VARCHAR(20),
age INT UNSIGNED,
class VARCHAR(20),
card VARCHAR(20)
)CHARSET=utf8
1、子查询(查询结果作为where条件)
SELECT AVG(age) from students;
SELECT * FROM students WHERE age > (SELECT AVG(age) from students);
2、自关联查询:将一张表分解成两张表自关联 (一对多PS:省对应多个市-市对应多个县...)
SELECT * from areas AS p INNER JOIN areas AS c on c.pid = p.aid WHERE = '条件名';
命令行客户端:
1、进入MYSQL的bin目录
2、连接 mysql mysql -u root -p
查看所有数据库:
show databases;
使用数据库:
use 数据库名
查看当前使用的数据库:
select database();
创建数据库:
create database 数据库名 charset = utf8;
删除数据库
drop database 数据库名;
数据表中命令的操作:
修改表-添加字段
alter table 表名 add 列名 类型;
查看当前数据库中所有表
show tables;
查看表结构
desc 表名;
查看表的创建语句
show create table 表名;
mysql高级操作: 事务 -- 原子性 、持久性、隔离性、一致性
开启事务,命令如下:
开始事务后执行修改命令,变更会维护到本地缓存中,而不是维护到物理表中:begin;
提交事务,命令如下:
将缓存中的数据变更成维护到物理表中 commit;
回滚事务,命令如下:
放弃缓存中变更的数据 rollback;
修改数据的命令会触发事务,包括:insert、update、delete