mysql库/表操作(2018.09.25学习笔记)

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

猜你喜欢

转载自blog.csdn.net/oneeyear/article/details/82844895