2023-11-12第10章_创建和管理表
-- ----------------------十. 创建数据库
-- 修改表。alter 改变 column 列 truncate 截断
-- !!开始
-- SHOW DATABASES -- 显示所有数据库
-- CREATE DATABASE IF NOT EXISTS MyFamily CHARACTER SET 'utf8mb3' -- 标准
-- SHOW DATABASES -- 显示所有数据库 检查创建了没有
-- SHOW CREATE DATABASE MyFamily -- 查看数据库的创建信息
-- USE MyFamily; -- 切换数据库
-- SELECT DATABASE() FROM DUAL; -- 查看当前使用中的数据库
-- SHOW TABLES FROM MyFamily; -- 查看指定库下所有的表
-- 创建表 !! NOT
-- CREATE TABLE IF NOT EXISTS RelativePerson(
-- int类型
-- relative_age INT,
-- 最多保存20个中英文字符
--relative_name VARCHAR(20),
-- 总位数不超过15位
--relative_money DOUBLE,
-- 日期类型
--relative_birthday DATE
-- 主键 ????
--PRIMARY KEY (deptno)
-- AUTO_INCREMENT 自增 ???
--relative_num INT(0) AUTO_INCREMENT,
-- )
-- SHOW TABLES -- 显示 当前使用的数据库的所有表
-- DESC RelativePerson; -- 查看表信息 表字符集没设置默认为 数据库字符集
-- SHOW CREATE TABLE RelativePerson; -- 查看表的创建信息 ??? 有问题 语句没问题 终端可以使用
-- DESC RelativePerson; -- 查看表信息 表字符集没设置默认为 数据库字符集
-- DROP TABLE IF EXISTS RelativePerson ;
-- DROP DATABASE IF EXISTS MyFamily;
-- -- 第二种创建方式. 同时导入数据. 且 SELECT 可以取别名 别名可以作为属性/列名直接查找了 等功能
-- CREATE TABLE RelativePersonTwo
-- AS SELECT employee_id,last_name,salary*3 money FROM atguigudb.employees;
-- SHOW TABLES -- 显示 当前使用的数据库的所有表
-- DESC RelativePersonTwo; -- 查看表信息 表字符集没设置默认为 数据库字符集
-- !!到此
-- #1. 复制employees 表 employees_copy 包括表数据
-- CREATE TABLE employees_copy
-- AS SELECT * FROM employees
-- #2 复制employees 表 employees_empty 不包含数据
-- CREATE TABLE IF NOT EXISTS employees_empty
-- AS SELECT * FROM employees WHERE 1=2
--
-- ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】; -- 添加字段
-- ALTER TABLE 表名 MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名 2】; -- 修改字段
-- ALTER TABLE dept02 MODIFY test_change DECIMAL(8,2) DEFAULT 100 AFTER manager_id;
-- ALTER TABLE 表名 CHANGE
【column】 列名 新列名 新数据类型; -- 重命名列
-- ALTER TABLE 表名 DROP 【COLUMN】-- 字段名 删除列
-- TRUNCATE TABLE detail_dept; -- 基本不用
-- TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚
-- 【 强制 】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出 现数字。
-- 数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
-- 【 强制 】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。
-- 【 强制 】表必备三字段:id, gmt_create, gmt_modified。
-- 【 推荐 】表的命名最好是遵循 “业务名称_表的作用”。
-- 【 推荐 】库名与应用名称尽量一致。
-- MySQL 5.7
-- TABLE book1,book2; book1存在 book2不存在 执行报错 book1 会被删除
-- MySQL 8.0
-- TABLE book1,book2; book1存在 book2不存在 执行报错 book1 不会被删除