MySql 回顾(一)数据定义(数据库定义、表定义、索引和视图定义)

本贴最后更新于 2490 天前,其中的信息可能已经沧海桑田

imagepng

第一部分 模式定义

1. 登录数据库

mysql -h localhost -u root -p

2. 创建数据库

2.1 标准语法

create {database||schema} [if not exists] 数据库名 [default] character set[=]字符集 [default] collate[=]字符集校验规则

2.2 简易写法

create database||schema [if not exist] 数据库名

3. 删除数据库

drop database ||schema [if not exist] 数据库名

4. 选择数据库

use 数据库名

5. 修改数据库

参照修改表时和修改数据库同时使用

alter database 数据库名

6. 查看数据库

show databases||schemas [like ‘’|where expression]

第二部分 表定义

1. 创建表

1.1 完整语法

create [temporary] 表名( 字段名 数据类型[完整性约束], 字段名2 数据类型[完整性约束], ......)[engine=引擎类型];

1.2 参数及注意事项

  • [temporary] 创建临时表。
  • [engine=引擎类型]可选引擎类型
  • 创建数据库前要进行选择数据库,否则会报错,选择数据库语法 use 数据库名

1.3 完整性约束

  • primary key 标识主键
  • foreign key 标识外键
  • not null key 标识不能为空
  • unique 标识该属性是唯一
  • auto_increase 标识该属性值是自动增长
  • default 为该属性设置默认值
1.3.1 主键
  1. 单一字段主键
属性名 数据类型 primary key
  1. 多字段主键

    • primary key(属性1,2,3,4....)

    • 结合创建表语句的例子(联合主键)

      create table example2( stu_id int, course_id int, grade float, primary key(stu_id,course_id) );
1.3.2 外键
  1. 区分父表和主表

A 表-> sno-> 外键
B 表-> id
若 sno-> 依赖->id, B 为父表,A 为子表
sno->A 表外键
外键在的表为子表,被引用的键所在的表是主表

  1. 语法格式
    • constraint 外键别名 foreign key(属性1,属性...) references 表名(属性2,属性...)
    • 结合创建语句的示例
      create table example3( id int(primary key), stu_id int, constraint c_fk foregin key(stu_id,course_id) references example2(stu_id,course_id); ); 联合外键参考example2中的两个属性
1.3.3 非空约束
  1. 基本语法
    属性名 数据类型 not null
  2. 结合创建语句示例
    create table example4(id int not null primary key, name varchar(20) not null, stu_id int,constraint c_fk foregin key(stu_id) references example(stu_id))
1.3.4 唯一约束
  1. 基本语法
    属性名 数据类型 unique
  2. 结合创建语句示例
    create table example5(id int primary key, stu_id int unique, name varchar not null);
1.3.5 属性自动增长
  1. 基本语法
    属性名 数据类型 auto_increment
  2. 结合创建语句示例
    create table example6( id int primary key auto_increment, stu_id int unique, name varchar(20) not null );
1.3.6 属性的默认值
  1. 基本语法
    属性名 数据类型 defaut 默认值
  2. 结合创建语句示例
    create table example7(id int primary key auto_increment, stu_id int unique, name varchar(20) not null, english varchar(20) default 'zero'), math float default 0, computer float default 0);
1.3.7 注释

2. 更新表(表的列)

2.1 表增加列

add[column]

alter table 表名 add[column] 属性1 数据类型 [完整性约束条件] [first || after 属性名2];

2.2 修改列名称或数据类型

alter table 表名 change 旧属性 新属性 新的数据类型

2.3 修改或删除列的默认值

2.4 修改列数据类型

modify[column]

alter table 表名 modify[column] 属性名 数据类型

2.5 删除列

drop[column]

alter table 表名 drop[column] 属性名

2.6 重命名

rename[to]

alter table 旧表名 rename to 新表名

2.7 修改列的排列位置

alter table 表名 modify 属性名 数据类型 first || after 属性名2;

2.8 更改表的存储引擎

alter table engine=存储引擎

2.9 删除表的外键约束

alter table 表名 drop foregin key 外键别名

3. 重命名表

rename table 表名 to 新表名,.......

可命名多个

4. 删除表

drop table[if exist] 表名1,...

5. 查看表

5.1 查看所有表名

show [full] tables [from|in] 数据库

5.2 查看表结构

show [full] columns from|in 表名 [from|in 数据库名] [like '' | where expr]

describe(或简写desc) 表名

5.3 查看表详细结构

show create table 表名 \g(以较优雅的方式显示)

第三部分 索引定义

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...