mysql基础知识总结

一、连接数据库

mysql -u root -p  默认连接到本地的数据库
mysql -h 192.168.12.12 -u root -p  连接远程的的数据库

二、基本命令

1、show databases;---------------------------显示数据库中的库
2、create database 数据库名-------------------创建一个数据库
3、use 表名称;-------------------------------使用表
4、show tables;------------------------------显示当前数据库中所有的表
5、creat table 表名(-------------------------创建表
  列名 数据类型  是否为空  默认值 自增列 设置主键
  列名 数据类型  是否为空  设置主键
)6、drop table 表名-----------------------------删除表7、delete from 表名----------------------------清空表   truncate table 表名8、修改表的操作:  alter table 表名 add 列名 属性------------------添加列  alter table 表名 drop 列名 属性------------------删除列  alter table 表名 change 旧列名   新列名   类型---修改列  alter table 表名 add primary key(列名)  alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);  alter table 表名 drop foreign key---------------删除外键

自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)
 注意:1、对于自增列,必须是索引(含主键)
       2、对于自增可以设置步长和起始值

自增列的俩种写法 :1、在创建的列后面直接加 primary key      2、写完列后在最后加primary key (列名,列名)

主键:一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。
外键:一个特殊的索引,只能是指定内容

constraint fk_cc foreign key (color_id) references color(nid

三、基本数据类型

数据类型:
	整数:tinyint  ----0-255
		:int(m)----m表示显示的位数
		:bigint ------大整数
	小数:decimal(m,d)-----精确的小数,其中m=<65,n=<30,m表示数字总长度,n表示小数后的几位
		:flout(m,n)-------单精度浮点数,数字越大越不准确
		:double(m,n)------双精度浮点数,数字越大越不准确
	字符串:char(m)----------定长字符串,m表示字符串的总长度----------查询速度快
		:varchar(m)-------变长字符串,m表示字符串的总长度
		:text(m)----------保存变长的大字符串
		:enum(1,2,3)----枚举,表示自能从里面获取
		:set--------------集合
	时间:data----------2016-8-2016-8-2
		:time----------21:48
		:datatime-------2016-8-2 21:49:33

四、表内容的操作

1、增
	insert into 表名(字段1,字段2....) values(值1,值2.....),(值1,值2....)
	2、删
	delete  from 表名 where 条件
	3、改
	updata 表名 set 字段 = 值   条件
	4、查
	条件:
		select * form 表名 条件
		select * from 表名 where nid > 1 and name != ‘alex‘;
		select * from 表名 where nid between 5 and 12;----------------查nid为5-12之间的值
		select * from 表名 where nid not in (select nid from 表名)
		select * from 表名 where nid in(1,2,3,4)
	通配符:
		select * from 表名 where name like ‘ale%‘----------------------以ale开头的所有字符串 %表示多个字符
		select * from 表名 where name like ‘ale_‘----------------------以ale开头的所有字符串 %表示单个字符
	限制:
		select * from 表名 limit 5;------------------------------------找前5行数据
		select * from 表名 limit 1,2;----------------------------------找从第1行开始以后的2行数据
		select * from 表名 limit 2 offset 1;----------------------------------找从第1行开始以后的2行数据
	排序:
		select *  from 表名 order by 字段1,字段2;------先按字段1排序,字段1相同的值再按字段2进行排序
		这里的后面也可以规定asc(从小到大)和desc(从大到小)进行排序
	分组:
		select 字段1 from 表名 group by 字段1------------以字段1中的数据进行分组,显示字段1中的种类
		select count(字段1) from 表名 group by 字段1------以字段1进行分组,并显示分组后字段1中数据种类的个数
		select 字段1 from 表名 group by 字段2--------以字段2进行分组的时候,查询的是字段1中的数据,默认是把字段中小的值取出来
		select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid
		select count(字段1),sum(字段1),max(字段1),min(字段1),avg(字段1) from 表名  grop by 字段2
		select count(字段1),sum(字段1),max(字段1),min(字段1),avg(字段1) from 表名  grop by 字段2 having  max(字段1)>1;
		|
		|
		----------->如果想用聚合条件作为条件的话,必须使用having

五、pymysql操作数据库

创建连接
conn = pymysql.connect(host=‘127.0.0.1‘, port=3306, user=‘root‘, passwd=‘123‘, db=‘t1‘)

创建游标
cursor = conn.cursor()

执行SQL,并返回收影响行数
effect_row = cursor.execute("update hosts set host = ‘1.1.1.2‘")

执行SQL,并返回受影响行数
effect_row = cursor.execute("update hosts set host = ‘1.1.1.2‘ where nid > %s", (1,))

执行SQL,并返回受影响行数-----------插入多行数据executemany("sql语句",[(),().....])
effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])

提交,不然无法保存新建或者修改的数据
conn.commit()-----------------查询的时候不用

new_id = cursor.lastrowid-----------获取自增id ,默认获取最后一行的

关闭游标
cursor.close()

