很久没用数据库了,工作以后需要用到MYSQL,写一些基础知识备忘,方便复习;
ODBC:开放式数据库互连(Open DataBase Connectivity),微软公司推出一种实现应用程序和关系数据库直接通信的接口标准;
MySQL通过MySQL Connector/ODBC (MyODBC驱动程序系列)为ODBC提供支持。
一、创建数据库
1、创建数据库
create {database|schema} [if not exists] db_name[create_specification[,create_specification]...];
其中create_specification:
[default]character set charset_name|[default]collate collation_name
character set:指定数据库字符集(Charset),charset_name为字符集名字
collate:指定字符集的校对规则,collation_name为校对规则名称
2、使用数据库
use db_name;
3、修改数据库
alter {database|schema} [db_name] alter_specification[,alter_specification]...
其中alter_specification:
[default]character set charset_name|[default] collate collation_name
4、删除数据库
drop database [if exists] db_name;//数据库中所有表也将删除
二、创建表
1、创建表
语法格式:
create[temporary]table[if not exists]tbl_name[([column_definition],...|[index_definition])][table_option][select_statement];
说明:
temporary:表示用create命令新建的表为临时表,一旦断开与数据库的连接,MySQL会删除它们
column_definiton:列定义,包括列名、数据类型,可能还有一个空值声明和一个完整性约束
index_definiton:表索引项定义,主要定义表的索引、主键、外键等
table_option:用于描述表的选项
select_statement:可以在末尾加一个select语句,在一个表的基础上创建表
列定义column_definition格式如下:
col_name type [not null|null][default default_value][auto_increment][unique [key]|[primary] key][comment 'string'][reference_definition]
col_name:列名
type:列的数据类型
auto_increment:自增属性。当插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为VALUE+1,在这里VALUE是此前表中该列的最大值。每个表只能有一个AUTO_INCREMENT列,而且它必须被索引。
default defaut_value:为列指定默认值,默认值必须为一个常数。
comment 'string':对于列的描述,string是描述的内容
reference_definition:制定参照的表和列.
type的具体定义:tinyint[(length)] [unsigned] [zerofill]
|smallint[(length)] [unsigned] [zerofill]
|mediumint[(length)] [unsigned] [zerofill]
|int[(length)] [unsigned] [zerofill]
|interger[(length)] [unsigned] [zerofill]
|bigint[(length)] [unsigned] [zerofill]
|real[(length,decimals)] [unsigned] [zerofill]
|double[(length,decimals)] [unsigned] [zerofill]
|float[(length,decimals)] [unsigned] [zerofill]
|decimal[(length,decimals)] [unsigned] [zerofill]
|numeric[(length,decimals)] [unsigned] [zerofill]
|bit[M]
|data
|time
|timestamp
|datetime
|char(length) [binary|ascii|unicode]
|varchar(length) [binary]
|tinyblog
|blog
|mediumblog
|longtest[binary]
|enum(value1,value2,value3,...)
|set(value1,value2,value3,...)
注:unsigned:不允许负值。 zerofill:当插入值小于字段设定的长度时,剩余部分用0补齐。