mysql 即学a又学b_MySQL学习第一天
一、 数据库:
*学习重点:创建数据库/向表添加记录/查询记录
数据库概念:文件系统(存储和管理)
数据库软件介绍:Oracle/MySQL/SQL server…
分类:
关系型数据库:关系模型组织数据
非关系型数据库:键值对关系存储
二、 mysql数据的存储方式:
一台数据库服务器中会创建很多个数据库(一个项目会创建一个数据库)
在数据库中会创建很多张表(一个实体会创建一个表)
在表中会有很多记录(一个对象的实例会添加一条新的记录)
三、 数据库中表和Java中类的对应关系:
数据库中以表的方式存储数据,类似于Java中的类,每个字段会有相应的数据类型;
表名 – Java类
表中的字段 – 类中的属性
表中的记录 – 类创建的对象
浏览器 — Web服务器 — 数据库服务器
用户 项目
四、 SQL: (结构化查询语言:Structure Query Language)
1)概述:定义了操作所有关系型数据库的规则;
2)SQL通用语法:
1.语句以分号结尾
2.空格和TAB增加可读性
3.不区分大小写,关键字用大小写
4.三种注释; a. -- (通用) b. # (mysql特有) c. /* */
3)SQL分类: (了解)
DDL(Database Definition Language): 操作数据库/表
DML(Database Manipulation Language): 增删改表中的数据
**DQL(Database Query Language):查询表中的数据
DCL(Database Control Language): 授权
五、 DDL: (Definition)操作数据库/表
1) 操作数据库 (CRUD)
1. Create:创建
create database 库名; 创建数据库
create database 库名; 创建数据库
create database if not exists 库名;
create database 库名 character set 字符集名;
create database if not exists 库名 character set 字符集名;
2. Retrieve:查询
show databases; 查看所有数据库;
show create database 库名;查看指定数据库的字符集(创建语句)
3. Update:修改
alter database 库名 character set 字符集名;
4. Delete:删除 (慎用)
drop database 库名;
drop database if exists 库名;
5. 使用数据库
use 库名; (不加database)
select database();查看正在使用的数据库;
2) 操作表 (CRUD)
1. Create:创建
create table 表名 (列名1 数据类型1, 列名2 数据类型2…);
注意: 1.加() 2.最后一列不要逗号
常见数据类型:
数值类型:
int: 整数 eg: age int;
double(m,n):小数
eg:score double(5,2);五位小数,保留两位;
字符串类型 :
varchar(len):字符串(长度可变) 格式:varchar(字符串长度)
char:字符串(长度固定)
示例: zhangsan 8个字符 张三 2个字符
日期类:
time(HH-mm-ss):时间
date: 日期 格式: yyyy-MM-dd eg:19960227 /1996-02-27
datetime:日期
格式: yyyy-MM-dd HH:mm:ss eg:19960227052013
注意: 如果没有存值,则默认为 Null
timestamp:时间戳 (stamp邮票)
注意: 没有存值,默认系统时间;
//示例:
create table student(
id int,
name varchar(30),
score double(5,2),
birthday date(yyyy-MM-dd),
insert_time timestamp
)
2. Retrieve:查询
show tables; – 查询所有的表; (并没有show table 表名;语句)
show create table 表名; – 查看创建表的详细信息
describe 表名;–查询表结构;
3. Update:修改 (八太重要)
a) 修改表名
alter table 表名rename to 新表名; – 修改表名
alter table 表名 character set 字符集名;–修改表的字符集
b) 添加一列:
alter table表名 add 列名 数据类型; – 添加新字段
c) 修改列的名称/类型
alter table 表名 change 列名 新列名 新数据类型;–修改指定的字段
alter table 表名 modify 列名 新数据类型;–修改字段的数据类型
d) 删除列
alter table 表名 drop 列名; 删除表的字段
4. Delete:删除表
drop table 表名;
drop table if exists 表名;
六、 DML: (Manipulation)增删改表中数据
添加数据:
insert into 表名 (列名1,列名2…) value (值1,值2…);
insert into 表名 value (值1,值2…); – 给所有列添加数据
注意:
1.列名和值要一一对应
2.如果不定义列名,默认给所有列添加值,写的时候就要写全,不然报错;
问题:
在命令窗口添加中文数据时,会报错;编码问题;
SHOW VARIABLES LIKE ‘%character_set_%’;模糊查询变量字符串的设置
删除数据:
delete from 表名 where 条件; 按条件删除数据
注意:不加条件,删除所有记录; (慎用) 有多少条记录就会执行多少次操作;
truncate table 表名; (推荐效率高) – 删除表,再创建一样的新表;
truncate :vt. 把…截短;缩短;使成平面
修改数据:
update 表名 set 列名1 = 值1, 列名2 = 值2… where 条件;
注意:不加条件,默认修改所有的记录;
七、 DQL: (Query)查询表中的记录
1. 语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件限定
order by
排序
limit 分页限定
2. 基础查询
多个字段的查询:
select 列名1,列名2...from 表名; 查询
select * from 表名; 查询表中所有数据
去重:
select distinct address from student;
计算列:
select 列名1 + 列名2 from student;
注意:如果有null值参与的运算,结果都是null;
解决:select 列名1 + ifnull(列名2, 0) from student;
ifnull(表达式1,表达式2);
表达式1:那个字段需要判断是否为null;
表达式2:如果是null,则赋值为表达式2;
起别名:
select 列名 as 新列名 from student; -- as可以省略
3. 条件查询 ( where )
1.格式: where子句后跟条件
2.运算符:
比较运算:
< > <= >= = !=
between 数值1 and 数值2; -- 在..和..之间
in(数值1,数值2...); -- 在..中
is null /is not null ; -- 是否为null
eg: select name,math from student where math is null;
逻辑运算:
且: && / and 或: || /or 非: !
4. 模糊查询: (like)
占位符:
_ :单个任意字符
% :多个任意字符
eg:
select *from student where name like '马%'; -- 第一个字为马的人
select *from student where name like '_马%'; -- 第二个字为马的人
select *from student where name like '___'; -- 名字为三个字的人
select *from student where name like '%桥%'; -- 名字中有桥的人
SELECT *FROM student WHERE NAME LIKE '柳_'; -- 名字为两个且姓柳
因为本人刚开始写博客,时间有限,没有编辑文本.
mysql 即学a又学b_MySQL学习第一天相关推荐
- python全栈要学什么_python全栈要学什么 python全栈学习路线
IT行业,技术要比学历.年龄.从业经验更为重要,技术水平直接决定就业薪资,想要学好python,首先要先了解精通Python语言基础.Python web开发.Python爬虫.Python数据分析这 ...
- 没有基础怎么学Web前端?相关学习路线是什么?
没有基础怎么学Web前端?相关学习路线是什么?随着互联网的迅猛发展,互联网项目对用户体验提出了更高的要求,Web前端开发人员成为了重要的研发角色.很多人想要快速加入前端开发这一高薪行列,对于想要学习W ...
- web前端开发需要学什么(包含前端学习路线)
前端开发,做到后面,是可以走很多方向的: 但是要保证后期的平滑过度,前期还是要把一些必须的知识搞扎实的: web前端开发需要学什么 环境搭建 前端环境很好搭建,编辑器+浏览器即可. 浏览器推荐使用 C ...
- 学弟学妹要的Java学习路线我终于写完了
目录 学Java有哪些就业方向? 数据结构和算法 设计模式 计算机基础 Java 入门 Java 高手进阶 基础框架(SSM) 微服务框架 常用中间件 数据库 分布式架构 必须掌握的工具软件 学习资源 ...
- 零基础学软件测试需要学什么?附全套学习路线图+课程
零基础学软件测试需要学什么?对于初学者应该有一个系统的认知,需要学习测试基础.Linux和数据库.功能测试.Python编程.WEB自动化测试.移动端自动化测试.接口测试.性能测试等相关知识.接下来我 ...
- c语言的学生理系统,C语言学习系统的教程
完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题.网站新增了"软件百科"."锦囊妙技&q ...
- 笨办法学python3_软件测试需要学什么(个人软件测试学习路线)
快转正啦,要写转正评审ppt,顺带就总结了下个人学习路线,仅供参考.初学者不要看晕了,学完基础就可以找实习啦,其他的慢慢来~ 先附上xmind,简洁明了 1.长期学习软件测试理论 其中包括测试方法熟练 ...
- 小孩子爱玩手机学计算机编程好吗,学习编程教育对孩子的哪些重要意义
目前,国内外对科技教育的重视是编程教育趋热的重要动因.在国外,创客教育及STEAM已成为其素质教育的核心,编程.3D打印.机器人等新技术也已走进了的中小学校.甚至,连美国前总统奥巴马也曾参与" ...
- 《零基础学JavaScript(全彩版)》学习笔记
<零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...
最新文章
- 读取mysql数据库的数据,转为json格式
- SPDK,软件定义存储的催化剂
- 数仓和mysql的区别_数据库和数据仓库的区别和联系
- crontab周期性任务计划
- 32通过rs485烧写程序_28027芯片sci程序烧写问题请教
- 一文读懂区块链以及一个区块链的实现
- webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度...
- RestTemplate使用笔记
- 江苏技术师范学院大学机房管理系统[.NET项目]
- 动态加载jar包(一)
- JAVA集合系列(6):HashMap
- 微信群裂变不起来怎么办?
- ggplot2|详解八大基本绘图要素,你需要的都在这-目录版
- linux系统怎样进入图形界面,Linux系统中如何切换图形界面与字符界面
- javascript成神之路(1):如何编写高质量的js代码
- mysql求回购率_SQL-- 用户行为(复购率、回购率等)
- js 一串数字1403149534转换为日期格式
- 精通CSS+DIV网页样式与布局--页面背景
- 河南科技学院教务管理系统服务器,河南科技学院教务管理系统http://jwgl.hist.edu.cn/jwweb/...
- java图片文字自动识别