标签:
一、连接数据库
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)-------这样设置以后,返回的结果是列表套字典的形式
标签:
原文地址:http://www.cnblogs.com/luxiaojun/p/5738525.html