MySQL 第三篇:表操作
一 存储引擎介绍
存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制
详见:http://www.cnblogs.com/moyand/p/9020698.html
二 表介绍
表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段
id,name,qq,age称为字段,其余的,一行内容称为一条记录
三 创建表
- #语法:
- create table 表名(
- 字段名1 类型[(宽度) 约束条件],
- 字段名2 类型[(宽度) 约束条件],
- 字段名3 类型[(宽度) 约束条件]
- );
- #注意:
- 1. 在同一张表中,字段名是不能相同
- 2. 宽度和约束条件可选
- 3. 字段名和类型是必须的
- MariaDB [(none)]> create database db1 charset utf8;
- MariaDB [(none)]> use db1;
- MariaDB [db1]> create table t1(
- -> id int,
- -> name varchar(50),
- -> sex enum('male','female'),
- -> age int(3)
- -> );
- MariaDB [db1]> show tables; #查看db1库下所有表名
- MariaDB [db1]> desc t1;
- +-------+-----------------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+-----------------------+------+-----+---------+-------+
- | id | int(11) | YES | | NULL | |
- | name | varchar(50) | YES | | NULL | |
- | sex | enum('male','female') | YES | | NULL | |
- | age | int(3) | YES | | NULL | |
- +-------+-----------------------+------+-----+---------+-------+
- MariaDB [db1]> select id,name,sex,age from t1;
- Empty set (0.00 sec)
- MariaDB [db1]> select * from t1;
- Empty set (0.00 sec)
- MariaDB [db1]> select id,name from t1;
- Empty set (0.00 sec)
- MariaDB [db1]> insert into t1 values
- -> (1,'egon',18,'male'),
- -> (2,'alex',81,'female')
- -> ;
- MariaDB [db1]> select * from t1;
- +------+------+------+--------+
- | id | name | age | sex |
- +------+------+------+--------+
- | 1 | egon | 18 | male |
- | 2 | alex | 81 | female |
- +------+------+------+--------+
- MariaDB [db1]> insert into t1(id) values
- -> (3),
- -> (4);
- MariaDB [db1]> select * from t1;
- +------+------+------+--------+
- | id | name | age | sex |
- +------+------+------+--------+
- | 1 | egon | 18 | male |
- | 2 | alex | 81 | female |
- | 3 | NULL | NULL | NULL |
- | 4 | NULL | NULL | NULL |
- +------+------+------+--------+
往表中插入数据
注意注意注意:表中的最后一个字段不要加逗号
四 查看表结构
- MariaDB [db1]> describe t1; #查看表结构,可简写为desc 表名
- +-------+-----------------------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+-----------------------+------+-----+---------+-------+
- | id | int(11) | YES | | NULL | |
- | name | varchar(50) | YES | | NULL | |
- | sex | enum('male','female') | YES | | NULL | |
- | age | int(3) | YES | | NULL | |
- +-------+-----------------------+------+-----+---------+-------+
- MariaDB [db1]> show create table t1\G; #查看表详细结构,可加\G
五 数据类型
http://www.cnblogs.com/moyand/p/9033285.html
六 表完整性约束
http://www.cnblogs.com/moyand/p/9008312.html
七 修改表ALTER TABLE
- 语法:
- 1. 修改表名
- ALTER TABLE 表名
- RENAME 新表名;
- 2. 增加字段
- ALTER TABLE 表名
- ADD 字段名 数据类型 [完整性约束条件…],
- ADD 字段名 数据类型 [完整性约束条件…];
- ALTER TABLE 表名
- ADD 字段名 数据类型 [完整性约束条件…] FIRST;
- ALTER TABLE 表名
- ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
- 3. 删除字段
- ALTER TABLE 表名
- DROP 字段名;
- 4. 修改字段
- ALTER TABLE 表名
- MODIFY 字段名 数据类型 [完整性约束条件…];
- ALTER TABLE 表名
- CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
- ALTER TABLE 表名
- CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
- 示例:
- 1. 修改存储引擎
- mysql> alter table service
- -> engine=innodb;
- 2. 添加字段
- mysql> alter table student10
- -> add name varchar(20) not null,
- -> add age int(3) not null default 22;
- mysql> alter table student10
- -> add stu_num varchar(10) not null after name; //添加name字段之后
- mysql> alter table student10
- -> add sex enum('male','female') default 'male' first; //添加到最前面
- 3. 删除字段
- mysql> alter table student10
- -> drop sex;
- mysql> alter table service
- -> drop mac;
- 4. 修改字段类型modify
- mysql> alter table student10
- -> modify age int(3);
- mysql> alter table student10
- -> modify id int(11) not null primary key auto_increment; //修改为主键
- 5. 增加约束(针对已有的主键增加auto_increment)
- mysql> alter table student10 modify id int(11) not null primary key auto_increment;
- ERROR 1068 (42000): Multiple primary key defined
- mysql> alter table student10 modify id int(11) not null auto_increment;
- Query OK, 0 rows affected (0.01 sec)
- Records: 0 Duplicates: 0 Warnings: 0
- 6. 对已经存在的表增加复合主键
- mysql> alter table service2
- -> add primary key(host_ip,port);
- 7. 增加主键
- mysql> alter table student1
- -> modify name varchar(10) not null primary key;
- 8. 增加主键和自动增长
- mysql> alter table student1
- -> modify id int not null primary key auto_increment;
- 9. 删除主键
- a. 删除自增约束
- mysql> alter table student10 modify id int(11) not null;
- b. 删除主键
- mysql> alter table student10
- -> drop primary key;
示例
八 复制表
- 复制表结构+记录 (key不会复制: 主键、外键和索引)
- mysql> create table new_service select * from service;
- 只复制表结构
- mysql> select * from service where 1=2; //条件为假,查不到任何记录
- Empty set (0.00 sec)
- mysql> create table new1_service select * from service where 1=2;
- Query OK, 0 rows affected (0.00 sec)
- Records: 0 Duplicates: 0 Warnings: 0
- mysql> create table t4 like employees;
九 删除表
- DROP TABLE 表名;
MySQL 第三篇:表操作的更多相关文章
- Python/MySQL(二、表操作以及连接)
Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...
- mysql第三篇:表操作
第三篇:表操作 一.什么是表 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 二.创建表 语法 CREATE TABLE 表名( 字段名1 类型 ...
- mysql三:表操作
一.存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制. 详见:点击查看 二.表的介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标 ...
- Mysql(三):表操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/6324TV/p/8481061.html 二 表介绍 表相当于文 ...
- MySQL之库、表操作
一.库操作 创建库 create database 库名(charset utf8 对库的编码进行设置,不写就用默认值) 库名可以由字母.数字.下划线.特殊字符,要区分大小写,唯一性,不能使用关键字, ...
- Python操作Mysql数据库进阶篇——查询操作详解(一)
前面我们已经介绍了在Python3.x中如何连接一个Mysql数据库,以及怎么样对这个数据库创建一个表,增删改查表里的数据.想必大家对Mysql数据库和简单的sql语句有了一定的了解,其实sql语句博 ...
- MySQL(分组、连表操作、备份数据库)
day58 分组 参考:https://www.cnblogs.com/xp796/p/5262187.html select dept, max(salary) from department gr ...
- MySql基础学习-库表操作
1.创建数据 CREATE DATABASE mysql_study; 2.连接数据库 USE mysql_study 3.创建数据表 CREATE TABLE person( id int auto ...
- mysql,数据类型与表操作
一.mysql基本认知 创建用户 create host aa identified with mysql_native_password by ''; 修改用户权限 alter user root@ ...
随机推荐
- sqlmap 进阶 (一)
0x1 命令 以此类推,可以具体自己研究有哪些参数,放在哪,有什么用,怎么用 参考:https://blog.csdn.net/bo_mask/article/details/76130848 0x2 ...
- basename命令详解
基础命令学习目录首页 摘要:前言bashname命令用于获取路径中的文件名或路径名(获取的时候叶子节点的元素内容)常见用法举例basenamepath获取末尾的文件名或路径名1:[aliyunzixu ...
- 在NodeJS中使用Redis缓存数据
Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb.其在使用上也有别于一般的数据库. node_redis redis驱动程序多使用 node_redis 此模块可搭载官方的 hiredi ...
- 深度学习之神经网络核心原理与算法-caffe&keras框架图片分类
之前我们在使用cnn做图片分类的时候使用了CIFAR-10数据集 其他框架对于CIFAR-10的图片分类是怎么做的 来与TensorFlow做对比. Caffe Keras 安装 官方安装文档: ht ...
- 从汉诺塔游戏理解python递归函数
汉诺塔游戏规则: 有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方 图 ...
- 互评Beta版本-SkyHunter
基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题; N(Need,需求):飞机大战题材的游戏对80,90后的人来说算是童年的记忆,可以在闲暇之余打开电脑玩一会儿.但是 ...
- OO学习第二阶段总结
面向对象课程的第二个阶段结束了,作业们由简单的玩具模式步入到复杂的多线程地狱模式,由之前的算法简单实现有坑转变成算法复杂实现有很大的坑.一个最重要的心得就是一定要在动手敲代码实现之前对整个程序的实现做 ...
- 第三周vim入门学习2
一.vim重复命令 1.重复执行上次命令 在普通模式下.(小数点)表示重复上一次的命令操作 拷贝测试文件到本地目录 $ cp /etc/protocols . 打开文件进行编辑 $ vim proto ...
- Linux操作系统(二)
SSD工作原理:http://www.360doc.com/content/15/0318/15/16824943_456186965.shtml HHD工作原理:http://blog.csdn.n ...
- Scrum 项目2.0 3.0
顺带 MY—HR 成员: 角色分配 学号 博客园 团队贡献分 丘惠敏 PM项目经理 201406114203 http://www.cnblogs.com/qiuhuimin/ 19 郭明茵 用户 2 ...