mysql数据库查询笔记_MySql数据库基础笔记(一)

一、表与库的概念

数据库管理数据,它是以什么样的形式组成的?

生活中的表---->表 table

多行多列,传统的数据库都是这样的;声明了表头,一个表创建好了,剩下的就是往表中添加数据

多张表放在档案中--->库 database

学生信息表,成绩表,记过表 -> 都是这个班级的信息,将这几张表放在一个文件夹中 -> 这个文件夹,文档就是 库

mysql服务器可以帮我们管理多个库

xampp\mysql\data

数据库中的数据放在这个文件中, .MYD就是数据文件

档案袋管理员---> 服务器 server

数据库就是将我们的数据存储成文件,分文别类的管理起来

查看库 show databases;

选库 use test;

查看库下的表 show tables;

查表 select * from cat;

二、认识SQL

sql语句大致可以分为三种:

DML is Data Manipulation Language statements. Some examples:数据操作语言,SQL 中处理数

据等操作统称为数据操纵语言 增删改查

对我们而言,DML是我们的重点

DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理

SQL 数据库中的所有对象的语言 (建设者的角度,建表,建库,建视图 等等, 15%)

一般来说,一个数据库在设计完毕之后很少会再改动了

DCL is Data Control Language statements. Some examples:数据控制语言,用来授予或回收访

问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等

(管理员角度,DBA[数据库管理员],5%)

这个用户是否有权限建表,等

三、增删改查操作

1. insert 操作

DML,增删改查—>增

user表,uid name age 三列

(1).添加所有列 添加所有列

insert into user (uid,name,age) values (1,'lisi',23);

(2).一行中有多个列,我们可以插入全部列,也可以插入部分列

但是:列与值要严格对应

insert into user (uid,name) values (1,'lucy');

(3).主键自增插入 主键自增插入 desc user;

insert into user (name) values ('yumi');

(4).插入所有列的简写 插入所有列的简写

insert into user values ('kimi',25); //报错:列计数不匹配值计数insert into user values (3,'kimi',25);

数字可以加单引号,它也会转成int来理解

但是字符串必须加单引号,不加会理解为一个列名或者变量,会报错

insert into user values ('4','zhangsan','25');insert into user values (5,zhangsan,25);

(5).一次添加多行数据 一次添加多行数据

insert into user values (5,'test1',44),(6,'test2',23),(7,'test3',18);

注意:

列与值, 严格对应 (id 自增列也必须对应)

数字和字符串的注意点

数字不必加单引号,字符串必须加单引号.

1 次添加多行数据,用逗号隔开

2. update 操作

增删改查 -> 改

改哪张表?

你需要改哪几列的值?

分别改为什么值?

在哪些行生效?

(1).update 更改列

update user set age=99 where name='yumi';update 表名 set列1=新值1,

列2=新值2where expr

update user set age=23,name='nobody' where uid=2;

(2).update 所有行

注意,不加 where 带来的后果

update user

setname='mingming',

age=55;

数据是很宝贵的

如果我们update不加where条件,后果是很可怕的

mysql可以设置新手模式,在新手模式下,删除和更改不加where条件,它是拒绝执行的.

3. delete 操作

增删改查 -> 删

可不可以删除某一行中的某一列?delete...

其实这是个update操作

对于传统型数据库而言,一行就是它的原子型的单位

添加是一行,删除也要是一行

你要删除哪张表的数据?

你要删掉哪些行?

delete from表名where expr

sql: *

delete from user where uid=7;

注意不加where条件

delete from user;

4. select 操作

增删改查 -> 查

查哪张表的数据?

你要选择哪些列来查询?

要选择哪些行?

select 列1,列2,...列n

from 表名

where expr

(1).查询表的所有行所有列

select * from user;

开发中很少这样写,因为表中会有成千上万的数据,这样查询会增加数据库负担;

我们需要哪几条数据,就查询哪几条数据即可

(2).查询一行

select * from user where uid=2;

(3).查询多行

select * from user where uid>=2;

(4).查询某几行的某几列,* 代表所有列

select uid,name from user where uid>=2;select name from user where uid=2;

dml占sql的80%,查占dml的80%;

我们所学的是最最基础的查询语句;

想要写出高难度的复杂的查询,我们还需专门讨论查询的模型的问题;

看我们是否能正真理解select,写出强大的查询语句,

要靠select的查询模型,非常之重要

(5).goods表,查询本店的商品比市场价便宜多少

select goods_id,goods_name,shop_price,market_price,market_price-shop_price from goods;

(6).投影的概念

select name,age from user;

user表有三列,我们只取出2列(部分列),叫做投影运算

就像手电筒,只照到两列,投出影子显示出来

goods表查询出来 market_price-shop_price

两个列做运算,叫做广义投影

四、练习

1.取整

select num/10 from mian;

2.mysql 手册函数

floor 向下取整

select floor(num/10)*10 from mian;

3.更改mian表

update mian set num=floor(num/10)*10 where num between 20 and 39;select * from mian;

提示:大胆的把列看成变量,参与运算,甚至调用函数来处理 .

substring(),concat()

4.substring 截取字符串

select goods_id,substring(goods_name,4) from goods where goods_name like '诺基亚%';

5.concat 拼接字符串

select goods_id,concat('HTC',substring(goods_name,4)) from goods where goods_name like '诺基亚%';

6.更改表

为了不破坏表的数据,此处不予修改

update goods set goods_name=concat('HTC',substring(goods_name,4)) where goods_name like '诺基亚%';

大胆的把列看成变量,参与运算

注明:该笔记是学习“MySQL加强_布尔教育”时所记录的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

