mysql 小结
一、连接数据库
set names gbk; 设置编码
\c 推出sql语句;
truncate;删除数据表内容
mysql -h localhost -uusername -ppasswd
mysal登录: mysql -p -u root 推出:quit
二、库
show databases; 查询库
descript(desc) 表名; 表结构
create database 库名;
drop database 库命;
(select database;)
use 库名;
三、数据类型
整型: 5 个主要整数类型,这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。
Tinyint(0——255)
smallint
mediumint
int
bigint
二、小数型/浮点型、定点型
Float(M,D)
字符型 char 定长 char(M) varchar 变长 text
日期:
year、date、time、datetime、时间戳
注意:在开发中,很少用日期时间类型来表示一个需要的精确到秒的列
原因:虽然日期时间类型能精确到秒,而且方便查看,用时间戳来表示
三、表
desc class;查看表结构
rename table oldNamt to newName;表重命名
drop table tableName; 删除表
show tables;
a.创建表 就是声明列的过程
create table score (
stu int,
name varchar(20),
ke varchar(10),
fen int
);
一、查询
select
二、增
insert into msg(id,title,name,content) values (1,'初来乍到','张三','刚来能不能当老大?');
三、改
update msg set id =2, content ='偏要当老大' where name ='李四' ;
四、删 (删的是列)
delete from msg where id=2;
五、触发器
a.四要素:监视地点、监视事件、触发时间、触发事件
创建触发器的语法
create trigger triggerName
after/before insert/update/delete on 表名
for each row
begin
sql语句:#一句或多句,Insert/update/delete范围内
end;
例子:old new
delimiter $
create trigger tg1
after insert on o
for each row
begin
update g set num=num-3 where id=2;
end$
create trigger tg2
after insert on o
for each row
begin
update g set num=num-new.much where id=new.gid;
end$
删除触发器的语法:
drop trigger 触发器名
如何在触发器引用行的值
对于insert 而言,新增的行用new来表示
行中的每一列的值,用new点列名来表示
对于delete来说,原来有一行,后来被删除,
想引用被删除的这一行,用old来表示,old列名,就可以引用被删行中的值
对于update来说
被修改的行
修改前的数据,用old来表示,old列名引用被修改之前行中的值
修改后的数据,用New来表示,New列名引用被修改之后行中的值
六、存储过程
存储过程:procedure
概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,
可以通过调用该存储过程来实现,在封装的语句体里面,可以用if/else,case,while等控制结构,
可以进行sql编程。
查看现有的存储过程:
show procedure status;
删除存储过程
drop procedure 存储过程的名字
调用存储过程:call 存储过程名字();
在mysql中,存储过程和函数的区别,
一个是名称不同
二个是存储过程没有返回值