MySQL系列文章
MySQL日志——查询、慢查询、错误、二进制MySQL用户与权限——创建、赋予、撤销、删除MySQL密码修改MySQL索引
目录
- MySQL系列文章
- 前言
- 使用数据库
- 创建与删除数据库
- 创建数据表
前言
作为一个在计算机领域的学者,就必须得了解数据库,而了解数据库就从关系型数据库开始,而说到关系型数据库,MySQL在这些年中,是开源关系型数据库的不二选择。
使用数据库
创建与删除数据库
创建数据库:CREATE DATABASE database_name; #存在就报错
或CREATE DATABASE IF NOT EXISTS database_name; #不存在就创建,存在不会报错
。
注:SHOW DATABASES;
查看当前存在的数据库。
例:
切换数据库:USE database_name;
命令行所在数据库:SHOW DATABASE();
查看数据库创建信息:SHOW CREATE DATABASE database_name;
或SHOW CREATE DATABASE database_name \G
例:
修改数据库名称:
重命名表修改:RENAME TABLE test_old.table TO test_new.table;
注:将test_old数据库的表重命名到test_new数据库,删除test_old数据库。
例:
导入/导出数据修改:mysqldump -uroot -p test_old > test_old.sql #导出
source /root/test_old.sql; #导入
创建数据表修改: CREATE TABLE IF NOT EXISTS test_new.t1 LIKE test_old.t1;
注:test_new数据库存在。
删除数据库:DROP DATABASE [IF EXISTS] database_name;
创建数据表
语法格式:
CREATE TABLE [IF NOT EXISTS] 表名(
字段1, 数据类型 [约束条件] [默认值],
字段2, 数据类型 [约束条件] [默认值],
字段3, 数据类型 [约束条件] [默认值],
……
[表约束条件]
);
例:
约束——主键:PRIMARY KEY [默认值]
定义列的同时指定主键
或PRIMARY KEY (字段名)
定义完数据表中的所有列之后指定主键
或PRIMARY KEY (字段1, 字段2, 字段3…., 字段n)
多列联合主键。
注:主键包含表的一列或多列,能够唯一标识表的一行记录。
约束——外键:CONSTRAINT 外键名 FOREIGN KEY 字段1 [, 字段2, 字段3, …] REFERENCES 主表名 主键列1 [, 主键列2, 主键列3, …]
注:同一表外键名称唯一,可存在多个外键,可多字段,可多主键字段。
约束——非空:字段名称 数据类型NOT NULL
定义列的同时指定非空。
约束——默认值:字段名称 数据类型DEFAULT 默认值
定义列的同时指定默认值。
约束——主键默认递增:字段名称 数据类型AUTO_INCREMENT
定义列的同时指定主键默认递增,需为主键。
查看数据表结构:DESCRIBE 表名称
或DESC 表名称
或SHOW CREATE TABLE 表名 \G
修改数据表名称:ALTER TABLE 原表名 RENAME [TO] 新表名;
。
添加字段:ALTER TABLE 表名 ADD COLUMN 新字段名 数据类型 [NOT NULL DEFAULT 默认值];
注:指定位置,添加字段语句后加FIRST
、AFTER 原有字段名
。
修改字段名称:ALTER TABLE 表名 CHANGE 原有字段名 新字段名 新数据类型
。
修改字段类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型 [DEFAULT 默认值]
。
修改字段的位置:ALTER TABLE 表名 MIDIFY 字段名 数据类型 FIRST
。
删除字段:ALTER TABLE 表名 DROP 字段名
。
删除外键约束:ALTER TABLE 表名 DROP FOREIGN KEY 外键名
。
删除表:DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
注:删除有外键约束的主表,需先解除外键或先删除从表,在删主表。
注:Window表名不分大小写,Liunx需配置/etc/my.cnf
,添加lower_case_table_names=1
。