MySQL操作与修改表
插入数据(insert)
insert语句的3个主要组成部分:
- 所要插入数据的表的名称;
- 表终需要使用的列的名称;
- 需要插入到列的值。
数字型主键生成机制
数字型主键生成机制,除了随机选择数字外,还可以有以下两个常用选择:
- 查看表中当前主键的最大值,并加1;
- 让数据库服务器自动提供。
第1种方法在并发的时候可能会发生问题,基于第2种方案,MySQL有一种实现方式:只需简单地为主键列打开自增(auto-increment)特性。
一般情况下,应该在建表时定义此属性;
也可以使用alter table修改已经存在的表定义:
ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;
该语句实质上重新定义了 person 表的 person_id 列,现在如果再次使用 describe 命令,会看到 person_id 的“Extra”列中列出了自增特性。
+-------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------------------+------+-----+---------+----------------+
| person_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| fname | varchar(20) | YES | | NULL | |
| lname | varchar(20) | YES | | NULL | |
| gender | enum('M','F') | YES | | NULL | |
| birth_date | date | YES | | NULL | |
| street | varchar(30) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| state | varchar(20) | YES | | NULL | |
| country | varchar(20) | YES | | NULL | |
| postal_code | varchar(20) | YES | | NULL | |
+-------------+----------------------+------+-----+---------+----------------+
insert语句
执行如下SQL语句新增一列信息:
INSERT INTO person
(person_id, fname, lname, gender, birth_date)
VALUES (null, 'Zifeiy', 'Wang', 'M', '1982-05-27');
执行如下语句进行查询:
SELECT person_id, fname, lname, birth_date
FROM person;
效果如下:
mysql> INSERT INTO person
-> (person_id, fname, lname, gender, birth_date)
-> VALUES (null, 'Zifeiy', 'Wang', 'M', '1982-05-27');
Query OK, 1 row affected (0.05 sec)
mysql> SELECT person_id, fname, lname, birth_date
-> FROM person;
+-----------+--------+-------+------------+
| person_id | fname | lname | birth_date |
+-----------+--------+-------+------------+
| 1 | Zifeiy | Wang | 1982-05-27 |
+-----------+--------+-------+------------+
1 row in set (0.00 sec)
可以使用 where 子句指定想要提取的数据,例如 person_id 为1的行:
SELECT person_id, fname, lname, birth_date
FROM person
WHERE person_id=1;
或者lanme为‘Wang’的行:
SELECT person_id, fname, lname, birth_date
FROM person
WHERE lname='Wang';
Zifeiy还喜欢3种食物,因此再执行如下三条SQL:
INSERT INTO favorite_food (person_id, food) VALUES (1, 'apple');
INSERT INTO favorite_food (person_id, food) VALUES (1, 'banana');
INSERT INTO favorite_food (person_id, food) VALUES (1, 'orange');
下面获取Zifeiy的喜爱食物列表,并根据字典序进行排列(使用order by):
mysql> SELECT food FROM favorite_food WHERE person_id=1 ORDER BY food;
+--------+
| food |
+--------+
| apple |
| banana |
| orange |
+--------+
3 rows in set (0.00 sec)
为了让Zifeiy不感到孤单,可以再次执行insert语句向person表中增加Binbin Fan:
INSERT INTO person
(person_id, fname, lname, gender, birth_date,
street, city, state, country, postal_code)
VALUES (null, 'Binbin', 'Fan', 'F', '1992-02-02',
'23 Tomas St.', 'Huzhou', 'ZJ', 'CHINA', '330501');
再次查询表格:
mysql> SELECT person_id, fname, lname, birth_date FROM person;
+-----------+--------+-------+------------+
| person_id | fname | lname | birth_date |
+-----------+--------+-------+------------+
| 1 | Zifeiy | Wang | 1982-05-27 |
| 2 | Binbin | Fan | 1992-02-02 |
+-----------+--------+-------+------------+
2 rows in set (0.00 sec)
更新数据
UPDATE person
SET street = '123 Haha St.',
city = 'Hangzhou',
state = 'JS',
country = 'CHINA',
postal_code = '320101'
WHERE person_id = 1;
删除数据
DELETE FROM person WHERE person_id = 2;
MySQL操作与修改表的更多相关文章
- MySQL中的修改表操作
一.增加表的列 语法:alter table 表名 add( 增加列定义 ); 实例: #增加列 alter table text add( text_num ) ...
- MySQL操作数据库和表的常用命令新手教程
1.查看数据库 获取服务器上的数据库列表通常很有用.执行show databases;命令就可以搞定. mysql> show databases; 2.创建数据库 mysql> crea ...
- 查看mysql字符集及修改表结构--表字符集,字段字符集
MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...
- sql操作之修改表结构
修改表的语法=========================增加列[add 列名]=========================①alter table 表名 add 列名 列类型 列参数[加的 ...
- 查看mysql字符集及修改表结构
MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...
- MySQL查看和修改表的存储引擎(转载+加点东西)
1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from YOUR_DB_NAME where name='YOU ...
- MySQL查看和修改表的存储引擎
1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a.show table status from db_name where name='table_na ...
- mysql中如何修改表的名字?修改表名?
需求描述: 今天在进行mysql表的历史数据迁移,需要将某张表进行备份,修改表的名字,在此记录下操作过程. 操作过程: mysql> create table ts01 like ti_o_sm ...
- MySQL使用alter修改表的结构
SQL语句 DLL 数据定义语言 create,drop DML 数据操纵语言 insert,delete,select,upda ...
随机推荐
- ELK学习笔记(三)单台服务器多节点部署
一般情况下单台服务器只会部署一个ElasticSearch node,但是在学习过程中,很多情况下会需要实现ElasticSearch的分布式效果,所以需要启动多个节点,但是学习开发环境(不想开多个虚 ...
- Jmeter----基本介绍(1)
1.Jmeter 基本介绍 简单的说,就是Jmeter能做 功能测试 和 性能测试 .它能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试,还能以多种形式展现测试结果. ...
- 开源一个定时任务调度器 webscheduler
在企业应用中定时任务调度的需求是必不可少的,比如定时同步数据,定时结转数据,定时检测异常等等.公司之前是在使用一款采用.net 开发的windows服务形式的定时程序,基本能满足需求,在一段时间的时候 ...
- C语言的输入输出操作函数小结
一.scanf()&printf()函数 scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕). scanf()函数原型为int ...
- [poj2185]Milking Grid_KMP
Milking Grid poj-2185 题目大意:给出一个字符矩阵,求最小覆盖矩阵(可以残余). 注释:$1\le R\le 10^5$,$1\le C \le 75$ 想法:和bzoj1355不 ...
- NVisionXR引擎基本介绍
NVisionXR引擎基本介绍 一. 介绍 1.1 NVisionXR是什么? NVisionXR引擎是全球首款跨平台多兼容的原生AR应用开发引擎,让AR应用开发更高效. 1. ...
- String [] 转 List<String>
整理笔记:String [] 转 List<String> String [] al = new String[]{"1","q","a& ...
- 极其简单的帮你理解ORM中的关联关系
ORM对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转 ...
- 实验二Java面向对象程序设计实验报告(2)
实验二 Java面向对象程序设计 实验概述: 课程:程序设计与数据结构 班级:1623班 姓名: 邢天岳 学号:2309 指导老师:娄老师 王老师 实验日期:2017.4.16 实验名称: Java面 ...
- 同样是IT培训,为什么人家月薪过万,你才几千,问题在哪?!
听过一句话"360行,行行转IT",虽然有些夸张,但也不难看出IT行业的火爆程度.从李总理提的"互联网+大数据"开始,中国的这场"互联网+" ...