MySQL学习笔记(2)
打开数据库
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)的更多相关文章
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记-锁相关话题
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁 ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- MySQL学习笔记-数据库文件
数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...
- MySQL学习笔记-数据库内存
数据库内存 InnoDB存储引擎内存由以下几个部分组成:缓冲池(buffer pool).重做日志缓冲池(redo log buffer)以及额外的内存池(additional memory pool ...
- MySQL学习笔记-数据库后台线程
数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的 ...
随机推荐
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...
- poj 1860 (Bellman_Ford判断正环)
题意:给出n种货币,m中交换关系,给出两种货币汇率和手续费,求能不能通过货币间的兑换使财富增加. 用Bellman_Ford 求出是否有正环,如果有的话就可以无限水松弛,财富可以无限增加. #incl ...
- web本地存储-LocalStorage
LocalStorage是HTML5 提供的在客户端存储数据的方法.替代但不同于之前的globalStorage,规则作用范围事先已设定好,是同一个域名(子域无效),使用同一种协议,在同一个端口上.目 ...
- snort简介以及在Ubuntu下的安装
一.简介 Snort是一套开放源代码的网络入侵预防软件与网络入侵检测软件.Snort使用了以侦测签章(signature-based)与通信协议的侦测方法.Snort是一个免费的IDS(入侵监测系统) ...
- javaScript滚动新闻之上下左右平滑滚动
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 利用ItextPdf、core-renderer-R8 来生成PDF
近期因为工作上的须要,须要做一个简历产品的下载功能,而下载的形式要去为PDF,内容要求为整个简历的内容,并且格式上要求和简历的格式排版时一致的!前期调研.开发,最后測试上线.差点儿相同花了7天的时间. ...
- 排颜色问题——数组 leetcode lintcode
问题描写叙述: 给一个数组,而且数组里面元素的值仅仅可能是0,1,2,然后如今把这个数组排序. 第二种表述: 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换随意两个球,使得从左至右, ...
- JavaScript小知识点(一)
JavaScript 有3种方式定义对象 ① var i = { function-x:function{ //todo }}; 这是通过Json方式定义一个函数对象. ② function P ...
- iOS堆栈-内存-代码在据算机中的运行
其实作程序不管是那行,学什么语言最终的目的是和就算机打交道的,我们写的程序计算机是怎么处理的呢??? 计算机运行我们的程序无非就是吧磁盘-内存-cpu三者结合起来 我们写一个程序代码肯定是在此盘中存着 ...
- OC中对象元素的引用计数 自动释放池的相关概念
OC中数组对象在是如何处理对象元素的引用计数问题的,同时介绍一下自动释放池的相关概念 一.数组对象是如何处理对象元素的引用计数问题[objc] view plaincopy 1. // 2. / ...