mysql 总结一
mysql 总结一
数据类型(四类):
整型(5种:tinyint,smallint,mediumint, int(或integer),bigint );
浮点型:(float,double),
日期:(5种:year,time,date,datetime,timestamp),
字符:(char,varchar,tinytext,text,mediumtext,longtext,enum,set)
~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
show databases;
@1:打开数据库:
use 数据库名称
@2:创建表:
create table【if not exists】 table_name(
column_name data_type,
......
)
@3:查看表结构:
show COLUMNS from cost;
~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@1:null;not null;
@2:auto_increment;(自动编号,且必须与主键组合使用,默认起始1,增量1,可为float,但小数位必须为0);
@3:(primary )key(主键约束,每张表只有一个主键,主键自动为not null);
@4:unique key(可以为空,每张表可以由多个唯一约束)
@5:default(当插入记录时,若没有明确为字段赋值,则自动赋值默认值)
~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@6:外键
外键约束的要求:
#1:父表和子表必须使用相同的存储引擎(??),而且禁止使用临时表。
#2:数据表的存储引擎只能为InnoDB。
#3:外键列和参照列必须使用相似的数据类型。其中数字的长度或是否有符号位必须相同;字符的长度可以不同。
#4:外键列和参照列必须创建索引。若外键不存在索引的话,mysql将自动创建索引。
(物理)外键约束的参照操作
#1:cascade:从父表删除或更新且自动删除或更新子表中匹配的行。
#2:set null :从父表删除或更新行,并设置子表中的外键列为null。如果使用该项,必须保证子表列没有指定not null。
#3:restrict:拒绝对父表的更新或删除操作。
#4:no action:标准sql的关键字,在吗mysql中与restrict相同。
表级约束和列级约束
#1:列级约束:对一个数据列建立的约束。
#2:表级约束:对多个数据列建立的约束。
#3:列级约束可以在定义列时声明,也可以在列定以后声明。
#4:表级约束只能在列定以后声明。
~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@7:修改数据表
针对字段的操作: 添加/删除字段 ,修改列定义,修改列名称等;
针对约束的操作: 添加删除各种约束;
针对数据表的操作: 数据表更名(两种方式)。
添加单列
alter table table_name add [column]column_name column_definition [first|after colum_name];
添加多列
alter table table_name add [column](column_name column_definition, ...);
删除列
alter table table_name [drop [column]column_name ][,drop clomun_name];
添加主键约束
alter table table_name add [constraint [symbol]] primary key[index_type] (index_clo_name,...);
添加唯一约束
alter table table_name add [constraint [symbol]] unique[index|key] [index_name] [index_type];
(index_col_name,...);
添加外键约束
alter table table_name add [constraint [symbol]] foreign key[index_name](index_col_name,...) reference_definition;
添加/删除默认约束
alter table table_name alter [column] col_name {set default literal | drop default};
删除主键约束
alter table table_name drop primary key;
删除唯一约束
alter table table_name drop {index|key} index_name;
删除外键约束
alter table table_name drop foreign key fk_symbol;
alter table table_name drop index index_name; 删除指定列上的索引。
修改列定义
alter table table_name modify [column]col_name column_definition [first|after column_name];
修改列名称
alter table table_name change [column] old_col_name new_col_name col_definition [first|after col_name];
修改数据表名称
alter table table_name rename [to|as] new_col_name;
rename table tab_name to new_tbl_name [,tabl_name2 to new_tab_name2] ...;
~~~~~~~~~~~~~~~~~~~~~~~~~我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查询模板:
select select_expr[,select_expr...]
[
from table_references
[where where_condition]
[group by {col_name|prosition} [ASC|desc],...]
[having where_condition]
[order by {col_name|expr|position} [asc|desc],...]
[limit {offset, row_count|row_count OFFSET offset }]
]
mysql 总结一的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
随机推荐
- Python基础2:流程控制语句 while / for循环
[ while 循环 ] 如果要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+ ...
- CentOS7安装mongoDB数据库
CentOS7安装mongoDB数据库 时间:2015-03-03 16:45来源:blog.csdn.net 作者:进击的木偶 举报 点击:8795次 mongoDB是目前发展比较好的NOSQL数据 ...
- django redirect的几种方式
You can use the redirect() function in a number of ways. By passing some object; that object’s get_a ...
- vi编辑文件出现Can't open file for writing错误
可以用 ll 命令查看一下文件的权限,很有可能是没有权限,用chmod命令修改一下权限就可以了(当然是文件所有者或者root用户才能修改),或者切换成root用户(不推荐)
- python获取知乎日报另存为txt文件
前言 拿来练手的,比较简单(且有bug),欢迎交流~ 功能介绍 抓取当日的知乎日报的内容,并将每篇博文另存为一个txt文件,集中放在一个文件夹下,文件夹名字为当日时间. 使用的库 re,Beautif ...
- 使用dom4j解析XML文档
dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...
- ruby 淘宝镜像
由于国内GFW原因,导致无法安装gem库文件.故选择淘宝镜像, 如何使用? $ gem sources --remove https://rubygems.org/ $ gem sources -a ...
- iOS - libc++abi.dylib: terminate_handler unexpectedly threw an exception
代码出现crash,报错:libc++abi.dylib: terminate_handler unexpectedly threw an exception 当我们很明确是某一块代码执行导致了错误, ...
- JZOJ 1312:关灯问题
传送门 少见的DP再DP题目.题面不短,但是可以看出来这是一道DP题.而且正解的算法复杂度应该是$O(N^3)$.而且给了部分$O(N^4)$的算法的分.可以看出来要AC是要在DP上加上优化的. 设$ ...
- “我是谁?”-管理者的角色、职责与工作思路.ppt
http://doc.mbalib.com/view/95b6a675adeaf38a2c028bd4f53f0bf6.html 管理者的三大工作重心: 任务(目标).团队.规划.