figtree如何编辑进化树_iTOL快速绘制颜值最高的进化树

iTOL简介大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章。人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你每次花了半个…

java怎么碰到异常跳过继续执行_Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?...

欢迎关注专栏《Java架构筑基》——专注于Java技术的研究与分享!Java架构筑基​zhuanlan.zhihu.comJava架构筑基——专注于Java技术的研究与分享!后续文章将首发此专栏!欢迎各位Java工程师朋友投稿和关注# 链接 Java程序员福利"常用资料分…

mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...

网上有人说开启事务后 sql语句执行错误或程序出错 没有执行rollback的情况下,下一次运行就会自动commit程序出错不会回滚rollback但是也有人说抛出异常等 程序如果MySQL存在没有提交的事务,那么这时候 AUTOCOMMIT 自动提交的参数应该是为 0 的。不过如果…

python列表常用方法实践_python 列表list 常用方法

stus [] #空的列表stu2 list() #空的列表stus ["fff", "zzz", "aaa"]#增stus.append("ppp") #在列表的末尾增加一个元素# print(stus)stus.insert(9, "qqq") #当指定的索引不存在,则默认插入元素到最后# prin…

python 2x可以打么_Python打基础一定要吃透这68个内置函数

内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等。截止到python版本3.6.2 ,python一共提供了68个内置函数,具体如下abs() dict() help() min() setattr()all() dir() hex() next() slice()any() di…

mygeneration mysql_利用Mygeneration 自动生成maping文件和entity类文件

利用Mygeneration 自动生成maping文件和entity类文件Mygeneration下载要下载1.3.0.3版本, 默认支持mysql了,不用再安装mysql的驱动了。Template Code : 主要使用的模板代码,会实时展示在Template Source选项卡中Interface Code : 根据Templat…

mysql explain字段含义_史上最全的explain常见结果含义分析,值得收藏

概述对于MySQL执行计划的获取,我们可以通过explain方式来查看,explain方式看似简单,实际上包含的内容很多,尤其是输出结果中的type类型列。理解这些不同的类型,对于我们SQL优化举足轻重。今天主要介绍一下常见的type结…

mysql schema命名规范_数据库设计 命名及编码规范

http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx引用一、综述命名和编码过程中,定义有意义的名称,以易于理解、方便书写为原则。(1)避免使用中文,尽量使用全拼音或全英文,以方便国际化;(2)避免拼音…

mysql 大表 备份_MySQL大表备份的简单方法

MySQL大表备份是一个我们常见的问题,下面就为您介绍一个MySQL大表备份的简单方法,希望对您学习MySQL大表备份方面能有所帮助。这里所说的大表是超过4G以上的表,我目前见到过最大为60多G的单表,对于这种表每…

mysql多数据源切换_CI 多数据库操作 切换数据库

CI 切换数据库是很方便的,如:连接多数据库如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:$DB1 $this->load->database(group_one, TRUE);$DB2 $this->load->database(group_two, TRUE);注意&#xff…

mysql用的cap中哪两个_分布式事务CAP定理和BASE理论

课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程。对于难以理解的知识点,全部用画图实战的方式讲解。彻底明白事务的四个特性:原子性、一致性、隔离性、持久性,用场景…

怎么检测mysql主从正常_使用pt-table-checksum检查主从复制是否正常

其实对于一个小小的DBA来说,有时候是无法避免这些问题的。于是我们就需要一个工具,来检查主从复制是否正常,是否出现了错误。pt-table-checksum。相关阅读:MySQL 主从复制事件校验 MySQL Replic…

java 自动类型_java类型自动转换

package com.kevin.basic;/** java类型自动转换方面的知识点* int类型 double类型 默认类型*/public class Test {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stub/* int类型是整数的默认类型。* (1)第一种:正确运行…

java 不显示控制台_命令行启动java程序不显示控制台窗口

关键:start javaw –jar xxx.jar一个例子:ECHO OFFREM "zcx eclipse help script"set ehome"f:\eclipse"pushd %ehome%if "%1" "start" (explorer http://localhost/help/index.jsp)start javaw -classpath pl…

java 修改ini文件_Java读取和修改ini配置文件

/*** 修改ini配置文档中变量的值* param file 配置文档的路径* param section 要修改的变量所在段名称* param variable 要修改的变量名称* param value 变量的新值* throws IOException 抛出文档操作可能出现的io异常*/public static boolean setProfileString(String file,St…

java定义接口规范_关于java的接口的一些规范

一、Api请求及响应规范 为了严格按照接口进行开发,提高效率,对请求及响应格式进行规范化。1、get 请求时,采用key/value格式请求,SpringMVC可采用基本类型的变量接收,也可以采用对象接收。2、Post请求时,可…

a java虚拟机_Java虚拟机

内存分配以及回收Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。虚拟机栈:线程…

java tostring的用处_JAVA的tostring()方法的作用是什么呢?

展开全部1.toString方法Object类具有一个toString()方法,你创建的每个类都会继承62616964757a686964616fe4b893e5b19e31333365666236该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需…

java calendar 毫秒_java Calendar(将时间精确到毫秒)

package com.neusoft.date;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class RiQi{public static void main(String []args){System.out.println(new Date());//calendar可以将时间精确到毫秒Calendar calendar new Gregori…

java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?

如果你用someInt(> 0)乘以低于1.0的最大值,结果永远不会是someInt。这可以穷尽地测试整数,像这样:Double greatestLessThanOne Double.longBitsToDouble(4607182418800017407L);// Assert that greatestLessThanOne is indeed the larges…