数据库
1 概述
- 数据库是按照数据结构来组织、存储和管理数据的仓库
分类
- 关系型数据库
不仅存储数据本身,还存储数据之间的关系,比如说用户信息和订单信息。关系型数据库模型把复杂的数据结构归结为简单的二维表(关系表) - 非关系型数据库
非关系型数据库也被称为NoSQL数据库。NoSQL的产生并不是要否定关系型数据库,而是作为关系型数据库的一个有效补充
术语
- 数据库系统(DBS):是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成
- 数据库管理系统(DBMS):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库(如:MySQL)
- 数据库(DB):数据库是按照数据结构来组织、存储和管理数据的仓库
2 SQL
SQL是结构化查询语言(Structured Query Language)的缩写。 它是一种专门用来与关系型数据库沟通的语言
它主要由如下优点
- SQL 是一种通用语言,几乎所有的关系型数据库都支持 SQL
- SQL 简单易学。它的语句是由一些有很强描述性的关键词组织而成, 而且这些关键词并不多
- SQL 虽然简单,但它是一种强有力的语言,灵活地使用 SQL, 可以进行非常复杂的数据库操作
- 半衰期很长 SQL92, SQL99
- 虽然 SQL 不区分大小写,但是表名、列名和值可能区分!(这依赖具体的 DBMS 及其配置)
组成
- DDL: 数据定义语言
- DML:数据操作语言 (增,删,改)
- DQL: 数据查询语言 (查)
- DCL: 数据控制语言
- TPL: 事务处理语言
DDl(定义数据语言)
查看字符集&校对集
##################### Character Set ####################
show char set;查看默认的字符集
show collation;查看校对集
# 查看数据库的默认字符集
show variables like '%character%';
select @@character_set_database;
数据库
########################## 数据库 #########################
#1 查询数据库
show databases;
查看创建语句
show create database mydb1;
#2 创建数据库
#语法:create database [if not exist] db_name [specification];
#练习
# 创建一个名称为mydb1的数据库。
create database mydb1;
# 创建一个使用gbk字符集的mydb2数据库。
# create database mydb1 character set gbk;
# create database if not exists mydb1 character set gbk;
create database if not exists mydb2 character set gbk;
# 创建一个使用gbk字符集,并带校对规则(校对集)的mydb3数据库。
#
create database if not exists mydb3 character set gbk collate gbk_bin;
#3 删除数据库
#语法:DROP DATABASE [IF EXISTS] db_name
drop database mydb1;
drop database if exists mydb1;
#4 修改数据库,无法修改数据库名称,只能修改字符集和架构规则
#语法:ALTER DATABASE db_name [specification](条件)
# mydb2的字符集修改为utf8
alter database mydb1 character set utf8;
表
############################# 表 ################################
#1 创建表
#语法:
-- CREATE TABLE table_name
-- (
-- field1 datatype,
-- field2 datatype,
-- field3 datatype
-- )[CHARACTER SET 字符集 COLLATE 校对规则]
#注意事项:创建表之前得使用数据库
use mydb1;
create table `user`(
id int,
`name` varchar(255),
`password` varchar(255),
birthday date
);
#2. 查看表
show tables;查看当前数据库的表
show tables in world;查看指定数据库的表
# 查看表的创建语法
show create table user;
# 查看表的结构
describe user;
desc user;
#3 修改表
# 增加一列
# 在user表中增加 gender
alter table user add column gender varchar(255); #在最后加
# 在user表的password后面添加address列
alter table user add column address varchar(255) after password;
# 在user表添加a列,并且把a放在第一列
alter table user add column a int first;
# 追加多列
alter table user add column b int, add column c int;
# 修改列的类型, 限制条件
# 把c的类型改成varchar
alter table user modify column c varchar(255);
# 修改列的名字
# 把gender改成sex
alter table user change gender sex varchar(255);
# 删除列
# 删除a,b,c列
alter table user drop column a, drop column b, drop column c;
# 修改表的名称
# 把user改成t_user
rename table user to t_user;
# 迁移表
rename table t_user to mydb2.user;#把t_user迁移到mydb2并改名user
# 修改字符集
alter table user character set gbk;
#4 删除表
drop table user;