一 SQL语句

  1. 数据库级别(*)

  •     显示全部数据库:show databases;
  •     创建数据库:create database '数据库名字’;
  •     使用数据库:use '数据库名字';
  •     删除数据库:drop database 's数据库名字‘;
  •     导出数据库:mysqldump -uroot -p 数据库名 > 导出文件名
  •     导入数据库:mysql -uroot -p 数据库名 < 文件路径.数据表

  2.数据表级别(*)

  •     显示全部数据表:show tables;
  •     显示数据表列:desc '数据表名';
  •     创建表:create table '数据表名'(nid 类型,name 类型);
  •     删除表:drop table '数据表名';
  •     清空表内容:elete from '数据表名';
  •     清空表内容:truncate table '数据表明'; 速度快,自增回到原点;
  •     添加列:lter table '表名' add ‘列名’ 类型;
  •     删除列:alter table '表名' drop column '列名';
  •     修改列类型:alter table '表名' modify column '列名' 类型;
  •     修改列名和类型:alter table '表名' change '原列名' '新列名' 类型;
  •     添加主键:alter table '表名' add primary key;
  •     删除主键:alter table '表名' drop primary key;
  •     添加外键:alter table '主表名' add constraint '外键名' foreign key '从表名'('外键字段') references '主表'(字段');
  •     删除外键:alter table '表名' drop foreign key '外键名';

    create table '表名'('Field名' 'Field类型' '是否为空' 默认值,'Field名' 'Field类型' '是否为空' 默认值)engine=innodb charset=utf8;

    例:

      

    创建表tb2成功。

    create table '表名'('Field名' 'Field类型' '是否为空' 默认值 auto_increment primary key,'Field名' 'Field类型' '是否为空' 默认值)engine=innodb charset=utf8; auto_increment代表自增(只能数值类型,所引,主键,一张表只能由一个自增列),加它时后面一定要由primary key(一张表只能由一个主键,不能为NULL,一般情况下把自增列设为主键,可以两列一起作为主键,查找速度非常快)

    例:

      

      

      可以看到,我只查了num的值,但是id的value是随着递增的。

    a. delete from '数据表'与truncate table '数据表'的区别

      (1) 用delete from tb2;清空数据表tb2后,然后重新插入两行数据,结果:

      

      可以看到id是在原来的基础上递增的。

      (2) truncate table tb2; 然后再重新插入数据,结果:

      

      可以看到表中id列是从1开始递增了。

    b. 外键

      把两个表中的两列进行了关联,加了约束。

      (1) 创建friInfo的表:

      

      创建department的表:

      

      向department表中插入数据,显示:

      

      将friInfo表中的departmentId和department表中的id建立关联:

      

      fk_f_d是外键的名字;外键建立成功。

      我们看看能否在friInfo表中的departmentId中插入在department表id列中没有的数字,结果:

      

      提示我们不可以插入数据,那我们插入符合要求的,结果:

      

      可以看到插入成功。

      friInfo表中的departmentId列的数据只能从department中的id列选取。

      (2)可以在创建表的时候直接添加约束

      例:

        create table department(
        id int not null auto_increment primary key,
         name varchar(20))engine=innodb default charset=utf8;         create table friInfo(
         id int not null auto_increment primary key,
        name varchar(20),
        departmentId int,
        constraint fk_f_d foreign key(departmentId) referneces department(id))engine=innodb default charset=utf8;

  3.数据行级别(****)

    增:a. insert into '表名'('列名','列名') values('值','值'),('值','值'), ('值','值'); 一次插入多条数据;

      b. insert into '表名'('列名','列名') select '列名','列名' from '表名'; 把另一个表的两列中的数据插入到表的列中;

    删:delete from  '表名' where '列名'='值'; 将某一列中某一值的一行数据删掉; '列名'>'值',  '列名'<值',  '列名'!='值' 都可以;

    改:update '表名' set '列名1'='值1' where '列名2'='值2' and ...; 把'列名2'='值2的'列名1'的值改为'值1';

    查:select  '列名1', '列名2' from '数据表名' where '列名'='值'; 显示表中'列名'='值'的那行中 '列名1'和'列名2'数据;

    其他:条件,通配符,限制,排序,分组,连表,组合。参考https://www.cnblogs.com/wupeiqi/articles/5713315.html

二 SQL基本数据类型

  1. 数字

   (1) bit(m) 二进制位,m表示二进制位的长度,范围1~64,默认m=1

   (2) tinyint 相当于c++中的int8类型,默认是有符号的,创建无符号:tinyint unsigned;注意:布尔类型用 tinyint(1)表示;

   (3) smallint 相当于c++中的int16类型;

   (4) int 相当于c++中的int32类型;

   (5) bigint 相当于c++中的int64类型;

   (6) decimal(m[,d]) 精确的小数,m是数字总个数(负号不算),最大值65,d是小数点后个数,最大值30;

   (7) float(m,d) 单浮点数,m是数字总个数,d是小数点后数字个数;数值越大越不准确;

   (8) double(m,d) 双浮点数,m是数字总个数,d是小数点后数字个数;数值越大越不准确;

  2.字符串

   (1) char(m) 固定长度的字符串,最大长度255字符,m代表字符串长度,即使数据小于m,也会占用m个字符;

   (2) varchar(m) 可变长度的字符串,最大长度255字符,m代表字符串长度,只要小于m长度的字符串都可以保存在数据类型中;相比于char类型效率较低;

   (3) text 保存变长的大字符串,最大长度65535个字符;

   (4) mediumtext 保存变长的大字符串,最大长度16777215个字符;

   (5) longtext 保存变长的大字符串,最大长度4294967295个字符;

   (6) TinyBlog、Blog、MediumBlog、LongBlog 二进制数据;

  3.时间

   (1) date: YYYY-MM-DD;

   (2) time: HH:MM:SS;

   (3) datetime:  YYYY-MM-DD HH:MM:SS;

   (4) year: YYYY;

   (5) timestamp: YYYYMMDD HHMMSS;

  4.枚举

   相当于c++中的枚举。

   用法:

      create table studentInfo(
      name varchar(20),
      age int,
       class ENUM('class1', 'class2', 'class3')
      )engine=innodb default charset=utf8;
      
      insert into studentInfo(name,age,class) values('a',19,'class1'),('b',20,'class2'),('c',21,'class3');

  5.集合

   可以设置多个值。

   用法:

      create table teacher(
       name varchar(20),
       course SET('math', 'sports', 'english')
      )engine=innodb default charset=utf8;       insert into teacher(name,course) values('a', ('math', 'sports')), ('b', ('english', 'sports')), ('c', ('math', 'english'));

MySQL学习(3)的更多相关文章

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

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

  2. 我的MYSQL学习心得(二) 数据类型宽度

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

  3. 我的MYSQL学习心得(三) 查看字段长度

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

  4. 我的MYSQL学习心得(四) 数据类型

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

  5. 我的MYSQL学习心得(五) 运算符

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

  6. 我的MYSQL学习心得(六) 函数

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

  7. 我的MYSQL学习心得(七) 查询

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

  8. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  9. 我的MYSQL学习心得(九) 索引

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

  10. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

随机推荐

  1. Redis-输入输出缓冲区

    一.client list id:客户端连接的唯一标识,这个id是随着Redis的连接自增的,重启Redis后会重置为0addr:客户端连接的ip和端口fd:socket的文件描述符,与lsof命令结 ...

  2. Java 并发编程 -- Fork/Join 框架

    概述 Fork/Join 框架是 Java7 提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架.下图是网上流传的 Fork Join 的 ...

  3. 【底层原理:深入理解计算机系统】#1 一切从"hello world"说起 (一)

    计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序.虽然系统的具体实现方式随着时间不断的在变化,但是系统的内在概念却没有改变的. 所有的计算机硬件和软件有着相似的结构和功能.这个系列专题便 ...

  4. CSS——NO.10(设置技巧)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. C++走向远洋——33(静态成员的应用)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  6. IP 转发分组的流程

    IP 转发分组的流程 数据路由:路由器在不同网段转发数据包: 网络畅通的条件:数据包能去能回: 从源网络发出时,沿途的每一个路由器必须知道到目标网络下一跳给哪个接口: 从目标网络返回时,沿途的每一个路 ...

  7. TCP 可靠传输与流量控制的实现

    TCP 可靠传输与流量控制的实现 一.TCP可靠传输的实现 现在所讲的可靠传输是根据之前所说的可靠传输原理的实现,是现实中应用的技术. 1.1.以字节为单位的滑动窗口 如图A端一份文件分为了多个字节, ...

  8. MUI使用H5+Api调取系统相册多图选择及转base64码

    伟大的哲学家曾说过"写代码,一定要翻文档" 这次我们需要用到的是调取系统相册进行多图上传,先奉上html5+api关于系统相册的文档链接链接:HTML5+ API Referenc ...

  9. python笔记26

    一.今日内容 python中的方法 python中的方法+正则表达式的新内容 #分组 #分组命名 #引用分组 #爬虫的小例子 1.转义符 如:\n--->\\n--->print('\\n ...

  10. ZYNQ入门实例——定时器中断与程序固化

    一.前言 APU系统中CPU以串行执行代码的方式完成操作,软件方式很难做到精准计时,因此调用内部定时器硬件完成计时是更好的选择.本文以定时器中断方式控制LED周期性闪烁为例学习私有定时器的使用.同时学 ...