mysql-创建和操作表
一、建表
为了用程序创建表,我们可以使用SQL的create table 语句。如下:
每个列之间用逗号隔开,每列的定义以列名开始,后跟列的数据类型。
表的主键可以在创建表时用primary key关键字指定。
这张表使用InnoDB引擎创建。

1、·使用null值:允许null值的列也允许在插入时不给出该列的值。不允许null值的列不接受该列没有值的行。在插入或更新行时,该列必须有值
·2、主键primary key:主键必须唯一,即表中的每个行必须具有唯一的主键值,如果主键使用单个列,则它的值必须唯一。如果使用多个列,则这些列的组合字必须唯一。
·3、使用AUTO_INCREMENT:它告诉MYSQL,本列每当增加一行时自动增量,每次执行一个insert操作时,mysql自动对该列增量,给该列赋予下一个可用的值。这样给每行分配一个唯一的id,从而可以用作主键值。每个表只允许一个AUTO_INCREMENT列,而且必须被索引。我们还可以使用如下语句获得最后一个auto_increment的值:
select last_insert_id();
此语句返回当最后操作某张表时,如果该张表有AUTO_INCREMENT类型字段当主键,它的最后一个Auto_increment的值,然后你可以将它用作后续的mysql语句。
·4、指定默认值:如果插入行时没有给出值,mysql允许指定此时使用的默认值,默认值用default关键字指定。如下:

使用default,如果quantity没有插入值,默认为1;
5、引擎类型:mysql具备多个引擎,每种引擎具备不同的功能和特性,为不同的任务选择正确的引擎能获得良好的功能和灵活性。
在建表最后一般加上engine=xxx,如果不加的话,默认为MyISAM引擎。常用的有:
a、InnoDB:是一个可靠地事务处理引擎,但是它不支持全文检索。
b、MEMORY:在功能上等同于MyISAM,但是由于数据库在内存中,速度很快,适用于临时表
c、MyISAM:性能极高的引擎,支持全文搜索,不支持事务处理。
二、更新表
为了更新表定义,可以使用ALTER TABLE语句,但是当该表有数据后,最好就不要修改该表了。
1、增加列:alter table vendors add vend_phone char(20);
2、删除列:alter table vendors drop column vend_phone;
3、定义外键:
alter table orderitems add constraint fk_orderitems_orders foreign key(order_num) references orders(order_num);
三、删除表、重命名表
使用drop table语句
drop table customers2;
执行这条语句将永远删除该表
使用rename table 语句可以对表进行改名:
rename table customers2 to customers;
也可以使用如下对多个表进行更改:
rename table back_customers to customers,back_vendors to vendors, back_products to products;
mysql-创建和操作表的更多相关文章
- MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权
一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...
- oracle与mysql创建表时的区别
oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time dat ...
- Mysql创建用户并授权
运行命令行 mysql -uroot -p 登录mysql use mysql; 创建用户:create user 'test123'@'localhost' identified by '12345 ...
- mysql 创建数据库和表格
mysql创建utf-8字符集数据库 CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; creat ...
- Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)
MySQL创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES) ,多半是因为存在匿名用户, ...
- mysql创建数据库
mysql创建数据库 创建utf8编码的数据库 CREATE DATABASE IF NOT EXISTS my_db default character set utf8 COLLATE utf8_ ...
- mysql创建数据库指定编码uft8
mysql创建数据库指定编码uft8 CREATE DATABASE IF NOT EXISTS my_db default character set utf8 COLLATE utf8_gener ...
- MySQL创建索引语法
1.介绍: 所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引.总索引长度为 ...
- MySQL创建一个用户,指定一个数据库 授权
Mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 hail mysql -u root -ppassworduse mysql;insert into user(h ...
- mysql创建用户
mysql创建用户 创建用于localhost连接的用户并指定密码 mysql> create user 'pcom'@'localhost' identified by 'aaa7B2249' ...
随机推荐
- 通过wget下载tomcat
wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.42/bin/apache-tomcat-8.0.42.tar.gz 注意:下载之前确 ...
- JAVA多线程知识总结(二)
本文是承接上一篇文章:JAVA多线程知识总结(一) 四.Java多线程的阻塞状态与线程控制 上文已经提到线程阻塞的集中具体类型.下面主要看引起JAVA线程阻塞的方法 1,join()-----让一个 ...
- js-DOM操作基本知识
- Spring中的InitializingBean接口
InitializingBean接口为bean提供了初始化方法的方式,它只有afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法. 测试程序如下: impo ...
- hdu5389(DP)
题意: 给出n个人的id,有两个门,每一个门有一个标号.我们记作a和b,如今我们要将n个人分成两组,进入两个门中,使得两部分人的标号的和(迭代的求,直至变成一位数.我们姑且叫做求"和&quo ...
- Cocos2d-x使用Luajit将Lua脚本编译为bytecode,实现加密 更新
项目要求对lua脚本进行加密,查了一下相关的资料 ,得知lua本身能够使用luac将脚本编译为字节码(bytecode)从而实现加密,试了一下,确实可行. 以下是使用原生的lua解释器编译字节码: 1 ...
- cocos2d-x ios游戏开发初认识(九) 音效、粒子系统与存储
我们知道.一个游戏少不了声音.一些好听的声音会提起你对游戏的兴趣,当然做好听的声音不是我们要学的,我们的目的是把声音在适当的时候放出来.顺便在这节中会说下简单的粒子系统和文件存储. 一.声音的播放: ...
- 应用Spring和Hibernate(C3P0数据池)写数据库交互项目
一.xml的配置文件(application.xml) <?xml version="1.0" encoding="UTF-8"?> <bea ...
- firefox 被劫持hao123 主页
快捷方式没有问题 也不是ff的配置文件里user.js的问题 是haozip的问题 最后查到是windows/system/Hao*.sys 这个文件的问题(还有zolsoft.sys) 删除这个文件 ...
- c语言中类型转换与赋值运算符、算术运算符、关系运算符、逻辑运算符。原码、反码、补码。小解。
类型转换 自动转换 小范围的类型能够自动转换成大范围的类型.short->int->long->float->double 强制类型转换 (类型名)变量或数值 #include ...