MySQL数据表的相关操作

注释内容的符号:
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…]

发布了79 篇原创文章 · 获赞 1 · 访问量 1489

猜你喜欢

转载自blog.csdn.net/DAN_L/article/details/104607894