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 总结一的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. ansible模块authorized_key

    示例: --- - hosts: test remote_user: root tasks: - name: deliver authorized_keys authorized_key: user: ...

  2. Android开发环境搭建中的一些小问题记录

    1.由于市场上大多数教程是基于Eclipse,而AndroidStudio显然是大势所趋,所有我在电脑上同时搭建了两个IDE,直接在官网下载AndroidStudio比较好,因为SDK,AVD都集成了 ...

  3. python面相对象进阶

    1. 类的成员 python 类的成员有三种:字段.方法.属性 字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段 属于对象,只有对象创建 ...

  4. AngularJs $q 承诺与延迟

    $q 一个帮助处理异步执行函数的服务.当他们做完处理时,使用它们的返回值(或异常). 受 Kris Kowa’s Q 的启发,这是一个实现promise/deferred对象的启用. $q的两种方式- ...

  5. VS2012使用NUGet自动下载(还原)项目中使用的包

    一: 当签出完整项目后,在解决方案名称上点右键,选择"启用NuGet程序包还原". 二: 出现询问,当然要点是,当完成后,会发现在解决方案中,多出".nuget" ...

  6. Docker change directory

    https://forums.docker.com/t/how-do-i-change-the-docker-image-installation-directory/1169/2 How do I ...

  7. JavaWeb---总结(十)JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  8. 基于centOS6.7搭建LAMP(httpd-2.4.18+mysql-5.5.47+php-5.6.16)环境

    首先确保系统可以联网.设置IP地址以及虚拟机安装linux在此略过.本文采用centos6.7 64位minimal版.php5.6.16.httpd-2.4.18.mysql-5.5.47版搭建la ...

  9. Java——Selector

  10. php 下载文件的函数

    通过函数完成下载文件的PHP功能代码 function download($url, $filename) { // 获得文件大小, 防止超过2G的文件, 用sprintf来读 $filesize = ...