Mysql基础入门

章节导航

  • Mysql基础入门
  • 创建
  • 新增
  • 删除
  • 修改
  • 查询
  • 数据类型
  • 主键
  • 外键
  • 数值计算
  • 关联查询
 1.登录mysql:mysql -uroot -p2.使用数据库: use 数据库名;3.导入sql文件: souse 目录;4.各个关键字的顺序:select 字段信息 from 表名 where 条件 group by 字段 having 聚合函数条件 order by 字段 limit ;5.关联查询关键字顺序: select * from A join B on 关联关系 where 普通字段条件 group by 字段名....

创建

1.创建数据库名: create database 数据库名;
2.创建表: create table 表名 (字段);
3.创建指定字符集的表: create table 表名(name varchar(10),score int) charset=gbk;
4.创建指定字符集的表: create table 表名(name varchar(10),score int) default charset=utf8;//默认字符集

新增

1.添加表字段(末尾添加):alter table 表名 add 字段 类型;
eg: alter table student add gender varchar(5);2.添加表字段(首字段添加): alter table 表名 add 字段 类型 first;
eg:alter table student add id int first;3.在某个字段的后面添加:alter table 表名 add 字段 类型 atter 字段;
eg: alter table student add money int after name;二.数据新增
1.全表插入(要求值的数量和顺序和表字段要保持一致):insert into 表名 values(值1,值2...);
eg: insert into person values("Tom",18);2.指定字段插入:insert into 表名(字段名1,字段名2) values(值1,值2);
eg: insert into person(name,age) values("jerry",18);3.批量插入:3.1.insert into person values('Lucy',20),('Lily',21);3.2.insert into person(name)values('Lilei'),('Hanmeimei');

删除

1.删除数据库: drop database 表名;
2.删除表: drop table 表名;
3.删除表字段: alter table 表名 drop 字段名; eg: alter table student drop money;
4.删除指定字段的信息: delete from 表名 where 条件; eg:delete from person where age=0;

修改

1.修改表名:rename table 原名 to 新名;
2.修改表字段:alter table 表名 change 原字段名 新字段名 新类型;
eg: alter table student change gender money int;
3.修改数据库密码: mysqladmin -u用户名 -p旧密码 password 新密码
eg:mysqladmin -uroot -p123456 password root  //将密码123456修改为root
4.修改指定字段的值:update 表名 set 字段名=xxx,where条件;4.1 修改Tom的年龄为8岁, update person set age=8 where name='Tom';4.2修改年龄为空的年龄为10岁: update person set age=10 where age is null;

查询

1.查看所有表:show tables;
2.查询表所有内容:select * from 表名;
3.查看表结构:desc 表名;
4.查看数据库的字符集: show create database 数据库名;
5.模糊查询并排序:select * from 表名 where encode like '字段' order by 字段(此处+ desc 为降序);
eg:select * from emp where job='销售' order by sal desc;说明: 1._: 代表1个未知符号 2. %: 代表0或多个未知符号1. 以x开头: x% 2. 以x结尾: %x 3. 包含x: %x% 4. 第二个字符x: _x% 5. 倒数第二个是x: %x_ 6. 以x开头倒数第二个是y: x%y_ ;eg: 1.1 以x开头 x% : select * from emp where ename like '孙%';6.查询所有:select * from 表名;
7.查看表详情:show create table 表名;
8.查询所有数据库:show databases;
9.查询表: show tables;
10.查询指定条件的信息: select 字段 from 表名 where 字段条件
eg: select name,age from person where age>20;11.去重查询:select distinct 字段 from 表名;
12.查询某个字段不为空的信息: select * from 表名 where 字段 is not null;
eg:select * from emp where MGR IS NOT NULL;13.查询满足多个字段的值的信息: select 字段 from表名 where 字段 or 字段;
eg: select ename,job,sal from emp where job='人事' or sal>3000;14.查询某个字段的值为多个值的信息: select * from 表名 where 字段 in(值1,值2,值3);
eg: select * from emp where sal in(1000,3000,5000);15.查询某个字段的值在某个字段两个值之间的信息: select 字段 from 表名 where 字段 between 值1 and值2;
eg: select ename,sal from emp where sal between 1000 and 2000;16.排序: 16.1 升序 order by 字段: select * from 表名 order by 字段;16.2降序: order by 字段 desc: select * from 表名 order by 字段 desc;16.3多个字段排序:select * from 表名 order by 字段,字段2,字段三;eg:select ename,sal,deptno from emp order by deptno desc,sal;17.分页查询limit: limit 跳过条数(跳过页数*每页条数),请求条数(每页条数);
eg: select * from emp limit 0,3;18.分组查询(以某个字段作为条件): group by ;
eg:查询每个部门的平均工资:select deptno,avg(sal) from emp group by deptno;19.次数相关: count(*): select 字段,count(*) from 表名;
eg:查询每种工作的人数:select job,count(*) from emp group by job;

