1、 mysql的安装
mysql-5.0.27-win32.rar
setup.exe
选择功能模块
1) typical:包括常用功能模块
2) complete:所有弄能模块
3) custom:自己选择(推荐)
   配置
1) detailed:详细配置
2) standard:标准配置
类型
1) developer:程序员机器,占用尽量少的资源
2) server:服务器,占用资源中等
3) dedicated:数据库专用服务器,占用资源最多
编码
默认latin 1 不支持中文
l Utf-8:国际通用码表
l Windows本地码表为GBK,也可选择GBK
系统选项
  将mysql安装为windows服务,自动启动
  将mysql目录添加到PATH环境变量,直接从命令行启动
运行
  点击“开始”—“运行”---“cmd”---mysql –u root –p123456
  注意:在“-p口令” 中间不要有空格,无法判断口令的开始位置
       或者-p回车,在下一行输入密码,密码不可见
2、 数据库概念
1)了解定义:DBMS、SQL、DDL、DML、DQL
 设计项目的时候会针对每个应用创建一个数据库
 数据库可以包含多张表
 创建库
 mysql>create database 数据库名 [参数]
 参数:
l character set 编码方式
l collate 校队规则 
 详见附录
 显示库
 mysql>show databases;
 显示数据库创建语句
 mysql>show create database 数据库名; 
 修改数据库 
 mysql>alter  database 数据库名 [参数]
注意:不能改数据库的名字
删除数据库
mysql>drop database 数据库名
 练习:
l 创建数据库db1
l create database db1;
l 创建数据库db2指定字符编码和校对规则
l create database db2 character set gbk collate utf8;
l 显示所有的数据库
l show databases;
l 显示db2的字符编码
l show create database db2;
l 将db2的字符编码设置为gbk
l alter database db2 default character set gbk;
l 删除数据库db1、db2;
l drop database if exists db1;
l drop database if exists db2;
l use db2;
3、 表
操作表之前需确定使用哪个数据库
mysql>use 数据库名;
数据库名.表名
  创建表
mysql>create table 表名(
     字段名  数据类型  属性设置,
     字段名  数据类型  属性设置,
      ……
     )[表参数设置];
     参数:存储引擎(MyIsam 、Innodb) 详见P431
          注意:MYISAM 占用空间小 .frm .MYD .MYI
                INNODB 支持外键、事务、表空间文件  .frm
                可以在同一个数据库共存
      数据类型:详见p424
        注意:mysql扩展ANSI/ISO SQL92标准,另外支持任意指定一个整型数值的显示格式,为宽度小于指定长度时左补零或空格准备的。
          数值类型:整型和浮点
          字符类型:
          时间日期:
      查看所有表:
mysql>show tables;
查看表的创建语句
mysql>show create table 表名;
显示表结构
mysql>desc 表名;
修改表名
mysql>rename table 旧表名  to  新表名;
修改表字符集
mysql>alter table 数据库名.表名  character set 字符集名;
添加字段
mysql>alter table 表名 add 字段名 类型 first ;
mysql>alter table 表名 add 字段名 类型 after 列名 ;
修改字段
 注意:字段名不变时两者功能相同;
change、modify关键字
mysql>alter table 表名 change 旧字段名 新字段名 类型 ;
mysql>alter table 表名 modify 新字段名 类型 ;
删除表
mysql>drop  table 表名;
删除列
mysql>alter table 表名 drop  列名;
    练习:
      创建表biao1,包含以下字段
        Id       整型
        Name    字符型
        Birthday  日期
        Salary    浮点
        Photo     二进制
create table biao1(
               id int,
name char,
birthday date,
salary float,
Photo blob
);
      修改表名为biao2
rename table biao1 to biao2;
      显示表结构
  desc biao2;
      增加一个字段 gender    bit
                   Resume   4字符串
alter table biao2 add column resume char(4);
     修改resume字段 大文本
alter table biao2 modify  resume longtext;
      将name字段长度修改为30
alter table biao2 modify name char(30);
将name字段改名为username
alter table table2 change name username char(30);
      删除photo列
alter table biao2 drop photo;
删除biao2
drop table if exists biao2;
4、表数据的操作
   4.1插入insert
    语法:insert  into 数据库名.表名 [(字段名1,字段名2,…)] values(值1,值2,…);
    注意:
l 插入值的数据类型、顺序必须和字段名列表中保持一致;
l 数据不能超出长度;
l 字符和日期数据建议放到单引号里;
l 字段列表不建议忽略,防止表结构发生变化引发错误;
l 中文乱码 
mysql默认码表是utf8,而默认客户端(黑屏)gbk
Ø mysql:服务器端和客户端;
Ø 解决(黑屏)输入信息乱码:
Ø 修改客户端编码方式mysql>set charater_set_client=gbk; 
Ø 解决输出信息乱码:
Ø mysql>set character_set_result=gbk;
4.2练习
biao2插入以下信息:
1)1,’张三’,‘2007-2-3’,6000
insert into biao2(id,username,birthday,aaa) values('1','张三','2007-2-3','6000');
2)2,‘李四’,‘男’,‘1998-3-5’,‘10000’
insert into biao2(id,username,sex,birthday,aaa) values('2','李四','男',1998-3-5','10000');
3)3,‘王五’,‘女’,‘1990-5-6’,‘7000’,‘软件开发’
insert into biao2(id,username,sex,birthday,aaa) values('3','王五','女','1990-5-6','7000');
5、更新update
5.1语法
   update 表名 set 列名1=值1,列名2=值2,… where 条件;
   注意:
      不带有where条件,表示更新所有行;
   5.2练习:
      将所有员工的工资增加1000;
   update biao2  set 工资 = 工资 + 1000;
      将张三的工资改为5000;
update biao2 set 工资=5000 where 姓名=‘张三’;
      给李四增加100;
    update biao2 set  工资 = 工资 + 100 where 姓名=‘李四’;
6、删除delete
   6.1语法
     delete  from 表名 where条件
     注意:
        不带有where条件时,表示删除所有记录
        delete只能删除行,如果针对某列执行则需要使用update
        trancate 表名
6.2练习
   删除所有男员工;
delete from biao2  where sex=‘男’;
   删除表中所有数据;
delete from biao2;
 7、查询select
7.1 语法
select 字段名1,字段名2,…  from 表名 where 条件 group by (结果)having
order by 条件 limit  偏移量,长度;
注意:字段别名,表别名在使用过程中的注意事项        
  7.2 distinct
   select distinct 字段名,字段名  from  表名;
   distinct:表示过滤掉重复记录;
   假如字段名不只一个,表示将多列合并后的重复记录过滤掉;
   7.2 as
   select 字段名 [as] 别名,字段名  [as] 别名 ,..  from 表名;
   注意:
      别名只影响查询结果的显示,不会修改表字段;
   练习:
      查询年龄大于10岁的员工信息,用“年龄“当别名;
select name,sex as 年龄 from biao2 where sex>10;
   7.3where
      select  字段列表  from  表名  where 条件
   where包含运算符
Ø <  >=  <=  =  <>  !=
Ø between   and
Ø in(值列表)
Ø like:  _     % 
Ø is null
Ø and
Ø or
Ø !
练习
 查询英语分数在80-90之间的
select * from biao2 where 英语>80 and 英语<90 ;
 查询语文为81,82,83,84的学生
select * from biao2 where 语文in(81,82,83,84);
 查询姓张的学生信息
select * from biao2 where 姓名like‘张%’ ;
 查询不姓张的学生的总成绩
select * from biao2 where 姓名 not like'张%';