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 ('','zhangsan','');
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 = 新值2
where expr
update user set age=23,name='nobody' where uid=2;
(2).update 所有行
注意,不加 where 带来的后果
update user
set
name='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数据库基础笔记
数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作. 数据库的分类 关系型数据库(Oracle.MySQL.SQLite等) 非关系型数据库(Redis.MongoDB ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- mysql数据库基础-2019-9-10(随堂笔记)
mysql数据库基础 在cmd情况下启动mysql数据库:(配置path环境变量后可忽略) 运行mysql1. 进入mysql路径2. 执行:mysql -uroot -p,安装时的密码 1.数据库& ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- mysql数据库基础的简单操作指南
最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- MySQL数据库基础
MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...
随机推荐
- Redis使用sortedset缓存IP段数据
我们原来的业务中,有很多地方需要解析用户IP的信息,刚开始是通过新浪.百度这些第三方的接口来解析IP信息,后来发现调用这些接口频繁时会被禁用一小段时间.不得已只得将数据存到我们的数据库中,表结构大致如 ...
- 使用.NET Core与Google Optimization Tools实现加工车间任务规划
前一篇文章<使用.NET Core与Google Optimization Tools实现员工排班计划Scheduling>算是一种针对内容的规划,而针对时间顺序任务规划,加工车间的工活儿 ...
- 如何将打包好的文件做成一个APP
本文主要是用来简短的对做成一个APP进行说明,内容可能不是多详细,但会给出具体思路.(仅供参考) 因为各种打包和生成APP的方式多样,今天这里仅仅对用Hbuilder打包进行说明. 1.首先当然需要一 ...
- window7环境下ZooKeeper的安装运行及监控查看
原文:http://www.cnblogs.com/RainAndWind/p/4668427.html ZooKeeper是一个分布式开源框架,供了协调分布式应用的基本服务.这些天在使用DUBBO, ...
- IdentityServer4 中文文档 -6- (简介)示例服务器和测试
IdentityServer4 中文文档 -6- (简介)示例服务器和测试 原文:http://docs.identityserver.io/en/release/intro/test.html 目 ...
- [转]docker-compose教程(安装,使用, 快速入门)
本文转自:https://blog.csdn.net/pushiqiang/article/details/78682323 教程基于ubuntu下最新的compose版本3 参考: https:// ...
- 强烈推荐:240多个jQuery插件
概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架.其宗旨是—写更少的代码,做更多的事情.它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不 ...
- AJAX 基本结构 数据加载
AJAX -- 网页数据异步加载 .ashx 一般处理程序 json 数据格式,在不同的语言之间传递数据 对象格式: "{"key":"value& ...
- ASP.NET Identity 一 (转载)
来源:http://www.cnblogs.com/r01cn/p/5194257.html 注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的A ...
- Mybatis 与hibernate
共同点 (1)Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由 ...