数据类型

1.date:只能保存年月日
2.Time:只能保存时分秒
3.datetime:默认值为null,最大值9999-12-31;
4.Timestamp:(时间戳:距1970年1月1号的毫秒数):默认值为当前系统时间,最大值2038-1-19
5.浮点数: double(m,d) m代表总长度 d代表小数长度 53.234 double(5,3) ,超高精度浮点数 decimal(m,d)精度远高于double 只有涉及超高精度运算时使用

主键

1.主键:表示数据唯一性的字段称为主键
2.约束:创建表时给表字段添加的限制条件
3.主键约束:限制主键的值,唯一且非空
4.格式:primary key
eg: create table t1(id int primary key, name varchar(10));5.自增:auto_increment(自增字段给null值会触发自增,从历史最大值+1)
eg: create table t1(id int primary key auto_increment, name varchar(10));

外键

外键约束作用:设置外键可以确保数据库完整性,模式分为:
删除时
1:RESTRICT(制约)或NO ACTION时(无动作):即:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。
2.Cascade时(级联:就是删除主键表的同时,外键表同时删除):即:则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。
3.Set Null时(置空):即:则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。更新时
1:RESTRICT或NO ACTION时:即:则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。
2.Cascade时:即:则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。
3.Set Null时:即:则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)

如何设置外键约束

语句创建:alter table 子表的数据表名 add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);
eg: alter table book add foreign key(tid) references book_type(id) on delete restrict ON UPDATE CASCADE;删除外键:alter table 表名 drop foreign key 外键名称
eg:alter table book drop foreign key book_ibfk_5

数值计算

1.查询每个员工的姓名 工资及年终奖: select ename,sal,sal*5 from emp
2.查询每个员工的姓名 工资及年终奖(别名形式): select ename 名字,sal 工资,sal*5 年终奖 from emp
eg:select job,count(*) c from emp group by job having c=1;3.聚合函数: 1.平均值:avg(字段名) 2.最大值:max(字段名) 3.最小值:min(字段名) 4.求和:sum(字段名) 5.计数:count(*)4.having后面写聚合函数条件,需要结合分组查询使用: having 聚合函数条件
eg:select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

关联查询

创建表时: 表与表之间存在的业务关系 外键:用来建立关系的字段称为外键
1.一对一:有AB两张表,A表的一条数据对应B表的一条,同时b表的一条也对应A表的一条
2.一对多:有AB两张表,A表的一条数据对应B表的多条,同时b表的一条对应A表的一条
3.多对多:有AB两张表,A表的一条数据对应B表的多条,同时b表的一条对应A表的多条
二.
2.1关联查询-等值连接: select * from 表1,表2 where 关联关系 and 其他条件
eg: 查询工资高于两千的员工的姓名和对应的部门名: select e.ename,d.dname from emp e, dept d where e.deptno=d.deptno and e.sal>2000;2.2 内连接: select * from 表1 join 表2 on 关联关系 where 其他条件
eg: 查询工资高于两千的员工的姓名和对应的部门名: select e.ename,d.dname , e.sal from emp e join dept d on e.deptno=d.deptno where e.sal>2000;2.3 外连接: 查询一张表的全部数据和另外一张表的交集数据:select * from 表1 left/right join 表2 on 关联关系 where 条件
eg:查询所有员工姓名和对应的部门名:select e.ename ,d.dname from emp e left join dept d on e.deptno=d.deptno;总结:如果查询的是多张表的数据,则使用关联查询,查询的是两张表的交集数据使用等值连接或者内连接(推荐),如果是查询的是一张表的全部和另外一张表的交集数据则使用外连接

