增删改总结
1.创建表
CREATE TABLE IF NOT EXISTS TABLLE_NAME(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE
PRIMARY KEY ( tutorial_id )
)
2.查看数据表
SHOW TABLES FROM `smbms`
3.查看表结构
SHOW COLUMNS FROM `smbms_address`
4.插入一条记录,如果省略列名和字段名,所有的值都赋值
INSERT INTO (col_name,....)VALUES(val,....);
5.修改数据表(添加单字段)
ALTER TABLE tab_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]
6.修改表示例(添加单字段)
ALTER TABLE smbms_bill ADD userName INT(2) DEFAULT 22 NOT NULL AFTER productName;
7.修改表添加多列字段
ALTER TABLE tab_name ADD [COLUMN] (col_name column_definition,.....)
ALTER TABLE smbms_bill ADD(person VARCHAR (10) DEFAULT 24,address VARCHAR (25));
8.删除表字段
ALTER TABLE tab_name DROP [COLUMN] col_name
ALTER TABLE smbms_bill DROP age;
9.同时删除多列
ALTER TABLE smbms_bill DROP address,DROP userName;
10.删除一列的同时在新增一列
ALTER TABLE smbms_bill DROP userName,ADD age INT(2) NOT NULL DEFAULT 22;
11.添加主键约束
ALTER TABLE tab_name ADD [CONSTRAINT[symbol]] PRIMARY KEY [index_type](index_col_name);
ALTER TABLE t_user ADD CONSTRAINT PK_t_user_uid PRIMARY KEY(uid);
12.添加唯一约束
ALTER TABLE tab_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type](index_col_name);
ALTER TABLE t_user ADD UNIQUE (user_name);#user_name 要加括号
13.添加外键约束
ALTER TABLE tab_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name](index_col_name,...) reference_definition
#外键添加要求(相同的数据类型与长度,varchar除外,引擎是innoDB,字段上要有索引)
ALTER TABLE t_user2 ADD FOREIGN KEY (pid) REFERENCES t_user (uid);
14.添加/删除默认约束
ALTER TABLE tal_name ALTER [COLUMN] col_name {SET DEFAULT literal|DROP DEFAULT}
15.添加默认约束
ALTER TABLE t_user ALTER user_name SET DEFAULT 'zhangsan';
16.删除默认约束
ALTER TABLE t_user ALTER user_name DROP DEFAULT;
#删除主键约束(因为主键约束只有一个所以不用写字段名)
ALTER TABLE tal_name DROP PRIMARY KEY
ALTER TABLE t_user2 DROP PRIMARY KEY;
17.删除唯一约束
ALTER TABLE tab_name DROP {INDEX|KEY}index_name
#首先应查看数据表的唯一约束名字
SHOW INDEX FROM t_user
#删除唯一约束
ALTER TABLE t_user DROP INDEX user_name;
18.删除外键约束
ALTER TABLE tal_name DROP FOREIGN KEY fk_symbol
#查看外键约束获取外键的名字,这里是(`t_user2_ibfk_1`)
SHOW CREATE TABLE t_user2
#删除外键
ALTER TABLE t_user2 DROP FOREIGN KEY `t_user2_ibfk_1`;
19.修改列定义(修改字段类型|名称|位置)
ALTER TABLE tal_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER col_name]
#将user_name移到第一位(如果user_name有默认值要写默认值,如果不为空,要写not null)
ALTER TABLE t_user MODIFY user_name VARCHAR(10) FIRST;
#将uid修改成TINYINT类型(在修改型的时候如果从大类型修改到小类型,有可能造成数据的丢失)
ALTER TABLE t_user MODIFY uid TINYINT (2);
#将uid修改列名称为u_id,类型修改为int
ALTER TABLE t_user CHANGE uid u_id INT(2);
#修改表字段
alter table `t_user2` change user_name uid int(4) not null,change address int(4) not null;
20.数据表更名
#方法一:
ALTER TABLE tal_name RENAME[TO|AS] new_tbl_name
#方法二:
RENAME TABLE tbl_name TO new_tbl_name[tbl_name2 TO new_tbl_name2]....
#将t_user修改成t_user3
ALTER TABLE t_user RENAME TO t_user3
#将t_user3修改成t_user
RENAME TABLE t_user3 TO t_user
修改补充
1.用SQL语言将某表的某个字段的数据类型改为。。。
alter table [table_name] modify [ziduan_name] [type];
2.用SQL语言将xxx1字段的位置改到xxx2字段的前面。
Alter table [table_name] modify xxx1 xxx1_type after xxx2
3.用SQL语言将grade字段改名为score。
Alter table [table_name] change grade score varchar(4) not null;
4.用SQL语言将grade表的存储引擎更改为MyISAM类型。
Alter table grade engine = MyISAM
借鉴了这位大兄弟的翻译 https://blog.youkuaiyun.com/qq_38967578/article/details/80875939
非常感谢!