MySQL数据库学习大纲
MySQL数据库学习大纲
mysql学习大纲
一:学习前的准备
1:确认你已安装wamp
二基础知识:
表的三范式
1NF 一条记录要具有原子性,不可再分割.(关系型数据库自动满足)
2NF 一条记录要具有唯一性.(加主键则可满足)
3NF 数据字段不能冗余
常见的sql语句有几种?
DML(数据库操作语言) 如:insert update delete
DTL(数据事务语言) 如: commit rollback
DDL(数据定义语言) 如:create alter drop
DCL(数据库控制语言) 如:grand revoke
DQL(数据库查询语言)select语句
DCL语句主要是DBA(数据库管理员)用来管理系统中的对象权限时使用。关键字grant(授出)、revoke(收回)用户*的部分权限。
1.数据库的连接
mysql -u root -p -h
-u 用户名
-p 密码
-h host主机
2:库级知识
2.1 显示数据库: show databases;
2.2 选择数据库: use dbname;
2.3 创建数据库: create database dbname charset utf8;
2.3 删除数据库: drop database dbname;
3: 表级操作:
3.1 显示库下面的表
show tables;
3.2 查看表的结构:
desc tableName;
3.3 查看表的创建过程:
show create table tableName;
3.4 创建表:
create table tbName (
列名称1 列类型 [列参数] [not null default ],
....列2...
....
列名称N 列类型 [列参数] [not null default ]
)engine myisam/innodb charset utf8/gbk
3.4的例子:
create table user (
id int auto_increment,
name varchar(20) not null default '',
age tinyint unsigned not null default 0,
index id (id)
)engine=innodb charset=utf8;
注:innodb是表引擎,也可以是myisam或其他,但最常用的是myisam和innodb,
charset 常用的有utf8,gbk;
3.5 修改表
3.5.1修改表之增加列:
alter table tbName
add 列名称1 列类型 [列参数] [not null default ] #(add之后的旧列名之后的语法和创建表时的列声明一样)
3.5.2修改表之修改列
alter table tbName
change 旧列名 新列名 列类型 [列参数] [not null default ]
(注:旧列名之后的语法和创建表时的列声明一样)
3.5.3修改表之减少列:
alter table tbName
drop 列名称;
3.5.4修改表之增加主键
alter table tbName add primary key(主键所在列名);
例:alter table goods add primary key(id)
该例是把主键建立在id列上
3.5.5修改表之删除主键
alter table tbName drop primary key;
3.5.6修改表之增加索引
alter table tbName add [unique|fulltext] index 索引名(列名);
3.5.7修改表之删除索引
alter table tbName drop index 索引名;
3.5.8清空表的数据
truncate tableName;
4:列类型讲解
列类型:
整型:tinyint (0~255/-128~127) smallint (0~65535/-32768~32767) mediumint int bigint (参考手册11.2)
参数解释:
unsigned 无符号(不能为负) zerofill 0填充 M 填充后的宽度
举例:tinyint unsigned;
tinyint(6) zerofill;
数值型