创建数据库 create table 数据库名 character set utf8;
           
<wiz_code_mirror>
 
 
 
 
 
 
 
 drop table 数据库名
 
 
修改数据库编码集:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter database 数据库名 character set 字符集(gbk,utf8);
 
 
切换数据库:
<wiz_code_mirror>
 
 
 
 
 
 
 
user 数据库名;
 
 
查看当前数据库名称:
<wiz_code_mirror>
 
 
 
 
 
 
 
select database();
 
 
 
 
创建表:
<wiz_code_mirror>
 
 
 
 
 
 
 
create table 表名(name int,age int);
 
 
    
 
查看该数据库的所有表:
<wiz_code_mirror>
 
 
 
 
 
 
 
show tables;
 
 
查看建表语句以及字符集:
<wiz_code_mirror>
 
 
 
 
 
 
 
show create table 表名;
 
 
 
查看列的信息:desc 表名;
 
差入数据:插入类型是字符的话要添加'';
<wiz_code_mirror>
 
 
 
 
 
 
 
insert into 表名 values('','','');
insert into 表名()values('','','');
 
 
 
数据表结构的修改:
   
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 增//改 列名 类型(长度) 约束;
 
 
增添现有列约束:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 add 列名 类型(长度) 约束;
 
 
修改现有列约束:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 modify 列名 类型(长度) 约束; 
 
 
修改现有列名称:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
 
 
删除现有列:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 drop 列名;
 
 
 
修改表名:
<wiz_code_mirror>
 
 
 
 
 
 
 
rename table 旧表名 to 新表名;
 
 
修改表的字符集:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 表名 character set 编码集;
 
 
删除表:
<wiz_code_mirror>
 
 
 
 
 
 
 
drop table 表名;
 
 
 
 
 
 
差入数据:插入类型是字符的话要添加'';
<wiz_code_mirror>
 
 
 
 
 
 
 
insert into 表名 values('','','');
insert into 表名()values('','',''),('','','');
 
 
修改标记录:
<wiz_code_mirror>
 
 
 
 
 
 
 
update 表名 set 列名=,列名=[where 条件语句];
 
 
删除表中记录:
<wiz_code_mirror>
 
 
 
 
 
 
 
delete from 表名 [where 条件语句];
truncate table 表名; (truncate语句会比delete的性能好)
 
 
    删除过程不同
    truncate 删除数据,过程先将整个表删除,再重新创建一张空表
    delete 删除数据,逐行删除记录 
    truncate 效率要好于 delete 
语言定义不同
    truncate 属于DDL (数据找不回来),
    delete 属于DML(有可能找回来)     
 
事务:
   回滚:rollback;
      提交:comment;
 
排序:
<wiz_code_mirror>
 
 
 
 
 
 
 
select * from 表名 where 条件语句 order by 列名 desc/asc;
 
 
分组:select * from 表名 group by 列名;
<wiz_code_mirror>
 
 
 
 
 
 
 
select * from 表名 where group by having order by ASC/DESC ;
 
 
    
    
添加外键约束:
<wiz_code_mirror>
 
 
 
 
 
 
 
alter table 从表名称 add foreign key(外键列的名称) references 主表名称(主键);
 
 
 
 
总结:
   库的操作
创建库:create database 库名 character set 编码表;
删除库:drop database 库名;
查询库:show databases;
查看库的编码表:show create database 库名;
更改库:use 库名;
查看当前正在使用的库:select database();
修改库的编码表:alter database 库名 character set 编码表;
 
表本身的操作
创建表:create table 表名( 列名 列的类型(长度) 类的约束 ,列名 列的类型(长度) 类的约束...... );
删除表:drop table 表名;
查询表:show tables;
查看表的结构:desc 表名;
查看表的编码表:show create table 表名;
修改表:alter table 表名 增/删/改 列名 列的类型(长度) 约束;
add/drop/change/modify
修改表名:rename table 旧表名 to 新表名;
 
记录的操作:
增:insert into 表名(列名) values(值);
删:delete from 表名 where 条件; truncate 
改:update 表名 set 列名=值 ,列名=值 where 条件 ;
查:select 列名 as 别名 ,列名 as 别名… from 表名 where 条件;
查询排重:select distinct 列名 from 表名 where 条件;
 
 
聚合函数:
count 统计个数、sum求和、avg 平均值、max、min
在使用这几个函数进行数据的统计分析时,有时需要对数据表中的列进行数据的分组处理。group by
 
分组 group by :
 
 
排序:order by 列名 asc | desc;
 
    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--创建存储过程
create procedure getStuById(IN stuId int(11),OUT stuName VARCHER(255),out stuAge() int(11))
DELIMITER //
comment 'query students by their id '
SQL SECURITY DEFINER
BEGIN
  SELECT NAME,AGE,INTO STUName,stuAge from t_student where id=stiId;
  end //
 delimiter;
 
 
 --存储过程
 SHOW PROCEDURE STATUS LIKE 'g%'
 
 
 --调用存储过程
 call study.getStuById(1,@name,@age);
 select @name AS stuName,@age AS stuAge;
 
 call study.getStuById(2,@name,@age)
 select @name AS stuName,@age AS stuAge;
 
 
 --创建方法
 create function queryResuorceParentInfo(queryById varcher(32))
 returns varcher(21845)
 begin 
    declare sTemp varcher();
 
 
内连接:
   select * from a,b where a.id=b.id;
   select * from a inner join b on a.id=b.id;
左外连接(outer可以省略):
 select * from a left outer join b on a.id=b.id;
右外链接(outer可以省略):
 select *from a right outer join b on a.id=b.id;
全外连接(mysql不支持全外链接):
 select * from a full outer join b on a.id=b.id;
 mysql可以用union达到全外连接(union可以去掉重复的内容):
 select * from a left outer join b on a.id=b.id
 union
 select * from a right outer join b on a.id=b.id;
 
12-27 16:20