mysql数据库笔记0

一次性添加多行数据

例如:

INSERT INTO students (class_id, name, gender, score) VALUES
(1, '大宝', 'M', 87),
(2, '二宝', 'M', 81); SELECT * FROM students;
注意分号,不是逗号。

更新语句

update <表名> set 字段1=值1,字段2=值2,。。。。where。。。

1. 并且更新语句支持表达式,比如以下sql
UPDATE students SET score=score+10 WHERE score<80;
给所有低于80分的学生加10分
2. 更新语句可以没有where子句,但是没有where子句的话,会对数据中的所有数据进行更新,如果涉及到大量的数据处理的时候小心点,
3. 更新语句如果没有响应的数据更新的时候,数据库不会产生更新的。只会显示影响0行

删除语句

DELETE FROM <表名> WHERE ...;
1. 最普通的删除语句
DELETE FROM students WHERE id=1;
-- 查询并观察结果:
SELECT * FROM students;
2. 根据where子句删除并且可以删除多个数据例如:
1. DELETE FROM students WHERE id>=5 AND id<=7;
-- 查询并观察结果:
SELECT * FROM students;
3. 如果where没有匹配到数据,delete语句也不会报错,也不会有任何数据被删除
4. 特别小心的是,和UPDATE类似,不带WHERE条件的DELETE语句会删除整个表的数据:

mysql的管理

1. 通过client登录系统指令:mysql -u root -p root
1. 如果连接成功的话,会出现mysql>光标在此
2. 注意,连接的时候,此时连接的是mysql服务器,在这可以是本地的服务器,也可以是远程的服务器,远程服务器在下介绍如何连接
3. 输入exit语句来断开与mysql server的连接并回到cmd模式
4. mysql client通过tcp协议与mysql server进行连接,并且可以通过sql语句进行操作数据库
5. 如果本地机装mysql数据库,服务器也在本地,那么tcp可连接地址:127.0.0.1:3306
6. 如果是远程的服务器,并且得知mysql server的服务器ip:10.1.1.1则输入一下语句进行连接数据库
* mysql -h 10.1.1.1 -u root -p
2. 进入到数据库后的指令:《cmd的模式下,有可能打不开,原因有可
能是你的环境没有配置,所以在cmd下,输入mysql -u等消息,系统没有路径,找不到你对应的程序,解决方法:可以添加path,可以在
mysql安装目录下的lib下cmd,也可以直接通过client启动,直接输入密码即可》

	1. show databases;列出所有的数据库
2. 创建一个新的数据库:create database test;
3. 删除一个数据库:drop database test;
4. 如果对一个数据库进行操作,需要user database名
5. 如果需要对数据库中的所有表展示,show tables;
6. 查看一个表的表结构,desc 表名
7. 查看创建数据库表的时候的创建语句
1. show create table students
2. drop table students:删除表
3. 修改表,新增一列:alter table students add column birth varchar(10) not null;
4. 修改birth列,把birth列改为birthday类型改为varchar(20)
alert table students change column birth birthday varchar(20) not null
5. 删除列
alert table students drop column birthday
8. 退出mysql:exit

实用性sql语句

  1. 插入或替换:使用场景:插入一条新纪录,但如果该记录存在,就先删除原记录,在插入新纪录,使用语句replace语句,这样就不比先查询,然后在决定是否先删除再插入:

     replace into students(id,class_id,name,gender,score) values(1,1,'小明',‘f’,99)
    作用,如果id=1的记录不存在,replace语句将插入新纪录,否则,当前id=1的记录被删除,然后在插入新的记录
  2. 插入或更新

    如果我们希望插入一条新纪录,但是记录存在,就更新该记录使用INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句

     	INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99;
    若id=1的记录不存在,INSERT语句将插入新记录,否则,当前id=1的记录将被更新,更新的字段由UPDATE指定。
  3. 插入或忽略

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO ...语句:

     INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);
    若id=1的记录不存在,INSERT语句将插入新记录,否则,不执行任何操作。
  4. 快照

    如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLE和SELECT:

     -- 对class_id=1的记录进行快照,并存储为新表students_of_class1:
    CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1;
    新创建的表结构和SELECT使用的表结构完全一致。
  5. 写入查询结果集

    如果查询结果集需要写入到表中,可以结合INSERT和SELECT,将SELECT语句的结果集直接插入到指定表中。

例如,创建一个统计成绩的表statistics,记录各班的平均成绩:

	CREATE TABLE statistics (
id BIGINT NOT NULL AUTO_INCREMENT,
class_id BIGINT NOT NULL,
average DOUBLE NOT NULL,
PRIMARY KEY (id)
);

然后,我们就可以用一条语句写入各班的平均成绩:

INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;

