mysql+显示表ddl_MySQL_DDL_数据库和表的操作
#一、創(chuàng)建表
語法:
CREATE TABLE [IF NOT EXISTS] 表名(
字段名 字段類型 [字段約束],
字段名 字段類型 [字段約束],
字段名 字段類型 [字段約束]
);
-- 案例:沒有添加約束
CREATE TABLE IF NOT EXISTS table1(
table_id INT,
table_name VARCHAR(20),
birthday DATETIME
gender CHAR,
age INT,
);
-- 案例:添加約束
CREATE TABLE IF NOT EXISTS table1(
table_id INT PRIMARY KEY,-- 添加了主鍵約束
table_name VARCHAR(20) UNIQUE,-- 添加了唯一約束
birthday DATETIME
gender CHAR DEFAULT '男',-- 添加了默認約束
age INT CHECK(age BETWEEN 0 AND 100),-- 添加了檢查約束,MySQL不支持,顧不會生效
majorid INT,
CONSTRAINT 自定義名字 FOREIGN KEY (majorid) REFERENCES 主表名(主表的主鍵);-- 添加了外鍵約束
);
#一)數(shù)據(jù)類型:
1、整型
TINYINT SMALLINT INT BIGINT
2、浮點型
FLOAT(m,n)
DOUBLE(m,n)
DECIMAL(m,n)
m和n可選
3、字符型
CHAR(n):n可選
VARCHAR(n):n必選
TEXT
n表示最多字符個數(shù)
4、日期型
DATE TIME DATETIME TIMESTAMP
5、二進制型
BLOB 存儲圖片數(shù)據(jù)
#二)常見約束
說明:用于限制表中字段的數(shù)據(jù),從而進一步保證數(shù)據(jù)表的數(shù)據(jù)是一致、精確和可靠的
NOT NULL 非空:用于限制該字段為必填項
DEFAULT 默認:用于限制該字段沒有顯式插入值時,直接顯示的默認值
PRIMARY KEY 主鍵:用于限制該字段的值不能重復,設置為主鍵列的字段默認不能為空,一個表只能設置一個主鍵(可以是多個列的組合主鍵)
UNIQUE 唯一:用于限制該字段值不能重復
對比字段是否可以為空一個表可以有幾個
PRIMARY KEY 否1個
UNIQUE 是n個
CHECK 檢查:用于限制該字段值必須滿足指定條件
CHECK(age BETWEEN 1 AND 10)
FOREIGN KEY 外鍵:用于限制兩個表的關系,要求外鍵列的值必須來自于主表的關聯(lián)列(外鍵位于從表)
要求:
①主表的關聯(lián)列和從表的關聯(lián)列的類型必須一致、意思一樣;名稱可以不同
②主表的關聯(lián)列必須是主鍵
#
語法:ALTER TABLE 表名 ADD|MODIFY|CHANGE|DROP COLUMN 字段名 字段類型 【字段約束】;
#1.修改表名
ALTER TABLE stuinfo RENAME TO 表名;
#2.添加字段
ALTER TABLE 表名 ADD COLUMN 新字段 TIMESTAMP NOT NULL;
DESC students;
#3.修改字段名
ALTER TABLE 表名 CHANGE COLUMN 原字段名 新字段名 DATETIME NULL;
#4.修改字段類型
ALTER TABLE 表名 MODIFY COLUMN 字段名 TIMESTAMP ;
#5.刪除字段
ALTER TABLE 表名 DROP COLUMN 字段名;
DESC 表名;-- 查看表
#三、刪除表 √
DROP TABLE IF EXISTS 表名;
#四、復制表√
-- 僅僅復制表的結構
CREATE TABLE 新表名 LIKE 目標表名;
-- 復制表的結構+數(shù)據(jù)
CREATE TABLE 新表名 SELECT * FROM 目標表名.字符段;
-- -- 案例:復制employees表中的last_name,department_id,salary字段到新表 emp表,但不復制數(shù)據(jù)
CREATE TABLE emp
SELECT last_name,department_id,salary
FROM myemployees.`employees`
WHERE 1=2; -- 讓判斷結果不成立
總結
以上是生活随笔為你收集整理的mysql+显示表ddl_MySQL_DDL_数据库和表的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql为什么采用b树_为什么Mong
- 下一篇: sqlserver 删除字段_SQL S