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学习笔记三的更多相关文章

  1. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  2. mysql学习笔记三 —— 数据恢复与备份

    要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...

  3. MySQL学习笔记三:库和表的管理

    1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql: ...

  4. mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...

  5. MySQL学习笔记(三)—索引

    一.概述 1.基本概念       在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经 ...

  6. MySQL学习笔记(三):常用函数

    一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...

  7. mysql学习笔记(三)

    -- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的 ...

  8. MySql学习笔记(三) —— 聚集函数的使用

    1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均 ...

  9. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

随机推荐

  1. [PHP] error_reporting(0)可以屏蔽Fatal error错误

    按照以前的印象,error_reporting(0)屏蔽不了php的Fatal error级别的错误.但是今天我遇到了一个问题才发现,它竟然可以屏蔽任何错误,包括Fatal error,浏览器会看不到 ...

  2. 【bzoj1997】[Hnoi2010]Planar(平面图+2-sat)

    传送门 几乎和这个题一样,就不说题意了,比较特殊的点就是,这里有个结论: 平面图的边数\(m<3n-6\),\(n\)为点数. 所以我们可以通过这个减枝,\(m\)较大时直接输出\(no\).小 ...

  3. Node.js—概述

    一.Node.js与其他语言对比   Node.js不是一种独立的语言,与PHP.JSP.Python.Perl.Ruby的"既是语言,也是平台"不同,Node.js的使用Java ...

  4. day82_10_31celery的使用

    1.缓存 当一些数据需要固定地且频繁访问数据库时,需要使用到接口缓存. 以轮播图为例,每个用户都会访问首页,首页的轮播图长时间不会改变,所以可以使用cache,将固定数据保存到缓存中(redis),第 ...

  5. Semantic 3D

    Semantic 3D 这个数据级别的训练集有一个小BUG,是这个neugasse_station1_xyz_intensity_rgb.7z, 解压之后的名字是station1_xyz_intens ...

  6. Python IO 模式

    IO 模式 对于 Linux 的 network IO: 一次 IO 访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区 copy 到应用程序的地址空间.所 ...

  7. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) C. p-binary 水题

    C. p-binary Vasya will fancy any number as long as it is an integer power of two. Petya, on the othe ...

  8. 数据仓库006 - MySQL 5.6.x - Linux最佳生产环境离线部署

    一.离线安装包 文件准备 这里以mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz为例,记一次MySQL 5.6.x 的生产环境离线部署过程.使用SecureCRT连接 ...

  9. D3力布图绘制--节点间的多条关系连接线的方法(转)

    在项目中遇到这样的场景,在使用D3.js绘制力布图的过程中,需要在2个节点间绘制多条连接线,找到一个不错的算法,在此分享下. 效果图: HTML中要连接 <!DOCTYPE html> & ...

  10. APP兼容性测试 (一) 机型选择概要

    一.App兼容性问题有哪些 安装失败.启动失败.卸载失败,卸载不干净. 程序运行过程中闪退 部分控件显示不完整或者功能失效 屏幕显示异常 图片展示不全等 二.App兼容性测试的核心要点 测试软件是否能 ...