mysql数据库笔记0的更多相关文章

  1. java连接mysql数据库8.0以上版本过程中遇到的坑

    来自:https://blog.csdn.net/u013276277/article/details/80255468 首先,我居然不能用navicat客户端连接上mysql8.0数据库报1251错 ...

  2. Mysql数据库笔记

    出错记录: 1.mysql服务启动不了,进程意外终止 1067    错误显示:can not connect to mysql server on local hosts(1061)    解决方法 ...

  3. MySQL数据库笔记总结

    MySQL数据库总结 一.数据库简介 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的.它不仅仅指狭义上的数字,而是有多种表现形式:字母.文字.文本. ...

  4. MySQL数据库笔记六:数据定义语言及数据库的备份和修复

    1. MySQL中的函数 <1>加密函数 password(str) 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码加密. select PASSWORD('tlxy666 ...

  5. MySQL数据库笔记二:数据类型及数据库操作

    三.MySQL数据库数据类型 MySQL数据库中支持多种数据类型:数值型.字符型.日期型 常用的数据类型: 1.整型 int:整形,存储整数 int(M):M表示预期值.与存储大小和数值的范围无关. ...

  6. MySQL数据库笔记一:简介及简单操作

    一.初识MySQL数据库 1.数据库的概述 <1>数据库:Database 长期存储在计算机内的,有组织的,可共享的数据集合. 存储数据的仓库.(文件) <2>数据库管理系统: ...

  7. mysql数据库-8.0安装及环境搭建

           1.MySQL8.0 For Windows zip包下载地址 https://dev.mysql.com/downloads/file/?id=476233,进入页面后点击底部&quo ...

  8. MySQL数据库8.0.15 安装教程

    第一步:安装MySQL服务 这里下载完成的是一个压缩文件,直接将里面的‘mysql-8.0.15-winx64'文件夹解压到你想要安装的路径即可,我是直接安装在C盘的. 解压完后的文件路径如下图: 在 ...

  9. MySQL数据库笔记四:MySQL的约束

    <1>概念 是一种限制,它是对表的行和列的数据做出约束,确保表中的数据的完整性和唯一性. <2>使用场景 创建表的时候,添加约束 <3>分类 1. default: ...

随机推荐

  1. 使用node 做静态文件服务器

    # 1. 使用server-static 包 使用node可以非常快速的方法把指定目录共享出去 前提条件:安装了node,附带有npm 要托管的文件目录为 /root/www # 先创建一个目录用来存 ...

  2. vue打包成app后,背景图片不显示

    问题: 在使用npm run build 打包后, 如果在页面中使用img标签引入,打包后的路径是由index.html开始访问的,真正访问的是Static/img/图片名, 是正确的, 但是写在cs ...

  3. Linux集群软件安装实战

    一.需求和思路 1. 需求描述 公司有N个节点的集群,需要统一安装一个软件(jdk)需要开发一个脚本程序,实现对集群中的N个节点批量自动下载.安装jdk 2. 思路 1)编写一个启动脚本,用来发送一个 ...

  4. ACM-ICPC Nanjing Onsite 2018 I. Magic Potion

    题意:类似二分图匹配给的题目,不过这次在这里给出了k,表示没人可以再多一次匹配机会,这次匹配不能用上一次被匹配的对象 分析:不能用匈牙利做俩次匹配,因为俩次的最大匹配并不等价于总和的匹配,事实证明,你 ...

  5. java word另存为word xml格式

    1.jacob-1.15-M3-x86.dll copy到c:\\windows\system32 2.引入jacob.jar 把jacob.dll(不同版本的jacob的dll文件名有所不同)复制到 ...

  6. 02-信贷路由项目rose框架拆分dubbo

    项目架构和 rose 框架搭建见  https://www.cnblogs.com/yuanpeng-java/p/9835984.html 1.dubbo 框架架构及组成 2.注册中心安装及配置 h ...

  7. RadixSort(基数排序)原理及C++代码实现

    基数排序是一种思想很值得学习的排序方法. 它突破了正常的排序思维:先排高位,如果高位相同再排次高位,直至最低.它的思想是利用稳定排序从低位开始排,最后再排最高位. 另外它用来划分的位不一定是一位一位的 ...

  8. CentOS换yum源和epel源为国内源

    CentOS换源 YUM源 备份原来的repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bac ...

  9. 微信小程序开发-易源API的调用

    起因:在开发一款旅游类微信小程序时,需要接入大量的景点信息,此时可以选择自己新建数据库导入数据并读取,但是对于我来说,因为只有一个人,数据库还涉及到需要维护方面,选择调用已有API. 过程:首先查阅微 ...

  10. Jumpserver 一键部署(支持离线安装)

    1.教程介绍1.1::通过本教程起到抛砖引玉效果,希望各位喜爱Jumpserver堡垒机的朋友受益良多. 1.2::以下提供的任何软件仅供学习交流使用. 2.下载链接2.1::centos_1810最 ...