day47 Pyhton 数据库Mysql 04
# 表结构
# 建表 - 表的增加
# create table
# 删表 - 表的删除
# drop table
# 改表 - 表的修改
# alter table 表名
# rename 新表名
# add 字段 类型(宽度) 约束 first
# add 字段 类型(宽度) 约束 after 另一个字段
# modify 字段 新类型(新宽度) 新约束 first/after
# change 原字段 新字段 新类型(新宽度) 新约束 first/after
# 查看表结构 - 表的查
# desc 表名; 只能查字段的信息
# show create table 表名; 可以查看整个表的设置 编码 引擎 自增字段的offset # 基础的数据类型 帮助我们刚好的决定表结构中用到的数据类型
# 约束
# not null 非空约束
# default
# unique 唯一约束
# int auto_increment
# primary key 主键 一张表有且只有一个主键
# foreign key 外键 # not null + unique = primary key
# unique + int -> auto_increment
# 外表中的字段是 unique -> foreign key
# 一个表中可以有多个非空 + 唯一
# 一个表中不可以有多个主键
# 一个表中可以有多个外键
# 联合
# 联合主键
# 联合唯一
二.今日内容
# 数据的插入
# 数据的删除
# 数据的修改
# 数据的查询
# 单表查询
# 很多语法和练习
三.数据的增删改
# create table t1(
# id int primary key auto_increment,
# name char(12) not null,
# age int not null,
# sex enum('male','female') default 'male'
# ); # 一 \ 数据的插入
# 表结构
# id name age sex
# insert into 表名 values (1,'alex',83,null);
# insert into 表名 (name,age) values ('alex',83);
# insert into t1 (name,age) values ('alex',83),
# ('wusir',25),
# ('yuan',25); # 二 \ 数据的删除
# 表结构
# id name age sex
# 1 alex 83 male # 删除数据 找到要删除的数据
# delete from 表名 where 条件
# delete from 表 where sex = 'male';
# delete from 表 where name = 'alex';
# delete from 表 where name = 'alex' and sex = 'male'; # 三 \ 数据的更新
# id name age sex
# 1 alex 83 male # 更新数据 先找到要更新的数据
# update 表 set 字段名=值 where 条件
# update 表 set age = 84 where name = alex;
# update 表 set age = null where name = alex;
# update 表 set age = 84,
# sex = 'female'
# where id = 1; # 所有的用户信息都在mysql的user表中
# 如果我们需要删除用户或者修改用户的密码,也可以使用数据的删改来操作user表
'''
company.employee
员工id id int
姓名 emp_name varchar
性别 sex enum
年龄 age int
入职日期 hire_date date
岗位 post varchar
职位描述 post_comment varchar
薪水 salary double
办公室 office int
部门编号 depart_id int
'''
# 一 \ 词法分析
# select distinct 要查的字段 from 表
# where 条件
# group by 分组
# having 过滤
# order by 排序
# limit 取前n个
# 二 \ 简单查询
# 查询所有的字段\单个字段\给字段重命名\给字段去重
# select * from 表;
# select 字段名1,字段名2 from 表;
# select distinct 字段名1 from 表;
# select 字段名 as 新的临时名字 from 表; # 查询数据的四则运算
# select emp_name,salary*12 from 表;
# select emp_name,salary*12 as annua_salary from employee; # concat/concat_ws
# select emp_name,salary from employee;
# 姓名 : alex, 薪资:100000
# select concat('姓名 :',emp_name,', 薪资 :',salary) from employee;
# select concat('姓名 :',emp_name),concat('薪资 :',salary) from employee;
# select concat_ws(':',emp_name,salary) from employee;
# select concat_ws(':',emp_name,salary) as annual_salary from employee; # case语句
# SELECT
# ( # if条件判断
# CASE # 一个if条件判断句的开始
# WHEN emp_name = 'jingliyang' # if
# THEN emp_name # then if条件成立之后做的事儿
# WHEN emp_name = 'alex' # # elif 另一个条件
# THEN CONCAT(emp_name,'_BIGSB') #
# ELSE # else
# concat(emp_name, 'SB') # 没有then 直接就是上述条件不满足都走这个分支
# END # end 就表示这个case语句结束了
# ) as new_name
# FROM
# employee;
# 三 \ where 约束
# 1.比较运算符: > < >= <= <> != =
# select * from employee where id>10;
# > < >= <= 一般和数字打交道
# = != 和所有数据类型打交道
# 2.between a and b # 表示范围在[a,b]之间
# 3.in
# 4.like
# 通配符
# '%' 表示任意长度任意字符
# '_' 表示一个任意字符
# 5.and or not # 薪资在8000-10000之间的男人
# select * from employee where salary between 8000 and 10000 and sex = 'male';
# 找到所有的 operation部门或者teacher部门
# select * from employee where post = 'operation' or post = 'teacher';
# select * from employee where post in ('operation','teacher'); # 函数
# now() 获取当前时间
# user() 获取当前用户
# password('密码') 摘要密码
# concat('','','','')
# concat_ws('拼接符号','','','')
# GROUP_CONCAT(字段名) 一定适合group by 连用的
# count 计数器
# sum
# max
# min
# avg
# 四 \ group by 约束
# 根据某些条件进行分组
# 按照部门分组
# 按照性别分组 # 每个部门的平均工资
# select post,avg(salary) from employee group by post; # 五 \ having 约束 必须写在group by之后,而且不能脱离group by单独存在
# 需求 平均工资大于10000的部门有哪些
# 求部门的平局工资 只有在分组之后才能计算平均工资
# select post,avg(salary),group_concat(emp_name) from employee group by post having avg(salary) > 10000;
# select post,group_concat(emp_name) from emp group by post having 所有条件都是以组为单位的 # 六 \ order by 排序
# select * from employee order by salary;
# select * from employee order by salary desc; # 七 \ limit 前n条
# limit n
# limit start,n # 从start+1开始 ,取n条
day47 Pyhton 数据库Mysql 04的更多相关文章
- day45 Pyhton 数据库Mysql 02
一.前期回顾 数据库 mysql的安装 配置环境 为什么要用数据库? 稳定性 一致性 并发 存取数据效率高 数据库的分类 关系型数据库 mysql oracle sqlserver 非关系型数据库 r ...
- day49 Pyhton 数据库Mysql 06
多表查询 连表查询 要进行连接,那一定涉及两个表,两个表中要有关联条件才能进行连接 内连接 只有表一和表二中的连接条件都满足的时候才能显示出来 inner join on /where 条件 sele ...
- day46 Pyhton 数据库Mysql 03
一内容回顾 存储引擎:主要描述的是数据存储的不同方式 innodb 支持事务\支持外键\行级锁\聚焦索引 myisam 不支持事务\不支持外键\表级锁\非聚焦索引 memory 只能在内存中存储表数据 ...
- day44 Pyhton 数据库Mysql
内容回顾 什么是进程? 就是为了形容执行中的程序的一种称呼 它是操作系统中资源分配的最小单位 进程之间是数据隔离的,占用操作系统资源相对多 独立存在的 谈谈你对并发的理解 同时有多个任务需要执行,但是 ...
- day48 Pyhton 数据库Mysql 05
一内容回顾 insert insert into 表名 (字段名) values (值) insert into 表名 values (有多少个字段写多少个值) insert into 表名 val ...
- 创建本地数据库mySQL并连接JDBC
转自: http://blog.csdn.net/wei_chong_chong/article/details/44830491 如何创建本地数据库MySQL并连接JDBC 转载 2015年04月0 ...
- 数据库MySQL——初识
认识数据库—MySQL 楔子 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 由于在同一时段抢票的人数太多,所以你的程序不可能写 ...
- 数据库mysql的常规操作
1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...
- 数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件
数据库MySQL之 视图.触发器.存储过程.函数.事务.数据库锁.数据库备份.事件 浏览目录 视图 触发器 存储过程 函数 事务 数据库锁 数据库备份 事件 一.视图 1.视图概念 视图是一个虚拟表, ...
随机推荐
- Kubernetes 初体验(先占个坑)
- GuestOS? HostOS?
起因 今天在网上看到一篇文章 有几个陌生的关键词不太熟悉,就随笔记一下. 名词解释 # OS :操作系统 # VM(虚拟机) 里的OS 称为 GuestOS # 物理机 ...
- leetcode刷题-56合并区间
题目 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]] 思路 通过设置一个移 ...
- python基础:日志模块logging,nnlog
python里面用来打印日志的模块,就是logging模块,logging模块可以在控制台打印日志,也可以写入文件中.也可以两个操作都执行 1.控制台输入 import logging#导入模块 lo ...
- CSS特效(一)
三角形 <!-- log --> <div class="tri"></div> <style> .tri { width: 0; ...
- Linux常用的三种软件安装方式
一:Linux源码安装 1.解压源码包文件 源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,后缀格式会分别为.tar.gz与.tar.bz2,分别的解压方式: ...
- Erlang+RabbitMQ Server的详细安装
Erlang(['ə:læŋ])是一种通用的面向并发的编程语言, 它有瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境. Erlang官网:ht ...
- 基于bellman-ford算法使用队列优化的spfa求最短路O(m),最坏O(n*m)
acwing851-spfa求最短路 #include<iostream> #include<cstring> #include<algorithm> #inclu ...
- pytest封神之路第五步 参数化进阶
用过unittest的朋友,肯定知道可以借助DDT实现参数化.用过JMeter的朋友,肯定知道JMeter自带了4种参数化方式(见参考资料).pytest同样支持参数化,而且很简单很实用. 语法 在& ...
- Java Web学习(十二)Tomcat核心
一.引言 其实按道理来说,学习Java web应该在前面的篇幅就写有关tomcat相关的知识点,不过近期看了一些资料,觉得以前仅仅只是知道用tomcat去发布我的项目,一些细节的东西也没有好好总结,这 ...