2011.9.8

来源:互联网 发布:freecodecamp java 编辑:程序博客网 时间:2024/04/29 03:28

 

课程笔记

今天是对mysql的复习,主要内容是数据库的简单介绍及一些常用的查询语句。

一.          数据库概念

1.数据库服务器、数据库和表之间的关系

所谓安装数据库服务器, 只是在机器上安装了一个数据库管理程序, 这个管理程序可以管理多个数据库.

2.一般开发人员在设计项目的时候会针对每一个应用创建一个数据库.

3.为了保存每一类实体, 在一个数据库中创建多个表.

二.数据在数据库中的存储方式

id=1                     id=2

name=Tom          name=Jerry

age=18                 age=20

 

列(column)          列(column)      列(column)

id

name

     age

     1

    Tom

     18

     2

    Jerry

     20

 

 

 

 

行(row)

行(row)

 

 

1.每一行(一条记录)对应Java中的一个对象

2.每一列对应对象的一个属性

三.操作库

1.创建库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [参数[ 参数] [ 参数]...];

参数:

CHARACTER SET 码表名

COLLATE 校对规则名   参见帮助文档第10章

命令:show character set;可以显示MySQL支持的字符集和校对规则

 

Show collation like ‘latin1%’;   显示latin1字符集可以采用的校对规则

 

2.显示库

      SHOW DATABASES;

3.显示数据库创建语句

      SHOW CREATE DATABASE 数据库名; 查看数据库所采用的字符集

4.修改库

      ALTER DATABASE 数据库名[ 参数[ 参数][ 参数]...];

      注意: 不能改数据库的名字

5.删除库

      DROP DATABASE [IF EXISTS] 数据库名;

五.操作表

操作表之前使用需要先确定使用哪个数据库

      USE 数据库名

1.创建表

CREATE TABLE 表名(列名 类型[,列名 类型][,列名 类型]...);

2.查看所有表

      SHOW TABLES;

3.查看表的创建语句

      SHOW CREATE TABLE 表名;

4.显示表结构

      DESC 表名;

5.修改表名

      RENAME TABLE 原表名 TO 新表名;

6.修改字符集

      ALTER TABLE 表名 CHARACTER SET 字符集名;

7.删除表

      DROP TABLE 表名;

六.操作列

1.追加列

   ALTER TABLE 表名 ADD 列名 类型[,列名 类型][,列名 类型]...;

2.修改列类型

      ALTER TABLE 表名 MODIFY 列名 类型[,列名 类型][,列名 类型]...;

3.修改列

      ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 类型;

4.删除列

      ALTER TABLE 表名 DROP 列名;

七.操作数据(增删改)

1.插入

语法:

      INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);

注意事项:

      插入值类型必须与对应列的数据类型一致

      数据不能超出长度

      插入值得为之必须与列名顺序一致

      字符和日期数据要放在单引号中

      插入空值使用null

      如果不指定插入哪一列, 就是插入所有列

中文数据

      由于默认码表是utf8, 而cmd.exe的码表是gbk, 在插入中文数据的时候会报错, 所以我们需要修改客户端码表

      先查看系统变量: SHOW VARIABLES LIKE 'character%';

      修改客户端码表: SET character_set_client=gbk;

      这样就解决了中文插入的问题, 但在查询数据的时候仍然显示为乱码, 这是因为mysql向cmd传输数据的时候使用的是utf8

      修改输出数据的码表: SET character_set_results=gbk;

练习

      向user表中插入3条包含中文的数据

insert into user(id,username,gender,birthday,position,salary,resume)

values(1,'张三','男','1990-9-9','程序员',6000,'介绍');

 

insert into user(id,username,gender,birthday,position,salary,resume)

values(2,'李四','男','1990-9-9','程序员',6000,'介绍');

 

insert into user(id,username,gender,birthday,position,salary,resume)

values(3,'王五','男','1990-9-9','测试',6000,'介绍');

 

insert into user(id,username,gender,birthday,position,salary,resume)

values(4,'赵六','男','1990-9-9','美工 ',6000,'介绍');

2.修改

语法

      UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 条件语句];

注意事项

      WHERE子句选择满足条件的行进行更新, 如果不写, 则更新所有行

3.删除

语法

      DELETE FROM 表名 [where 条件语句]

注意事项

      如果不加where子句, 将删除表中所有记录

      delete只能用作删除行, 不能删除某一列的值, 需要用update

      在delete和update的时候需要注意表与表之间的关联关系

      删除表中所有数据可以使用: TRANCATE 表名, 这种方式会删除旧表重新创建, 在数据较多的时候使用