一、表与库的概念

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

生活中的表---->表 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加强_布尔教育”时所记录的

mysql数据库查询笔记_MySql数据库基础笔记(一)相关推荐

  1. mysql 创建查询 删除_MYSQL数据库查询删除创建企业基本知识

    数据查询语言(DQL)从表中获取数据 select  + where (位置)  order by(排序)  group by  haveby 查询用户:select user,host,passwo ...

  2. mysql数据库查询游戏_MySQL数据库高级查询和多表查询

    MySQL多表查询 添加练习表 -- 用户表(user) CREATE TABLE `user`( `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id( ...

  3. mysql api查询例子_MySQL数据库:常用查询的例子Frommysqlapi

    本文主要向大家介绍了MySQL数据库的常用查询的例子Frommysqlapi,通过具体的实例让大家了解,希望对大家学习MySQL数据库有所帮助. 常用查询的例子 下面是一些学习如何用MySQL解决一些 ...

  4. mysql数据库查询语句_mysql数据库查询语句

    一   数据库的语句 1     关于数据库 创建数据库         create database 数据库名字(自己命名) 查看mysql下的所有数据库               show d ...

  5. mysql 嵌套查询性能_MySQL数据库之嵌套查询与连接查询的性能详解

    本文主要向大家介绍了MySQL数据库之嵌套查询与连接查询的性能详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化. ...

  6. mysql导入查询失败_mysql数据库中的查询失败

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. mysql数据库查询余额_MySQL 数据库(三):查

    掌握 单表查询 掌握 多表查询 掌握 order by 排序方法 掌握 in 查询用法 掌握 like 模糊查询用法 掌握 count() 统计用法 掌握 group by 分组用法 掌握 disti ...

  8. mysql 子查询 共享锁_MySQL数据库排他锁与共享锁

    导语:"简单印象"头条号每天将不定时发布一篇文章,文章内容大多为原创性技术相关或技术人的另一面生活,欢迎大家收藏文章或点击右上角的"关注",支持我的头条号,也可 ...

  9. mysql数据库查询试题_mysql数据库查询练习45题

    #建学生信息表studentcreate table student ( sno varchar(20) not null primary key, sname varchar(20) not nul ...

  10. mysql频繁查询出错_Mysql数据库频繁查询错误解决方案

    TcpTimedWaitDelay和MaxUserPort设置 描述:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间.关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍 ...

最新文章

  1. 工作中涉及运维知识点的汇总
  2. jrebel热部署不起作用_5种SpringBoot热部署方式,你用哪种?
  3. RBF(径向基)神经网络 非线性函数回归的实现
  4. Elasticsearch 入门教程
  5. c# applibrary实现一个Sheet表中存放多张DataTable数据
  6. Python学习笔记__10.4章 进程VS线程
  7. spyder 护眼背景
  8. 平均年薪60.8万!拿下这个证书,算法岗直接起飞!
  9. CSDN-markdown编辑器的使用方法
  10. 谷歌力推新语言 Logica,解决 SQL 重大缺陷!
  11. 打怪升级的monteCarlo仿真方法
  12. JAVA中,目录C:\\TEMP等效于C:\TEMP
  13. 删除非系统盘的msdia80.dll文件以及出现的dllregisterserver调用失败错误代码0x80004005问题
  14. 运维工程师必会原理知识
  15. 海天讲座(一)最优传输理论
  16. python 拆分excel单元格_python使用openpyxl excel 合并拆分单元格
  17. 水滴pin安卓版apk_水滴清单app
  18. 智能语音输入厂家对比 百度语音 阿里语音 华为语音 讯飞灵云智声
  19. 系统解剖学 | 神经系统 | 核上瘫和核下瘫
  20. 软件工程专业的论文答辩_软件工程专业论文答辩一般都会问些什么问题啊?(我们老师没联系过我们,什么都不知道)?...

热门文章

  1. Js实现动态插入删除文本框
  2. mysqli与pdo防sql注入源码
  3. 没有已启用的仓库。 执行 “yum repolist all“ 查看您拥有的仓库。
  4. 人脸检测算法_腾讯已开源高精度人脸检测算法DSFD
  5. c语言error和,C语言ERROR精选.doc
  6. php单下划线的函数,基于PHP函数的操作方法
  7. python sanic部署_Sanic教程:配置
  8. python数据库自动重连_python mysql断开重连的实现方法
  9. gerber文件怎么导贴片坐标_SMT贴片机在线编程调试
  10. Windows11安全中心打不开怎么办 Win11打不开安全中心解决方法