Mysql

来源:互联网 发布:list去除id相同的数据 编辑:程序博客网 时间:2024/06/05 02:16
 

                   1.       数据库概念

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

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

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

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

 

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

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

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

2.       操作库

创建库

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

参数:

      CHARACTER SET 码表名

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

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

 

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

 

显示库

      SHOW DATABASES;

显示数据库创建语句

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

修改库

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

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

删除库

      DROP DATABASE [IF EXISTS] 数据库名;

3.       操作表

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

      USE 数据库名

创建表

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

查看所有表

      SHOW TABLES;

查看表的创建语句

      SHOW CREATE TABLE 表名;

显示表结构

      DESC 表名;

修改表名

      RENAME TABLE 原表名 TO 新表名;

修改字符集

      ALTER TABLE 表名 CHARACTER SET 字符集名;

删除表

      DROP TABLE 表名;

4.       操作列

追加列

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

修改列类型

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

修改列

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

删除列

      ALTER TABLE 表名 DROP 列名;

5.       操作数据(增删改)

5.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;

5.2.   修改

语法

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

注意事项

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

5.3.   删除

语法

      DELETE FROM 表名 [where 条件语句]

注意事项

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

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

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

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