打开数据库

USE db_name;

SELECT DATABASE();查看当前所选中的数据库

创建数据表

CREATA TABLE [IF NOT EXISTS] table_name ( column_name data_type , …)

UNSIGNED无符号类型

查看数据表

SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]

FROM db_name 可以指定去查看某一个数据库内部的表

查看数据表列表

SHOW COLUMNS FROM tbl_name

记录的插入

INSERT [INTO] tbl_name [(col_name , …)] VALUES (val , … )

如果要省略col_name的话,要把所有字段赋值才行。

记录的查找

SELECT expr,… FROM tbl_name

eg.SECECT * FROM tb1;

添加单列

ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]

FIRST插入的列在最前面

AFTER插入的列在指定列的后方

省略的话插入的列在最后

添加多列

不能指定位置关系,只能在原来数据表的下方

ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition, …)

删除列

ALTER TABLE tbl_name DROP [COLUMN] col_name

ALTER TABLE tbl_name DROP [COLUMN] col_name,… (←删除多列)

也可以同时删除之后,进行添加操作,逗号分割。


添加主键约束

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,…)

添加唯一约束

ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type](index_col_name,…)

添加/删除默认约束

ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

删除主键约束

ALTER TABLE tbl_name DROP PRIMARY KEY

删除唯一约束

ALTER TABLE tbl_name DROP {INDEX | KEY} index_name

修改列定义

ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]

ALTER TABLE tbl_name CHANGE[COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name](←还可以更改列名称)

修改数据表名字

①ALTER TABLE tbl_name RENAME [TO | AS] new_tbl_name

②RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2]…(←可以为多张数据表的更名)

不要随意更改表名或者列名


空与非空

NULL 字段可以为空

NOT NULL 字段不可以为空

自动编号(记录唯一性)

AUTO_INCREMENT

自动编号,必须和主键(PRIMARY KEY)组合使用

默认情况下起始值为1,每次增量为1(INT型,或者小数位数为0的float型)

PRIMARY KEY

每张表只能有一个主键,主键保证记录的唯一性,主键自动为NOT NULL

AUTO_INCREMENT必须和主键一起用,但是主键不一定必须要和AUTO_INCREMENT一起用。

唯一约束

UNIQUE KEY

一张数据表可以存在多个UNIQUE KEY,但是只能存在一个PRIMARY KEY

唯一约束可保证记录的唯一性,可以为空值(NULL),每张数据表可以存在多个唯一约束

ALTER TABLE tb_name ADD COLUMN column_name type value;

例如:alter table mybook add column publish_house varchar(10) default '';

username 不能有两个Tom, 这就是唯一约束

默认约束

DEFAULT

插入记录时,没有明确为字段赋值,则自动赋予默认值。

插入记录时没有给sex赋值,则默认为3


总结

  • 数据类型:字符型,整型,浮点型,日期时间型
  • 数据表操作:插入记录,查找记录
  • 记录操作:创建数据表,约束的使用
  • 约束:NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE KEY, FOREIGN KEY
  • 表级约束,列级约束
  • 针对字段的操作:添加删除字段,修改列定义,列名称
  • 针对约束操作:添加删除约束
  • 针对数据表:数据表更名

MySQL学习笔记(2)的更多相关文章

  1. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  2. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  3. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  4. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  5. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  6. MySQL学习笔记-锁相关话题

    在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁 ...

  7. MySQL学习笔记-事务相关话题

    事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...

  8. MySQL学习笔记-数据库文件

    数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...

  9. MySQL学习笔记-数据库内存

    数据库内存 InnoDB存储引擎内存由以下几个部分组成:缓冲池(buffer pool).重做日志缓冲池(redo log buffer)以及额外的内存池(additional memory pool ...

  10. MySQL学习笔记-数据库后台线程

    数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的 ...

随机推荐

  1. Java_SSH项目主要步骤记录

    建立Spring-Struts-Hibernate的步骤整理 1. 建立web project 2. 建立hernate, action, service包 3. 右击项目,add myeclipse ...

  2. css案例学习之盒子模型

    定义:每个盒子都有:边界.边框.填充.内容四个属性: 每个属性都包括四个部分:上.右.下.左:这四部分可同时设置,也可分别设置:里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子 ...

  3. 在linux下读取bmp文件头的完整代码。

    呵呵,贴在这里记录一下. [cpp] view plaincopy #include<stdio.h> #include<string.h> #include<sys/t ...

  4. Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置

    一.配置Linux网络 在安装Linux的时候,一定要保证你的物理网络的IP是手动设置的,要不然会在Linux设置IP连通网络的时候会报network is unreachable 并且怎么也找不到问 ...

  5. python-多线程(原理篇)

    多线程的基本概念 语言学习总是绕不过一些东西,例如多进程和多线程,最近越来越发现,上来看几个实例练习一下过几天就不知其所以然了.所以还是先看看原理,在看实例练习吧! 线程的概念 概念:线程是进程中执行 ...

  6. Ubuntu安装二:在VM中安装Ubuntu

    在VM中安装Ubuntu,先的安装VM,VM的安装请见:http://blog.csdn.net/u011043843/article/details/35291799 1.打开VM,新建虚拟机 2. ...

  7. java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils

    页面报错: root: java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils 出错 ...

  8. 红豆带你从零学C#系列—Visual Studio工具介绍、下载和安装

    一.Visual Studio的下载 Visual Studio(简称VS)是微软的一套完整的开发工具集,集成了能够开发并运行如C#.C++.VB.F#等程序的开发环境,目前最新的版本是Visual ...

  9. ES6笔记③

    1.查找关键字  includes(); 返回布尔值 //①:includes -->代替-->indexof-->返回布尔值 var str = "769909303&q ...

  10. 关于智能指针auto_ptr

    智能指针auto_ptr和shared_ptr也是面试中经常被问到的一个 感觉看auto_ptr的源码反而更加容易理解一些,因为源码的代码量并不大,而且比较容易理解. 本篇主要介绍auto_ptr 其 ...