码迷,mamicode.com
首页 > 数据库 > 详细

mysql基础知识总结

时间:2016-08-04 22:56:06      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

一、连接数据库

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)-------这样设置以后,返回的结果是列表套字典的形式

 

mysql基础知识总结

标签:

原文地址:http://www.cnblogs.com/luxiaojun/p/5738525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!