# 关闭连接
conn.close()
cursor.execute("select * from hosts")
cursor.fetchall()	--------以元祖套元祖的方式获取得到的所有数据
cursor.fetchone() ----------获取一行数据,后面再有的话,则获取下一行数据
cursor.fetchmany(m) ----------获取前几行数据

cursor.scroll(1,mode=‘relative‘)  相对当前位置向下移动一个位置
cursor.scroll(1,mode=‘absolute‘)  移动到1的位置

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)-------这样设置以后,返回的结果是列表套字典的形式
时间: 2025-01-19 23:21:23

mysql基础知识总结的相关文章

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

MySQL基础知识

MySQL基础知识: 一. 知识点:        1. SQL分类:按照其功能不同,分为3中类别           DDL(Data Defintion Language):数据定义语句,用于定义不同的数据段.数据库.表.列.索引等.常用的语句关键字包括create.drop.alter等;             DML(Data Manipulation Language):数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据的完整性.常用的语句关键字主要包括insert.de

趁一切还来得及【一】数据库MySQL基础知识及编译安装

此情更待成追忆,只是当时已惘然.                                        --[唐]李商隐 第一章 数据库概述及分类特点应用 1.1 数据库种类.语言处理.典型产品 ①数据库的理解:就是一个存放数据的仓库,这个仓库是按照一定的数据结构,来组织和存储的.可以通过数据库提供的多种方法来管理数据库. ②数据库的种类:按照早期的数据库理论分为层次数据库.网络式数据库.和关系型数据库.当今互联网最常用的就是关系型数据库和非关系型数据库(NOSQL). ③关系型数据库:

MySql基础知识、存储引擎与常用数据类型

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型 1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结:数据永远是数据库的核心. 1.2.关系数据库管理系统 通过"数据库管理系统",数据

一、MySQL基础知识

一.背景介绍 我们每天都在访问各种网站.APP,如微信.QQ.抖音,今日头条等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪里呢?数据库. 所有我们需要开发一个网站.APP,数据库我们必须掌握的技术.常用的数据库有mysql,oracle.sqlserver.db2等. oracle性能第一,mysql免费,mysql在互联网公司使用率排名第一. 二.mysql系列主要介绍 1.mysql的基本使用 2.mysql性能优化 3.开发过程中mysql一些优秀的案例介绍 三.数据

Mysql基础知识:数据类型

Mysql基础数据类型 1. 整数类型 2. 浮点数类型和定点数类型 DECIMAL型的取值范围与DOUBLE相同,但是DECIMAL的有效范围由M.D决定.而且DECIMAL的字节数为M+2,即定点数的存储空间是根据其精度决定的. M:精度,是数据的总长度,小数点不占位置: D:标度,小数点后的长度 eg:FLOAT(6,2):数据长度为6,小数点后保留2位的FLOAT数据类型.按照该定义,1234.56符合要求. 3. 日期和时间类型 YEAR类型:(使用1个字节表示) 可以用4位字符串或数

MySql基础知识命令总结一

数据库的引入和概念 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据管理不方便.例如查询某个数据需要全部读取出来,再匹配. 数据保存到数据库软件: 优点: 1)数据永久保存下来 2)数据管理非常方便.(例如查询非常快速和方便) 数据库,俗称数据的仓库.方便管理数据的软件(或程序). 市面上常见的数据库 Oracle,甲骨文公司的产品. 当前最流行应用最广泛的数据库软件.和j

MySQL 基础知识梳理学习(五)----详解MySQL两次写的设计及实现

一 . 两次写提出的背景或要解决的问题 两次写(InnoDB Double Write)是Innodb中很独特的一个功能点.因为Innodb中的日志是逻辑的,所谓逻辑就是比如插入一条记录时,它可能会在某一个页面(这条记录最终被插入的位置)的多个偏移位置写入某个长度的值,例如页头的记录数.槽数.页尾槽数据.页中的记录值等.这些本是一些物理操作,而Innodb为了节省日志量及其它原因,设计为逻辑处理的方式,即在一个页面上插入一条记录时,对应的日志内容包括表空间号.页面号.将被记录的各个列的值等内容,

ssh与mysql基础知识

saveorupdate()如果传入的对象在数据库中有就做update操作,如果没有就做save操作.save()在数据库中生成一条记录,如果数据库中有,会报错说有重复的记录.update()就是更新数据库中的记录主键在saveorupdate()方法中是起着关键作用的,只有这个主键的值不为空的时候才进行insert还是update的判断,否则直接insert若主键不为空,就可以进行saveorupdate()操作了.save是返回插入数据的主见的,而saveOrUpdate是voidsave方

第二天 MySQL基础知识

今天开始学MySQL数据库的知识.话说我一直念叨的东西,今天终于看到真面目了,不过刚找了个2012的版本发现有5G大小,而一个2016的版本只有2G...真是略微蛋疼...不管怎么样还是入门了.话又说回来,课程说的是一个星期,但是像我这么聪明估计两个月就搞定了~~~~哈哈~~~唉,说多都是泪啊... 等下把澡洗了,今天学到一点钟,一定要完成数据库的入门.花21天的时间养成一点钟睡觉的习惯到底考不靠谱也可以在这次历练中验证. 老马你能坚持下去么???