SQL常用命令
登录操作
/* 登录远程客户端 */ mysql -h localhost -P8303 -uroot -proot
仓库操作
/* 查看数据仓库 */ show databases; /* 进入数据仓库 */ use mydbase;
表操作
/* 创建表 */ CREATE TABLE Persons ( Id int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) ) /* 查看表格式 */ desc tablename; /* 查看表内容 */ select * from tablename; /* 清空表 */ truncate table tablename; delete from tablename; /* 可恢复数据 */ /* 加载数据到表 */ $mysql -uroot -proot <export.sql /* export.sql 文件内容 */ load data infile "inputfile" into table test_project_url_score (version, fieldname);
/* 修改表名和类型 */ ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; /* 增加字段在指定字段name后 */ ALTER TABLE table_name ADD field_name field_type after name; /* 删除某个索引 */ alter table tablename drop index emp_name; /*重命名表 */ alter table t1 rename t2;
/* 删除字段 */
alter table tablename drop field_name;
/* 增加timestamp,默认情况会设置 CURRENT_TIMESTAMP in on update CURRENT_TIMESTAMP*/
alter table tablename add mytimestamp timestamp NULL;
加载数据到表
/* use my database; 使用我们的数据库 * 下面是加载文件到数据库,并指定加载列name, score * 设置列id值为321, 也可以设置其值为日期如 CURRENT_TIMESTAMP; * Shell命令为, 下行即为export.sql的内容 * $mysql -uroot -proot <export.sql * data的内容为 \t 为tab分隔 * ximing\t98 * xiaoli\t95 * xiaoqi\t90 */ use mydatabase;load data infile "/home/work/data" into table tablename(name, score) set id = 321; /* 参考网址: * http://dev.mysql.com/doc/refman/5.1/en/load-data.html */
数据操作
#! /usr/bin/env python #coding=utf-8 ''' * 使用python中的MySQLdb 插入字符串时,因字符串中存在双引号, * 导入失败,修正方法 ''' import MySQLdb conn=MySQLdb.connect(host='1.1.1.1',user='root',passwd='root',port=8306) cur=conn.cursor() conn.select_db('mydatabase') #下面内容为 先单引号,包含双引号 ' " 这里放入插入内容 " ' cur.execute('insert into project(id,stgy) values(1002,\'"{"json_str"}"\')')
conn.commit()
cur.close()
conn.close()
修改表内符合条件的字段的值
/* 修改表tablename中的fieldname字段值为100,条件为表中id字段的值为 101到200之间 (包含101和200) */ UPDATE tablename SET fieldname=100 WHERE id between 101 and 200 UPDATE tablename SET fieldname=100 WHERE id=105
删除表中的一条数据
delete from table where name='张三' and id-15
查看表内数据内容
select * from tablename limit 10; /* 查看表内条目数 */ select count(*) from bsc_app_budget;
列出字段中去重后所有的值
select distinct field from table;
问题及解决方法
/* 需要对记录内,同一字段取和,但是需要根据另外一个字段不同的值,对和进行区分。 */ Select product, sum(count) from table_name group by product
复制表结构,并复制内容
create table newtable like oldtable; INSERT INTO B SELECT * FROM A;