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 ...
随机推荐
- RabbitMQ 消息确认与公平调度消费者
一.消息确认 为了确保消息一定被消费者处理,rabbitMQ提供了消息确认功能,就是在消费者处理完任务之后,就给服务器一个回馈,服务器就会将该消息删除,如果消费者超时不回馈,那么服务器将就将该消息重新 ...
- 爬取博主所有文章并保存到本地(.txt版)--python3.6
闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...
- js如何获取隐藏的元素的高度
首先,正常情况下,确保div是有高度的. <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- drbd(三):drbd的状态说明
本文目录:1.drbd配置文件2.状态 2.1 连接状态(connect state,cs)和复制状态 2.2 角色状态(roles,ro) 2.3 磁盘状态(disk state,ds) 2.4 I ...
- java Classpath 的解读
在了解java的classpath之前先来看看java的运行机制 1.首先是编译,将.java文件编译成虚拟机认识的二进制文件.这个过程需要的命令是javac 可以在jdk的bin目录中找到,ja ...
- Build to win--来自小黄衫
写在前面 首先非常荣幸.非常侥幸能以微弱的优势得到这次小黄衫,感谢各位老师同学的帮助,也谢谢来自<构建之法>团队的小黄衫赞助! 这次能够获得小黄衫,就像汪老师上课说的那样,其实,是一个积累 ...
- 敏捷冲刺每日报告五(Java-Team)
第五天报告(10.29 周日) 团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://gi ...
- splinter web测试框架
1.安装谷歌浏览器驱动(windows把驱动解压放在Python.exe同级目录即可) http://chromedriver.storage.googleapis.com/index.html 注意 ...
- 20145237《Java程序设计》第一周学习总结
教材学习内容总结 java可分为Java SE.Java EE.Java ME三大平台. java SE分为JVM.JRE.JDK.与java语言四个部分. JRE包括java SE API和JVM. ...
- python 继承基础
class annamal: def chi(self): print(self.name + '吃') def he(self): print(self.name + '喝') class dog( ...