Python学习day01(mysql)

                                                                              Python学习day01(mysql)

Mysql 一般用来做网站,

Redis 一般用来做缓存

Mongodb 做非关系数据库

SQL : 结构化查询语言,

SQL:语言分为:

DQL: 数据查询语言,用于对数据进行查询,如select

DML: 数据操作语言,对数据进行增加,删除,修改,如insert,update,delete.

TPL:事务处理语言,对事务进行处理,包括begin,transaction,commite,rollback.

DCL:数据控制语言,进行授权与权限回收,如grant,revoke,

DDL:数据定义语言,进行数据库,表的管理等,如create,drop

CCL: 指针控制语言,通过控制指针完成表的操作,如declare cursor

使用数据的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间

常用数据类型如下:

。整数:int,bit

。小数:decimal     decimal(5,2)表示有5位其中2位是小数

。字符串:varchar(可变) char

。日期时间:data,time,datetime

。枚举类型(enum)

特别说明如下:

。Decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位

。Char表示固定长度的字符串,如char(3)若位数达不到会在末尾补空字符

。字符串text表示储存大文本,当字符大于4000时推荐使用

。对于图片,音频,视频等文件,不存储在数据库中,而是上传到某个服务器,然后在表中存储这个文件的保存路径

约束:

。主键primary key

:物理上存储的顺序

。非空not null:此字段不允许填写空值

。外键foreign key(存储别的表的主键到自己表中就是外键):对关系字段进行约束,

MySQL数据库操作的基本语句;

Show databases;  //展示数据库

show create database wuliu  //展示创建数据库wuliu的语句

查看当前使用的数据库:  select database();

查看表结构: desc +具体表名;

修改表--添加字段: alter table 表名 add 列名类型;

修改表---修改字段:不重命名版

alter table 表名modify 列名类型及约束;

alter table students modify birthday date;

修改表---修改字段:重命名版

alter table 表名change 源表名新名类型及约束;

alter table students change birthday birthdate default “1990-01-01”;

删除表字段:alter

table 表名 drop 列名;

alter table students drop high;

删除表:drop table表名;

查看表创建语句:show create

table students; //就会显示创建表的语句

---修改表内容:

update 表名 set 列1=值1,列2=值2..... where 条件;

---删除

----物理删除

----- delete

from students; ---整个数据表中得所有数据全部删除

---逻辑删除

--- 用一个字段来表示这条信息是否已经不能再使用了

---- 给students表添加一个 is_delete 字段 bit 类型

alter tablestudents add is_delete bit default 0;


数据库语句的查询

---查询

-----查询所有字段

----- select *from 表名;

------ 查询指定字段

----- select 列1,列2,.... from 表名

-----使用 as 给字段起别名

----- select 字段 as 名字,.... from 表名;

-----可以通过as 给表起别名

select s.name ,s.age from students as s;

------消除重复行

------ distinct 字段 select distinct gender from  student //把表中相同的数据筛选掉。

----条件查询

--比较运算符

---- select .......from表名where ......

---  >

, <, >=,= !=或者< >

--- or 表示或者

--- not

---不在 18岁以上的女性这个范围内的信息

select *from students where not age >18 and gender =2;

select *from students where not (age >18 and gender =2);

not 在谁前面就否定谁,加括号使后面的先运行。

----模糊查询

----like

---- % 替换1个或者多个

---- _ 替换1个

---- 查询姓名中以“小“开始的名字”

---- rlike 正则

--- 查询以周开始的姓名   select name from students where name relike  “^周.*”;

----范围查询

--- in(1,3,8)表示在一个非连续的范围内

-- 查询年龄为18, 34 的姓名

select name,agefrom students where age =18 or age = 34

或者select name age from students where age in (19,34)

---not in 不在什么范围之类

----between and 表示在一个连续的范围内

-----not between and 表示不在一个连续的范围内

----空判断

--- 判断is null

-- 查询身高为空的信息

----判断非空is not null’

---排序

----order by 字段

----asc 从小到大排序,即升序

--- desc 从大到小的排序,即降序

----聚合函数

---总数

---count

---查询男性有多少人,女性有多少人

select count(*)from students where gender=1;

select count(*)

as 男姓人数fromstudents where gender =1;

---最大值

--max

---查询最大的年龄

select max(age)from students;

---最小值

---min

---求和

---sum

select sum(age)from students;

--平均值

---avg

---计算平均值

select avg(age)

from students; 或者selectsum(age)/count(*) from students;

----四舍五入 round(123.23 ,1) 保留1位小数

---- 计算所有人的平均年龄,保留两位小数

select round(sum(age)/count(*),2) from students ;

----分组

----group by

--- 按照性别分组,查询所有的性别

---group_concat(字段名称),显示分组详情


----having

----查询平均年龄超过30岁的性别,以及姓名having avg(age)>30;

----分页

--- limit start,

count (start:开始位置,count:个数)

----限制查询出来的数据个数

select *fromstudents where gender=1 limit 2;

---查询前5个数据

select *fromstudents limit 0,5;

----连接查询

---inner join ... on

----select ...from 表 A inner join表B;

select * from students inner join classes;


--- 查询有能够对应班级的学生以及班级信息


select *fromstudents inner join classes on students.cls_id = classes.id

---- 按照要求显示姓名,班级

selectstudents.name, classes.name from students inner join classes on students.cls_id= classes.id;

--- 给数据表起名字

select s.name,c.name from students as s inner join classes as c on s.cls_id = c.id;


----left join (以左边表里面的所有信息为基准到右边表里面去匹配)没有就补NULL

[if !vml]

[endif]

而内连接是需要两个表都要才取出来

[if !vml]

[endif]

---- 查询每位学生对应的班级信息

selectc.name,s.*  from students as s left joinclasses as c on s.cls_id = c.id


注意:外键填另一个表里面的主键。

------内关联


-----用一张表来解决关联问题叫做内关联(后面的字段关联前面的字段)即能不能将两张表合为一张表

[if !vml]

[endif]



数据库设计必须要满足三范式

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 2,427评论 1 8
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,081评论 0 0
  • 一、数据库系统 数据库DataBase【DB】,指的是长期保存到计算机上的数据,按照一定顺序组织,可以被各种用户或...
    EndEvent阅读 1,897评论 2 3
  • 一、数据库系统 数据库DataBase【DB】,指的是长期保存到计算机上的数据,按照一定顺序组织,可以被各种用户或...
    王梓懿_1fbc阅读 512评论 0 0
  • 这是一个赢者通吃的时代。 有很多人经常感到很迷茫,很困惑,不知道要干什么?觉得自己做什么都没用?好像市场已经被别人...
    王秦颖阅读 1,107评论 0 4