第四课(MySQL基础知识)
来源:互联网 发布:淘宝卖空军一号真的吗 编辑:程序博客网 时间:2024/06/06 02:52
2016年11月14学习内容:
一、插入语句
现有表如下:
CREATE TABLE `customers` (`cust_id` int(11) NOT NULL AUTO_INCREMENT,`cust_name` char(50) NOT NULL,`cust_address` char(50) DEFAULT NULL,`cust_city` char(50) DEFAULT NULL,`cust_state` char(5) DEFAULT NULL,`cust_zip` char(10) DEFAULT NULL,`cust_country` char(50) DEFAULT NULL,`cust_contact` char(50) DEFAULT NULL,`cust_email` char(255) DEFAULT NULL,PRIMARY KEY (`cust_id`)) ENGINE=InnoDB AUTO_INCREMENT=10008 DEFAULT CHARSET=utf8
插入语句一般有以下几种情况:
1. 插入全部行:
insert into table customers values(null,'name1',null,'city','state','zip','china','contact1','xxx@163.com');
其中自增列和不需要填写的列用null替代。
2. 插入全部或者不分行:
insert into table(cust_name,cust_city,cust_state,cust_zip,cust_country,cust_contact,cust_email) customers values('name1',null,'city','state','zip','china','contact1','xxx@163.com');
其中自增列和不需要填写的列不写出来即可,插入时尽量使用这种写法,灵活,不容易出错。
3. 插入多条数据:
insert into table(cust_name,cust_city,cust_state,cust_zip,cust_country,cust_contact,cust_email) customers values('name1',null,'city1','state1','zip1','china1','contact1','xxx@163.com'),('name2',null,'city2','state2','zip2','china2','contact2','xxx@163.com');
插入多条语句,也可以使用多条insert,但是没有这样效率高,尽量用这种写法。
4. 从别的数据表中查询并插入:
insert into table_new (column1, column2, column3, ...) select column1, column2, column3,... from table_old;
其中第二个select可以包含where语句,进行过滤。
如果两张表的表结构完全一样,可以使用以下语句替代:
insert into table_new select * from table_old;
如果数据检索是最重要的(通常是这样),则你可以通过在INSERT和INTO之间添加关键字LOW_PRIORITY,指示MySQL降低INSERT语句的优先级。UPDATE和DELETE语句也一样。
二、更新语句
update customers set cust_email = 'new email' where cust_id = '100002';update customers set cust_email = 'new email', cust_contact = ' new contact person';
注意:第二条语句没有使用where,相当于更新整个表,需要注意别出错了。
如果想设值为空,可以如下:
update customers set cust_email = null where cust_id = '100002';
三、删除语句
1 . 删除特定行
delete from customers where cust_id = '100002';
2 . 删除所有行
delete from customers;或者 truncate table customers;
前者相当于逐行删除,后者相当于直接删除,然后新建表。
输入更新和删除是需要注意 如果其他表有该行的外键,可能会更新或者删除出错,这是正常的,避免无意删除重要的数据,因此外键还是很有用的。
四、创建和操纵表
- 创建表
是否为空 NULL:允许为空 NOT NULL 不允许为空
设置默认值 DEFAULT NULL 、DEFAULT 0等;
设置主键 PRIMARY KEY (cust_id
)或者PRIMARY KEY (cust_id
,cust_name
),主键可以有多列,主键会自动建索引
设置自增 AUTO_INCREMENT,每个表只允许一个AUTO_INCREMENT列,而且它必须被索引。
引擎 ENGINE=xx 引擎类型可以混用,同一个数据库的不同表可以使用不同的引擎。外键不能跨不同的引擎。
InnoDB:事务处理引擎,不支持全文本搜索;
MEMORY:在功能等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表);
MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。 - 更新表
添加列: alter table venders add vend_phone char(20);
删除列: alter table venders drop column vend_phone;
添加索引 alter table orderitems add constraint fk_orderitems_orders foreign key (order_num) references orders (order_num); - 删除表
drop table venders; - 重命名表
rename table customers2 to customers;
0 0
- 第四课(MySQL基础知识)
- 第一课(MySQL基础知识)
- 第二课(MySQL基础知识)
- 第三课(MySQL基础知识)
- 第四章 文件系统基础知识(上)
- 第四章文件系统基础知识(下)
- MySQL基础知识(一)
- mysql基础知识(一)
- MySql基础知识(一)
- mysql基础知识(笔记)
- MySQL基础知识(全)
- WinPcap基础知识(第四课:不用回调函数来捕捉数据包)
- 第四天(Mysql数据库)
- Java基础知识--第四篇
- Mysql基础知识学习(转)
- Mysql 基础知识
- MySQL基础知识
- MySQL 基础知识
- JZOJ4893【NOIP2016提高A组集训第15场11.14】过河
- java8内置函数式接口
- PTA 4-3 二叉树的遍历
- web服务端和游戏服务端的区别
- 一道简单的推理题(日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个)
- 第四课(MySQL基础知识)
- CCF201403-3命令行选项JAVA
- 你真的会写单例模式吗-------Java实现
- 阿里云ubuntu下mysql远程连接失败解决方法
- OpenGL(十一) BMP真彩文件的显示和复制操作
- 非计算机专业的伟伯是如何拿到阿里Offer的。励志!
- springmvc框架
- android系统性能相关学习
- MVC设计模式与Java Web经典三层架构