1.load data infile
load data infile 'newbooks.txt' into table books;
该命令从newbooks.txt文件将原始数据读入到表books中。
默认情况下,文件中数据字段必须通过tab键进行间隔,而且必须括在单引号内。
同时每行都必须有换行符间隔。特殊字符必须转义。---file权限
2.存储引擎--表格类型
create table tablename type=type----默认myisam类型,他是存储记录和
文件的标准方法。可以被压缩,支持全文搜索,不支持事务,外键。
innodb---事务安全,速度快,支持外键。
对一个表大量使用select,insert语句是,应该使用myisam
当事务非常重要,insert,select语句交错执行的情况下,使用innodb
临时表、、视图--使用memory表格
修改表格类型:alter table orders type=innodb;
3.事务
--确保数据库一致,是一个或一系列的查询,这些查询可以保证能够在数据库中
作为一个整体全部执行或全部不执行。
set autocommit=0 //start transaction;----commit/rollback
4.外键
myisam无法强制使用外键。
设置外键---创建使用外键的表格
create table order_items
( orderid int unsigned not null references orders(orderid)//意味必须包含orders表格中orderid列值。
......
)type=innodb //外键要求,表格类型
alter table order_items add foreign key(orderid) references orders(orderid);
5.存储过程:
1)delimiter //将语句末尾的分隔符从当前值改为双斜杠字符。
2)创建存储过程:create procedure total_orders (out total float)
out表示该参数将被传出或返回。
in表示该值必须传人到存储过程。
inout表示该值必须传人但是可以被存储过程修改。
float表示参数类型
3)调用存储过程:call total_order(@t)
该语句将调用total_orders过程并且传人一个用来保存结果的变量。
4)要查看该结果,需要查看该变量。
select @t;
5)删除存储过程:drop procedure total_orders;
创建一个函数。函数接收输入参数并且返回一个唯一值。
1)delimiter //
2) create function add_tax(price float) returns float
return price*1.1;
3)调用:select add_tax(100);
4)删除函数:drop function add_tax;
局部变量:declare声明
游标和控制结构:
游标类似有一个数组。它将从一个查询获得结果集
并且允许一次只处理一行
1)declare c1 cursor for select orderid,amount from orders.
游标名称c1.
2)open c1;运行查询,要获得每一个数据行,必须运行一个fetch语句。
repeat......until done end repeat;
while condition do ....end while
loop .....end loop
3)fetch c1 into this_id,this_amount;从游标查询中获取一个数据行。
set l_amount=this.amount;
if end if; case end case;
4)close c1;
关闭游标。