mysql库/表操作(2018.09.25)
程序员文章站
2022-05-30 09:20:07
...
1.登录
mysql -u root -p
2.数据库
2.0创建数据库
create database <库名>;
2.1使用数据库
use <表名>;
2.2显示系统所有的数据库
show databases;
2.3显示当前数据库中的表
show tables;
3.表操作
3.0创建表
create table <表名>(
<列名> <数据类型> [约束条件];
...
)
3.1修改表名
alter table <旧表名> rename [to] <新表名>;
3.2修改数据类型
alter table <表名> modify <字段名> <数据类型>;
3.3修改字段名
alter table <表名> change <旧字段名> <新字段名> <新数据类型>;
3.4添加字段
alter table <表名> add <新字段名> <数据类型> [约束条件] [first|after 已存在字段名];
3.5删除字段
alter table <表名> drop <字段名>;
3.6修改字段的排列位置
alter table <表名> modify <字段1> <数据类型> first|after <字段2>;
3.7修改存储引擎
alter table tb_test engine=MyISAM;
3.8删除表的外键约束
alter table <表名> drop foreign key <外键约束名>;
3.9删除表(无关联表)
drop table [if exists] 表1,表2,...表n;
3.10删除表(关联表)
alter table <被关联表名> drop foreign key <关联名>; --先解除关联
drop table <关联表名>;
4.主键
4.0创建表时指定主键的方式一:
create table product
(
productID int PRIMARY KEY,
pName VARCHAR(10),
price DOUBLE
)ENGINE=MyISAM default CHARSET=utf8;
4.1创建表时指定主键的方式二:
create table product
(
productID int,
pName VARCHAR(10),
price DOUBLE,
CONSTRAINT pk_s_productID PRIMARY KEY(productID)
)ENGINE=MyISAM default CHARSET=utf8;
4.2增加主键
alter table TStudent add primary key(studentid);
4.3删除主键
alter table TStudent drop primary key;
4.4创建表时指定自增自增列
create table product
(
productID int PRIMARY KEY AUTO_INCREMENT not NULL,
pName VARCHAR(10),
price DOUBLE
)ENGINE=MyISAM default CHARSET=utf8;
4.5为现有的表指定自增列
alter table TStudent modify column studentID int PRIMARY KEY AUTO_INCREMENT;
4.6删除表中自增列
alter table TStudent modify column studentID int not NULL;
删除自增列,仍然是主键,但是没有自增长功能
4.7创建表时指定复合主键
create table student
(
studentID int,
id INT,
sname VARCHAR(10),
score int,
PRIMARY KEY(studentid,id)
)ENGINE=MyISAM default CHARSET=utf8;
4.8给表增加复合主键
alter table student add PRIMARY KEY(sudentID,id);
4.9删除复合主键
alter table student drop PRIMARY KEY;
5.约束
5.0创建表时指定唯一性约束
create table score
(
sname VARCHAR(10) UNIQUE,
score int not NULL
);
5.1给现有列增加唯一性约束
alter table score add CONSTRAINT uc_sname UNIQUE(sname);
如果表中现有记录有重复值,不允许添加唯一性约束。可以通过聚合函数,查找有重复值的记录,删除,再创建唯一性约束。
5.2创建复合唯一性约束
create table student
(
studentID int,
id INT,
sname VARCHAR(10),
score int,
CONSTRAINT uc_id UNIQUE(studentID, id)
)ENGINE=MyISAM default CHARSET=utf8;
5.3删除列的唯一性约束
alter table score drop index uc_sname;
------------------------------2018.09.26------------------------------
几点补充:
1.外键约束不能夸引擎使用;
2.表之间需要连接才用到主键;
3.有外键约束的表删除之前需要先删除约束;
4.自增列默认是从1开始,但可以自己设置。
如果是已经建好的表:
id列自增的话,先给id列加索引
alter table 表名 add index id(id);
再设置自增属性:
alter table modify id int auto_increment;
如果是未建立的表,直接建立的时候设置就好.给了id主键
create table t(id int not null primary key auto_increment)
修改自增列的起始值
alter table <表名> AUTO_INCREMENT = 自增列初始值;
修改自增列的步长间隔
set @@auto_increment_increment=10;
查看起始值和步长
show variables like '%auto_increment%';
查询表格状态(能够查自增列的起始值)
show table status;
以上部分参考链接:http://blog.51cto.com/9291927/2093934(如有侵权,联系删除)
本文链接:https://blog.csdn.net/oneeyear/article/details/82844895
下一篇: 【转】关于Java的CRC16校验