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

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

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 是最流行的关系型数据库管理系统之一。

    692 引用 • 535 回帖

相关帖子

欢迎来到这里!

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

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