1.数据库与表:
创建数据库: create database dbname charset utf8;
1.1删除数据库: drop database dbname;
1.2查看表的结构: desc tableName;
1.3 查看表的创建过程: show create table  tableName;



2.创建数据表:
create table tbName (列名称1 列类型 [列参数] [not null default ],....列2.......列名称N 列类型 [列参数] [not null default ])engine myisam/innodb charset utf8/gbk
create table user (
    id int auto_increment,
    name varchar(20) not null default '',
    age tinyint unsigned not null default 0,
   index id (id)
   )engine=innodb charset=utf8;
注:innodb是表引擎,也可以是myisam或其他,但最常用的是myisam和innodb,
charset 常用的有utf8,gbk;
如果创建表格的时候没有设置字符集而出现乱码的话,可以这样设置字符集:
alter table tbname convert to character set utf8;

设置列的默认值:
建表的时候:
age tinyint unsigned not null default 0,(这个default 后面的就是默认值) 
若本身存在默认值,则先删除
alter table表名alter column字段名drop default; 
然后设置默认值(若本身不存在则可以直接设定)
alter table表名 alter column字段名 set default默认值;

参考:

3.修改表:

3.1修改表之增加列:
alter table tbName 
add 列名称1 列类型 [列参数] [not null default ] #(add之后的旧列名之后的语法和创建表时的列声明一样)
3.2修改表之修改列
alter table tbName
change 旧列名  新列名  列类型 [列参数] [not null default ]
(注:旧列名之后的语法和创建表时的列声明一样)
3.3修改表之减少列:
alter table tbName 
drop 列名称;
3.4修改表之增加主键
alter table tbName add primary key(主键所在列名);
例:alter table goods add primary key(id)
该例是把主键建立在id列上
3.5修改表之删除主键
alter table tbName drop primary key;
3.6修改表之增加索引
alter table tbName add [unique|fulltext] index 索引名(列名);
3.7修改表之删除索引
alter table tbName drop index 索引名;
3.8清空表的数据
truncate tableName;
3.9修改数据:update tablename set 列名=值,列名=值 where id=X;
3.10删除数据:delete from tablenaeme where 条件;
3.11修改列的默认值:
先删除原默认值:
alter table 表名 alter column 列名  drop default;
再添加默认值:
alter table 表名 alter column  列名 set default "默认值";



4.select 查询:
(1)  条件查询   where  a. 条件表达式的意义,表达式为真,则该行取出
  b.  比较运算符  = ,!=,< > <=  >=
  c.  like , not like ('%'匹配任意多个字符,'_'匹配任意单个字符) in , not in , between and
  d. is null , is not null
  (2)  分组       group by  一般要配合5个聚合函数使用:max,min,sum,avg,count
  (3)  筛选       having
  (4)  排序       order by
  (5)  限制       limit



5.连接查询:
5.1 左连接
.. left join .. on
table A left join table B on tableA.col1 = tableB.col2 ; 
  例句: select 列名 from table A left join table B on tableA.col1 = tableB.col2
5.2  右链接: right join
5.3  内连接:  inner join
左连接都是以在左边的表的数据为准,沿着左表查右表.
内连接是以两张表都有的共同部分数据为准,也就是左右连接的数据之交集.



6.子查询:
where 型子查询:内层sql的返回值在where后作为条件表达式的一部分
  例句: select * from tableA where colA = (select colB from tableB where ...);
  from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询
  例句:select * from (select * from ...) as tableName where ....



7.其它:
存储引擎 engine=1\2
  1 Myisam  速度快 不支持事务 回滚
  2 Innodb  速度慢 支持事务,回滚
  ①开启事务          start transaction
  ②运行sql;          
  ③提交,同时生效\回滚 commit\rollback
  触发器 trigger
  监视地点:表
  监视行为:增 删 改
  触发时间:after\before
  触发事件:增 删 改
  创建触发器语法
create trigger tgName
after/before insert/delete/update 
on tableName
for each row
begin
sql; -- 触发语句
end;

  删除触发器:drop trigger tgName;

以上内容主要来自十八哥的mysql复习秘籍.

-------------------------------------



9.cmd连接mysql的方法:
mysql -hlocalhost -uroot -p (回车,注意要不加分号)
然后提示输入密码,密码为空的话,直接回车,即可进入数据库.
也可以直接选择数据库:
mysql -hlocalhost -uroot -p test 回车
然后提示输入密码,密码为空的话,直接回车,即可进入test数据库.



10.修改数据库的字符集:
查看字符集设置
mysql> show variables like 'collation_%';
mysql> show variables like 'character_set_%';
修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;