注释内容的符号:
1、#注释内容
2、–注释内容
被标记为UNSIGNED的意思为数值不能为负
一、数据表的定义
(一)数据表是数据库最重要的组成部分之一,是其他对象的基础
(二)数据表是存储数据的数据结构
(三)数据表是包含了特定实体类型的数据
(四)数据表是由行(row)和列(column)构成的二维网络
(五)数据表一定先有表结构,再有数据
(六)数据表至少有一列,可以没有行或多行
(七)数据表名称要求唯一,而且不要包含特殊字符
二、创建数据表
(一)命令
CREATE TABLE [IF NOT EXISTS] tbl_name(字段名称 字段类型[完整性约束条件]…)ENGINE = 引擎名称CHARSET =‘编码方式’;
例如:
1、CREATE TABLE [IF NOT EXISTS] tbl_name(
字段名称 字段类型 [UNSIGNED | ZEROFILL] [NOT NULL] [DEFAULT] 默认值 [ [PRIMARY] KEY | UNIQUE [KEY] ] [AUTO_INCREMENT]
) ENGINE=INNODB CHARSET=UTF8 ANTO_INCREMENT=100
2、CREATE DATABASE IF NOT EXISTS abc DEFAULT CHARACTER SET ‘UTF8’
USE abc
CREATE TABLE IF NOT EXISTS user
(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM(‘male’,‘female’,‘secret’),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1) COMMENT ‘0-single,not 0-married’
) ENGINE=INNODB CHARSET=UTF8
(二)完整性约束条件
1、PRIMARY KEY主键(一个数据表中只能有一个主键)
2、AUTO_INCREMENT自增长
必须配合主键使用,而且只对整型使用
例如:
CREATE TABLE IF NOT EXISTS user5(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20));即后面哪怕只对username进行添加,id也会自动增加1,因为id这个字段定义了自增长
3、FOREIGN KEY外键
4、NOT NULL非空
5、UNIQUE KEY唯一(一个数据表中可以有多个唯一,被标记为唯一字段的值只能唯一不能重复,NULL除外,有多个NULL不算重复)
例如:
CREATE TABLE IF NOT EXISTS user(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
card CHAR(18) UNIQUE);
6、DEFAULT默认值
非空和默认值一般配合来使用,默认值的意思为如果没有输入相应的数据,则默认为默认的值。
例如:
CREATE TABLE IF NOT EXISTS use7(
id INT UNSIGENED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18)
三、查询数据库中的数据表以及表结构
(一)查看数据库下数据表
SHOW TABLES
(二)查看指定表的表结构
1、DESC tbl_name
2、DESCRIBE tbl_name
3、SHOW COLUMNS FROM tbl_name
四、修改表结构
(一)修改表名
1、ALTER TABLE tbl_name RENAME [TO|AS] new_name
2、RENAME TABLE tbl_name TO new_name
(二)添加字段
ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST | AFTER 字段名称]
例如:
ALTER TABLE user
ADD test4 INT NOT NULL DEFAULT 123 AFTER password,
ADD test5 FLOAT(6,2) FIRST
ADD test6 SET(‘A’,‘B’,‘C’)
(三)删除字段
ALTER TABLE tbl_name DROP 字段名称
例如:
ALTER TABLE user
DROP test4
DROP test5
DROP test6
(四)修改字段
ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST | AFTER 字段名称 ]
(五)修改字段名称
ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 [完整性约束条件] [FIRST | AFTER 字段名称]
(六)添加默认值
ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值
(七)删除默认值
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
(八)添加主键
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol] PRIMARY KEY index_type
例如:
ALTER TABLE test ADD PRIMARY KEY(id)
(九)删除主键
ALTER TABLE tbl_name DROP PRIMARY KEY
注意:当主键和自增长同时存在的时候要先将自增长删除才能删除主键
(十)添加唯一
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol] UNIQUE [INDEX | KEY] [索引名称] (字段名称,…)
例如:
1、ALTER TABLE user ADD UNIQUE(username)
2、ALTER TABLE user ADD CONSTRAINT symbol UNIQUE KEY uni_card(card)
3、ALTER TABLE user ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test,test1)
(十一)删除唯一
ALTER TABLE tbl_name DROP {INDEX | KEY} index_name
例如:
1、ALTER TABLE user DROP INDEX username
2、ALTER TABLE user DROP KEY uni_card
3、ALTER TABLE user DROP KEY mulUni_test_test1(test,test1)
(十二)修改表的存储引擎
ALTER TABLE tbl_name ENGINE=存储引擎名称
(十二)设置自增长的值
ALTER TABLE tbl_name AUTO_INCREMENT=值
五、删除数据表
DROP TABLE [IF EXISTS] tbl_name[,tbl_name…]
MySQL数据表的相关操作
猜你喜欢
转载自blog.csdn.net/DAN_L/article/details/104607894
今日推荐
周排行