SQL:mysql常用语句
RDBMS即关系数据库管理系统
(Relational Database Management System)
oracle
mysql
sqlserver
db2
postgresql
sqlite
excel
数据库(Database)
数据表 table
列 column
行 row
冗余
主键 primary key
外键 foreign key
复合键
索引
参照完整性
MySQL 数据类型
三类:数值、日期/时间和字符串(字符)
数值
TINYINT 1 字节(0,255)
SMALLINT 2 字节(0,65 535)
MEDIUMINT 3 字节
INT或INTEGER 4 字节 BIGINT 8 字节
FLOAT 4 字节 DOUBLE 8 字节 DECIMAL
日期时间
DATE 日期值
TIME 时间值或持续时间
YEAR 年份值
DATETIME 混合日期和时间值
TIMESTAMP 时间戳
字符串
CHAR 0-255字节 、VARCHAR 0-65535 字节
BINARY、VARBINARY、BLOB、TEXT、ENUM和SET
事务是必须满足4个条件(ACID):
Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性 : 有非法数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。
事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。
可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。
命令:
> mysql -uroot -p123456 登陆
mysql> grant all on test.* to 'pengshiyu'@'localhost'
-> identified by '123456'; 创建用户
mysql> quit 退出
mysql> show databases; 查看数据库
mysql> create database test; 创建数据库
mysql> create database test charset utf8; 指定字符集支持中文
mysql> show create database test; 查看数据库信息
mysql> drop database test; 删除数据库
mysql> use test; 进入数据库
mysql> create table student(
-> id int auto_increment,
-> name char(32) not null,
-> age int not null,
-> register_data date not null,
-> primary key (id)
-> ); 创建表
mysql> show tables; 查看表
mysql> desc student; 查看表结构
mysql> describe student; 查看表结构
mysql> show columns from student; 查看表结构
mysql> insert into student(name, age, register_data)
-> values('tom', 27, '2018-06-25'); 增加记录
mysql> select * from student; 查询数据
mysql> select * from student\G 按行输出
mysql> select * from student limit 3; 限制查询数量
mysql> select * from student limit 3 offset 5; 丢弃前5条数
mysql> select * from student where id > 3; 条件查询
mysql> select * from student where register_data like "2018-06%"; 模糊查询
mysql> update student set name = 'cxx' where id = 10; 修改
mysql> delete from student where id = 10; 删除
mysql> select * from student order by age; 排序默认ascend
mysql> select * from student order by age desc; 降序descend
mysql> select age,count(*) as num from student group by age; 分组
mysql> select name, sum(age) from student group by name with rollup; 汇总
mysql> select coalesce(name,'sum'), sum(age) from student
-> group by name with rollup; 汇总取别名
mysql> alter table student add sex enum('M','F'); 增加字段
mysql> alter table student drop sex; 删除字段
mysql> alter table student modify sex enum('M','F') not null; 修改字段类型
mysql> alter table student modify sex
-> enum('M','F') not null default 'M'; 设置默认值
mysql> alter table student change sex gender
-> enum('M','F') not null default 'M'; 修改字段名称
mysql> create table study_record(
-> id int not null primary key auto_increment,
-> day int not null,
-> stu_id int not null,
-> constraint fk_student_key foreign key (stu_id) references student(id)
-> );命名外键约束
创建表
mysql> create table A(a int not null);
mysql> create table B(b int not null);
插入数据
mysql> insert into A(a) values (1);
mysql> insert into A(a) values (2);
mysql> insert into A(a) values (3);
mysql> insert into A(a) values (4);
mysql> insert into B(b) values (3);
mysql> insert into B(b) values (4);
mysql> insert into B(b) values (5);
mysql> insert into B(b) values (6);
mysql> insert into B(b) values (7);
交集 内连接
mysql> select * from A inner join B on A.a = B.b;
mysql> select a.*, b.* from A inner join B on A.a = B.b;
差集
mysql> select * from A left join B on A.a =B.b; 左外连接
mysql> select * from A right join B on A.a =B.b; 右外连接
并集
mysql> select * from a left join b on a.a=b.b union
-> select * from a right join b on a.a = b.b; 全连接
mysql> begin; 开始事务
mysql> rollback; 回滚事务
mysql> commit; 提交事务
mysql> show index from student; 查看索引
mysql> create index name_index on student(name(10)); 创建索引
mysql> drop index name_index on student;删除索引
相关文章
- 基于Spark Streaming + Canal + Kafka对Mysql增量数据实时进行监测分析
- MySQL学习笔记_6_SQL语言的设计与编写(下)
- [sql]生产库全备/mysql库体积大小查看
- [sql]大型网站MySQL深度优化揭秘
- SQL学习笔记四(补充-2-1)之MySQL SQL查询作业答案
- MySQL基础操作&&常用的SQL技巧&&SQL语句优化
- Mysql:read-only 配置
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- 一次mysql 优化 (Using temporary ; Using filesort)
- MYSQL分库分表总结
- MySQL delete和truncate
- 2022-09-09 MySQL查询优化器
- mysql巧妙化解递归查询树形数据 | 纯sql
- mysql隔离级别
- 第68课 Spark sql 通过JDBC 操作 Mysql 每天晚上20:00YY频道现场授课频道68917580
- SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引
- MySQL——数据库和 SQL 概念&&MySQL的安装
- MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取
- Mysql中用SQL增加、删除、修改(包括字段长度/注释/字段名)总结
- mysql在开始与结束时间过滤出有效的价格且结束时间可以为空
- MySQL数据库中索引的数据结构是什么?(B树和B+树的区别)
- MYSQL ACID
- 【mysql我能讲两小时026】innodb的next-key lock 有什么作用?避免了什么问题?
- 【mysql】用sql求中位数