介绍
数据库分类
- 关系型数据库:Oracle、SQL-Server、MySQL,、Sybase、DB2
- 非关系型数据库:No SQL、Redis、MongoDB、HBase
数据库设计三大范式
- 列不可分:每一个字段要求不能再分割了
- 实体(行)的属性完全依赖于主关键字
- 属性不依赖于其它非主属性
SQL的级别
- DML:数据库操作管理语言
- DDL:数据定义语言,对保存数据的格式进行定义
- DCL:数据库控制语言,针对数据库服务进行管理操作
- DQL:数据库查询语言
使用命令登录MySQL
//打开cmd或命令提示符
//输入:
mysql -uroot -p
//输入密码或直接按Enter
数据库操作
show databases; // 查看所有数据库
use databasename; // 切换到某个库
select database(); // 查看当前所在数据库
create database databasename; // 创建数据库
Drop database dbname; // 删除数据库
数据库表
show tables; //切换某个库之后,查看所有表
desc 表名; // 查看表结构
create table tablename; // 创建表
drop table tablename; // 删除表
delete from tablename; // 删除表中所有数据
用户管理
create user user1; // 创建用户user1
create user 'user2'@'localhost' identified by '123456'; // 创建用户user2并设置密码
mysql -uuser2 -p // 使用该用户登录
//查看所有用户
use mysql; // 切换到mysql表
select user,host from user;
show grants; // 查看当前用户权限
drop user 用户名[@‘主机’] // 删除用户
flush privileges; // 刷新权限
增加
insert into tablename (字段1,字段2) value ('值1', '值2'), ('值3', '值4'); // 插入行
insert into tablename set 字段名1='值1', 字段名2='值2'; // 插入行
insert into tablename1 select * from tablename2; // 将表2的数据插入表1
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER]; // 插入列
ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默认值; // 指定列设置默认值
删除
delete from tablename where 字段=值; // 删除行
Alter table table_name drop column_name; // 删除列
修改
alter table 表名 modify column 字段名 类型; // 修改字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; // 修改字段名称
update tablename set 字段1=修改的值1, 字段2=修改的值2 where 字段=值; // 更新行