MySql学习笔记三
MySql学习笔记三
4.DML(数据操作语言)
插入:insert
修改:update
删除:delete
4.1.插入语句
语法:
insert into 表名 (列名1,列名2,...) values (值1,值2,...), (值1,值2,...)...
不可以为NULL的列必须插入值,可以为NULL的值要想插入NULL值,必须在values里写NULL
也可以在字段列表里不写该字段,当新增时该字段的值就为NULL
列的顺序时可以随便调换的,列数和值的个数必须一致
插入整条数据时可以省去列名
insert into 表名 values (值1,值2...), (值1,值2...)...
values里面必须要插入所有字段的值,并且要按照字段的排列顺序排列
可以嵌套子查询:
insert into 表名 (值1,值2...) 子查询语句
还有第二种方法可以插入数据,语法如下:
insert into 表名
set 字段名1 = 字段值1, 字段名2 = 字段值2, 字段名3 = 字段值3, ...;
两种方法对比:
| 插入多行 | 子查询 | |
|---|---|---|
| value | √ | √ |
| set | X | X |
4.2.修改语句
语法:
修改单表的记录
update 表名 set 列1=值1, 列2=值2, ... where 筛选条件;
修改单表记录
sql92语法:
update 表1 别名, 表2 别名
set 列1=值1, 列2=值2, ...
where 连接条件
AND 筛选条件
sql99语法:
update 表1 别名
inner|right|left join 表2 别名
on 连接条件
set 列1=值1, 列2=值2, ...
where 筛选条件
4.3.删除语句
语法
单表删除:
delete from 表名 where 筛选条件;
删除整张表
truncate table 表名;
多表删除:
sql92语法
delete
delete 要删除表的别名
from 表1 别名, 表二 别名 ......
where 连接条件
and 筛选条件
sql99语法
delete 要删除表的别名
from 表1 别名
连接方式 表二 别名
...
where 筛选条件;
delete和truncate对比
| 使用where | 效率 | 自增 | 返回值 | 事务 | |
|---|---|---|---|---|---|
| delete | √ | 比truncate低 | 从断点点开始 | 返回受影响的行数 | 可以回滚 |
| truncate | X | 比delete高 | 从头开始 | 没有返回值 | 不能回滚 |
5.DDL(数据定义语言)
库和表的管理和操作
创建:create
删除:drop
修改:alter
5.1.库的管理
5.1.1.创建
语法:
create database (if not exists) 库名;
if not exists是如果不存在才创建
通用写法:
drop database if exists 库名;
create database 库名;
5.1.2.修改
更改库的字符集
alter database 库名 character set 字符集名;
5.1.3.删除
drop database 库名;
5.2.表的管理
5.2.1.创建
语法:
create table 表名{
列名 列的类型(长度) (约束),
列名 列的类型(长度) (约束),
列名 列的类型(长度) (约束),
...
列名 列的类型(长度) (约束)
}
通用写法:
drop table if exists 表名;
create table 表名{
列名 列的类型(长度) (约束),
列名 列的类型(长度) (约束),
列名 列的类型(长度) (约束),
...
列名 列的类型(长度) (约束)
}
5.2.2.修改
修改列名:
alter table 表名 change (column) 旧列名 新列名 列的类型;
修改列的类型或约束:
alter table 表名 modify column 列名 新类型 约束;
添加新列
alter table 表名 add column 新列名 列的类型 约束;
删除列
alter table 表名 drop column 列名;
修改表名
alter table 表名 rename to 新表名;
5.2.3.删除
语法:
drop table (if exists)表名;
5.2.4.复制
仅仅复制表的结构
create table 新表名 like 要复制的表名
复制表的结构+数据
create table 新表名
select 要复制的字段 from 要复制的表名
(where 筛选条件);
仅仅复制表的部分结构
create table 新表名
select 要复制的字段 from 要复制的表名
where 恒不成立的筛选条件 (例如 11 = 2 或者 0);
MySql学习笔记三的更多相关文章
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- mysql学习笔记三 —— 数据恢复与备份
要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...
- MySQL学习笔记三:库和表的管理
1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...
- mysql基本数据类型(mysql学习笔记三)
Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...
- MySQL学习笔记(三)—索引
一.概述 1.基本概念 在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...
- MySQL学习笔记(三):常用函数
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...
- mysql学习笔记(三)
-- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...
- MySql学习笔记(三) —— 聚集函数的使用
1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
随机推荐
- vue+hammer.js完美实现长按、左滑,右滑等触控事件
移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...
- 渗透测试学习 十、 MSsql注入下
大纲:MySQL介绍及操作 MySQL注入原理 MySQL注入其他操作 一.MySQL介绍及操作 介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle ...
- VMware Tools安装方法
安装VMware Tools的步骤 点击[虚拟机]选项中的[安装VMware Tools],此时在Ubuntu的桌面上就会出现一个光盘图标. 如果之前已经安装过了,[虚拟机]选项中应为[重新安装VMw ...
- session.invalidate() 退出登录
当浏览器第一次请求时,服务器创建一个session对象,同时生成一个sessionId,并在此次响应中将sessionId 以响应报文的方式传回客户端浏览器内存或以重写url方式送回客户端,来保持整个 ...
- Mybatis日志(七)
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging 具体选择哪个日志 ...
- Bootstrap分页查询
前台方法: function show() { $('#reportTable').bootstrapTable({ method: 'get', url: "@Url.Action(&qu ...
- Go micro 入门
路由跳转 官方文档 本质上是选择不同的方式将HTTP信息合理的转发至后端处理,而不同的方式相当于不同请求的接收器,接收后再将其转发至不同的后端服务,完成整个请求的调用. micro 将请求选择不同的方 ...
- QList去掉重复项 .toSet()报错???
我们知道QList::toSet()函数可以将QList转成QSet.可我却遇到报错: QList<QVariant> datas = it.value().values(); QSet& ...
- 记一次SQL调优
insert优化 如果你在某一时刻有大量的insert操作,一条一条插入是非常耗时的.insert语句本身支持一次插入很多条记录,插入记录数上限受sql语句长度限制,一般一次插个几千条是没问题的.在我 ...
- java程序 cpu占用过高分析
linux终端下用 top命令看到cpu占用超过100%.之所以超过100%.说明cpu是多核.默认top显示的是cpu加起来的使用率,运行top后按大键盘1看看,可以显示每个cpu的使用率,top里 ...