Mysql基础增删改查,主外键关联相关推荐

  1. MySQL基础增删改查

    登录MySQL mysql -uroot -p123456 -h 127.0.0.1 exit   或  quit  退出 关键字 if  exists 是否存在 数据库增删改查 查看MySQL :查 ...

  2. mysql 删除表数据_主外键关联表的数据删除策略

    说个题外话,我从来没想过会被拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个, 各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下 ...

  3. mysql 定义外键并增删改查_20150102--Mysql外键+增删改查-01

    回顾 校对集:校对集必须事先设置好,修改无效 乱码问题:三码合一,通过php设置数据库和浏览器的编码 存储引擎:数据库数据的存储方式 数据类型:数值型,字符串型和时间日期型 数值型:整型,小数型(浮点 ...

  4. django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)

    数据库操作 dbfirst:数据库优先 codefirst(ORM):代码优先,sqlalchemy和DJango都是用的这种 创建表 a.在app下的models.py中,创建类 from djan ...

  5. mysql 基础 增删改查语句

    MySQL:众多关系型数据库中的一种 仓库 --数据库 箱子 --表 数据库: 进入mysql 命令行: mysql -uroot -p 查看所有数据库: show databases; 创建数据库: ...

  6. MySQL基础---增删改查语法

    一.DDL-数据定义语言,操作数据库(CRUD)和表(CRUD) 1 创建数据库(指定字符集) create database 数据库名称 character set utf8; 数据库和表修改都是 ...

  7. php pdo基础增删改查 postgresql的主键自增设置 time()

    主键自增 参考https://www.javadrive.jp/postgresql/table/index10.html和https://stackoverflow.com/questions/48 ...

  8. MYSQL数据库 增删改查基础语句

    MYSQL数据库 增删改查基础语句 **********************DDL 语句 *********************   ( DDL 是数据定义语言的缩写,简单的说,就是对数据库内 ...

  9. JDBC+MySQL入门增删改查案例

    目录 前言 案例分析 核心思路拆解 案例涉及知识点 第一关 创建数据库和项目 创建数据库 创建项目 第二关 JDBC插入和查询 预备工作 单个插入 批量插入 查询数据 JDBC修改和删除 修改数据 删 ...

最新文章

  1. php分析图片水印,PHP开发的文字水印,缩略图,图片水印实现类与用法示例
  2. 关于windowsx.h的介绍
  3. 可以获取python整数类型帮助的是什么-下列选项中可以获取Python整数类型帮助的是...
  4. mysql 表与表之间的条件比对_Mysql分库分表面试题(mysql高可用方案解析)
  5. 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止
  6. Eclipse IDE中的Java 9 module-info文件
  7. 百度BCH云服务器SSL证书服务(免费申请流程)- 申请篇
  8. 将您的SQL Server工作负载迁移到PostgreSQL –第2部分
  9. SAP License:SAP复制和默认快捷小贴士
  10. SQL Server 查询数据表数据
  11. python工程师干什么的_Python就业前景和工资待遇分析,你学Python了吗?
  12. 620安装linux_Linux运维基础 Linux的quot;桑巴quot;
  13. Ayoa:让思维导图更简单,在线使用 无需安装客户端
  14. 浅谈css常用伪类用法
  15. 理解PPAPI的设计
  16. JAVA调起clearcase_Eclipse集成配置管理工具ClearCase (ccrc_for_eclipse)
  17. 微信网页授权流程 时序图
  18. 关于Arcgis中的裁剪说明
  19. vue脚手架根据需要进行配置
  20. 教你如何卷积操作进行边缘检测,基础必备

热门文章

  1. 汇编语句中.equ的作用
  2. HashMap 1.7和1.8的区别 --答到面试官怀疑人生
  3. 模电学习笔记(九)——仪表放大器
  4. 函数周期表丨时间智能丨值丨TOTAL函数系列(修订)
  5. 明白这3点,普通人也能用知识赚钱
  6. win10使用技巧之关闭软件安装前的用户提示
  7. 快速排序——一趟快排
  8. unity2018设置雾在哪_unity如何创建雾的效果
  9. html5平抛,第五讲:使用html5中的canvas动态画出物理学上平抛运动
  10. C++11 for循环新用法、for_each 用法