加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

第八章 创建和管理表

发布时间:2022-11-30 11:23:32 所属栏目:MySql教程 来源:
导读:  1. 基础知识 1.1 一条数据存储的过程

  存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。那么,怎样才能把用户各种经营相关的、
  1. 基础知识 1.1 一条数据存储的过程
 
  存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。
 
  在这里插入图片描述
 
  我们要先创建一个数据库,而不是直接创建数据表呢?
 
  因为从系统架构的层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、 数据表 、数据表的行与列 。
 
  MySQL 数据库服务器之前已经安装。所以,我们就从创建数据库开始。
 
  1.2 标识符命名规则 1.3 MySQL中的数据类型
 
  在这里插入图片描述
 
  在这里插入图片描述
 
  2. 创建和管理数据库
 
  CREATE DATABASE 数据库名;
  CREATE DATABASE 数据库名 CHARACTER  SET 字符集;
  CREATE DATABASE  IF NOT EXISTS 数据库名;
  注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。
 
  2.2 使用数据库
 
  查看当前所有的数据库
 
  SHOW DATABASES;#有一个S,代表多个数据库
  SELECT DATABASE();#使用的一个 mysql 中的全局函数
  查看指定库下所有的表
 
  SHOW TABLES FROM 数据库名;
  查看数据库的创建信息
 
  SHOW CREATE DATABASE 数据库名;
  或者
  SHOW CTREATE DATABASE 数据库名\G
  使用/切换数据库
 
  注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上“数
 
  据库名.”。
 
  2.3 修改数据库
 
  ALTER DATABASE  database_name CHARACTER SET 字符集 ;
  DROP DATABASE 数据库名;
  DROP DATABASE IF NOT EXISTS   数据库名;
  3. 创建表 3.1 创建方式1
 
  CREATE TABLE [IF NOT EXISTS] 表名(
  字段1,数据类型 [约束条件], [默认值],
  字段2,数据类型 [约束条件], [默认值],
  字段3,数据类型 [约束条件], [默认值]
  ........
  [约束条件]
  )
  加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。
 
  CREATE TABLE emp(
  emp_id int,
  emp_name VARCHAR(20),
  salary DOUBLE,
  birthday DATE
  );-
  DESC emp;
  CREATE TABLE dept(
         -- int类型, 自增
        deptno int(2) AUTO_INCREMENE,
        -- 主键
        PRIMARY KEY (deptno)
  );
  3.2 创建方式2
 
  CREATE TABLE emp1 AS SELECT * FROM employees;
  CREATE TABLE emp2 AS SELECT * FROM employees WHERE 1=2; -- 创建的emp2是空表
  CREATE TABLE dept80
  AS
  SELECT employee_id, last_name, salary*12 ANNSAL, hire_date
  FROM employees
  WHERE department_id = 80;
  DESCRIBE dept80;
  3.3 查看数据表结构
 
  在MySQL中创建好数据表之后,可以查看数据表的结构。MySQL支持使用 DESCRIBE/DESC 语句查看数据表结构MySQL 创建数据表,也支持使用 SHOW CREATE TABLE 语句查看数据表结构。
 
  语法格式如下:
 
  SHOW CREATE TABLE 表名\G
  使用SHOW CREATE TABLE语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。
 
  4. 修改表
 
  修改表指的是修改数据库中已经存在的数据表的结构。
 
  4.1 追加一个列
 
  语法格式如下:
 
  ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型  【FIRST|AFTER 字段名】;
  ALTER TABLE dept80
  ADD job_id VARCHAR(15);
  4.2 修改一个列
 
  ALTER TABLE 表名 MODIFY [COLUMN] 字段名 字段类型  【FIRST|AFTER 字段名】;
  ALTER TABLE dept80
  MODIFY last_name VARCHAR(80);
  ALTER TABLE dept80
  MODIFY salary double(9,2) default 1000;
  4.3 重命名一个列
 
  ALTER TABLE dept80
  CHANGE depatment_name dept_name VARCHAR(15);
  4.4 删除一个列
 
  ALTER TABLE 表名 DROP 【COLUMN】字段名
  ALTER TABLE dept80
  DROP COLUMN job_id;
  5.修改表名
 
  RENAME TABLE emp
  TO myemp;
  ALTER table dept
  RENAME [TO] detail_dept; -- [TO]可以省略
  6. 删除表
 
  DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];
  IF EXISTS 的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作。
 
  举例:
 
  DROP TABLE dept80;
  7. 清空表
 
  TRUNCATE TABALE detail_dept;
  对比:
 
  DELETE FROM emp2;
  #TRUNCATE TABLE emp2;
  SELECT * FROM emp2;
  ROLLBACK;
  SELECT * FROM emp2;
  阿里开发规范:
 
  【参考】TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少,但 TRUNCATE 无事务且不触发 TRIGGER,有可能造成事故,故不建议在开发代码中使用此语句。
 
  说明:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同。
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!