1.数据的存储方式(表属性的操作)
1.1 建表前思考的问题
a.表名
b.表里包含的数据类型(CHAR(定长字符),VARCHAR(不定长字符),NUMBER(数值),DATE(日期和时间),BLOB(大数据集),直义字符串,自定义类型)
c.构成主键的字段
d.每个字段的长度
e.哪些字段可以为NULL
1.2CREATE TABLE 语句
基本语法:
CREATE TABLE table_name( field1 data_type [ not null ], field2 data_type [ not null ], field3 data_type [ not null ], field4 data_type [ not null ]);1.3 ALTER TABLE 命令
(修改和删除表时,如果使用了RESTRICT选项,且表被视图或约束所引用,则返回错误。如果使用了CASCADE,且全部引用试图和约束都会被删除)
基本语法:
ALTER TABLE table_name[restrict|cascade][change_style];a.增加属性
ALTER TABLE table_nameADD column_name data_type [not null];b.删除属性
ALTER TABLE table_nameDROP COLUMN column_name;c.修改属性名
ALTER TABLE table_nameCHANGE column_name new_name data_type;d.修改属性的数据类型
ALTER TABLE table_nameMODIFY column_name data_type;e.从现有表新建另一个表
CREATE TABLE new_table_name ASSELECT [*[COLUMN1,COLUMN2]]FROM table_name[WHERE];1.4 删除表
DROP table_name [restrict|cascade];1.5查看表
DESC table_name;1.6 测试代码
//建表create table student_tbl(id char(9), sex varchar(5), birthday year, Chinese integer(3), Math integer(3));//增加English属性alter table student_tbladd English integer(3);//删除sex属性alter table student_tbldrop column sex;//修改属性名id 为IDalter table student_tblchange id ID char(9);//修改birthday属性数据格式为datealter table student_tblmodify birthday date;//复制student_tbl到新表class1create table class1_tbl asselect *from student_tbl;//查表desc student_tbl;
2.完整性约束
2.1 主键约束
主键:表中一个或多个用于实现记录唯一性的字段(属性)。
实现方式:
//在字段的定义阶段将其指定为主键column_name data_type [null] [primary key]//在字段定义之后再定义主键CREATE TABLE table_name( column1 data_type [ not null ], column2 data_type [ not null ], column3 data_type [ not null ], column4 data_type [ not null ], primary key ([column1,column2]));//给表中属性创建主键约束ALTER TABLE TABLE_NAMEADD PRIMARY KEY (COLUMN);ALTER TABLE TABLE_NAMEADD CONSTRAINT PRIMARY KEY (COLUMN);//撤销主键约束ALTER TABLE TABLE_NAMEDROP PRIMARY KEY;*在修改属性时不可以创建复合主键,即只可以在定义属性时创建主键。
2.2 唯一性约束
实现方式:
//在字段的定义阶段创建UNIQUE约束column_name data_type [null] [unique]//在字段定义之后再创建UNIQUE约束CREATE TABLE table_name( column1 data_type [ not null ], column2 data_type [ not null ], column3 data_type [ not null ], column4 data_type [ not null ], unique ([column1,column2]));//给表中属性创建UNQIUE约束ALTER TABLE TABLE_NAMEADD UNIQUE (COLUMN);ALTER TABLE TABLE_NAMEADD CONSTRAINT UNIQUE (COLUMN);//撤销UNIQUE约束ALTER TABLE TABLE_NAMEDROP INDEX COLUMN;2.3 外键约束
外键:子表里的一个字段,引用父表里的主键。
实现方式:
//在字段定义之后再创建外键CREATE TABLE table_name( column1 data_type [ not null ], column2 data_type [ not null ], column3 data_type [ not null ], column4 data_type [ not null ], FOREIGN KEY (COLUMN) REFERENCES OTHER_TBL(COLUMN));//给表中属性创建外键约束ALTER TABLE TABLE_NAMEADD FOREIGN KEY (COLUMN)REFERENCES OTHER_TBL(COLUMN);//撤销外键约束//1.首先查看建表语言,得到外键名show create table_name account;//2.然后删除ALTER TABLE OrdersDROP FOREIGN KEY fk_PerOrders2.4 NOT NULL 约束
直接在定义里
2.5 检查约束
用于检查输入到特定字段的数据的有效性。、
实现方式:
//在字段的定义阶段创建CHECK约束column_name data_type [null] [ c)]//在字段定义之后再创建CHECK约束CREATE TABLE table_name( column1 data_type [ not null ], column2 data_type [ not null ], column3 data_type [ not null ], column4 data_type [ not null ], CONSTRAINT chk_Person CHECK (column1>0 AND column1='***'));//给表中属性创建CHECK约束ALTER TABLE PersonsADD CHECK (Id_P>0);ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes');//撤销CHECK约束(没成功)ALTER TABLE PersonsDROP CHECK chk_Person;
3. MySQL查看数据库和表的信息
//查看所有数据库SHOW DATABASES;//选择数据库USE DB_NAME;//查看当前使用的数据库SELECT DATABASE();//查看数据库里有那些表SHOW TABLES;//查看表里有哪些属性DESC TABLE_NAME;//删除数据库DROP DATABASE DB_NAME;