********************** 主键 外键 **********************
1.主键(PRIMARY KEY)约束
一个表通常可以通过一列和多列组合的数据来唯一标识表中的每一列,这些列和列组合就被称为表上的主键,它可以用来强制实体完整性。
当一个表指定了PRIMARY KEY约束时,SQL SERVER通过为主键列上建立唯一索引来强制数据的唯一性。唯一性索引在主键被用于查询时可以对数据进行快速访问。
2.外键(FOREIGN KEY)约束
外键也是由一列或多列构成的,它用来建立和强制两个表间的关联。这种关联是通过将 一个表中的组成主键的列或组合列加入到另一个表中形成的,这个列或组合列就成了第二个表中的外键。
一个FOREIGN KEY约束并不一定要求必须与另一个表上的PRIMARY KEY约束相关联,它还可以被定义为对另一个列中的UNIQUE约束的一个引用。FOREIGN KEY约束可以允许空值,但是形成外键的列或组合列中出现空值时将跳过对FOREIGN KEY约束的验证。当向表中添加新数据行或修改已有的数据行时,在外键中的定义的列或组合列必须在其他表的主键中存在或是为空,否则将会出错。
注意:FOREIGN KEY约束可以对同一个数据库中的其他表上的列或组合列进行引用,也可以是对自身表中其他列或组合列的引用(自引用表)尽管外键的主要作用是用来限制可以输入到外键表中的数据,但是还可以限制对主键表中数据的修改。
FOREIGN KEY约束也可以被用作索引,这是因为:
1.对FOREIGN KEY约束的修改或被在其他表中的FOREIGN KEY约束所检查
2.外键列或组合列也常常被用于查询中,对于在具有FOREIGN KEY约束的表和其他有主键或
唯一键的表间进行查询时,可以在连接准则中使用外键列或组合列。索引允许SQL SERVER在外键中进行快速查找。但是对这样的索引的创建并不是必需的。
外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
********************** MySQL 导入 导出 数据 **********************
导入:
昨天要向MySQL数据库导入一个100M的sql文件,因为phpmyadmin最多支持8M的,文件太大估计会IE会停止响应,所以象以前一样采用下面的命令:
mysql -u root -p yourpassword yourdatabasename < c:\sqlfile.sql
可是就是不行,出来一大堆mysql的参数提示,不认我输入的命令参数,后来阿罗帮我写成下面这个样子,就是去掉了参数和数据之间的空格。
mysql -uroot -pyourpassword -h localhost yourdatabasename < c:\sqlfile.sql
导出:
从数据库导出数据库文件:(mysql的bin路径需要在系统路径中)
1.将数据库mydb导出到e:\mysql\mydb.sql文件中:
打开开始->运行->输入cmd 进入命令行模式
cd "C:\Program Files\MySQL\MySQL Server 5.0\bin"(在我的电脑中的路径)
c:\>mysqldump -h localhost -u root -p mydb >e:\mysql\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
2.将数据库mydb中的mytable导出到e:\mysql\mytable.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql
3.将数据库mydb的结构导出到e:\mysql\mydb_stru.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb --add-drop-table >e:\mysql\mydb_stru.sql
*********************** MySQL 手动增加、删除字段 ***********************
-- 删除列D
ALTER TABLE TTT DROP COLUMN D;
-- 一次删除两列B、C
ALTER TABLE TTT DROP COLUMN B, DROP COLUMN C;
-- 在最后一列后添加列F
ALTER TABLE TTT ADD COLUMN F VARCHAR(20) NOT NULL;
-- 在A列后添加一列Y
ALTER TABLE TTT ADD COLUMN Y VARCHAR(20) AFTER A;
-- 添加一列Z到第一列
ALTER TABLE TTT ADD COLUMN Z VARCHAR(20) FIRST;
-- 修改列Z的数据类型
ALTER TABLE TTT MODIFY Z BIGINT NOT NULL;
-- 修改列Z的数据类型,同时修改列名为N
ALTER TABLE TTT CHANGE Z N INT;
-- 在列N上添加索引INDEX_N(使用默认索引类型)
ALTER TABLE TTT ADD INDEX INDEX_N (N);
-- -------------表名操作--------------
-- 更改表名
RENAME TABLE TTT TO TT;
-- 删除表
DROP TABLE IF EXISTS TTT;
1.增加一个字段(一列)
alter table table_name add column column_name type default value; type指该字段的类型,value指该字段的默认值
例如:alter table mybook add column publish_house varchar(10) default '';
2.更改一个字段名字(也可以改变类型和默认值)
alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name指改后的字段名称
例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;
3.改变一个字段的默认值
alter table table_name alter column_name set default value;
例如:alter table book alter flag set default '0';
4.改变一个字段的数据类型
alter table table_name change column column_name column_name type;
例如:alter table userinfo change column username username varchar(20);
5.向一个表中增加一个列做为主键
alter table table_name add column column_name type auto_increment PRIMARY KEY;
例如:alter table book add column id int(10) auto_increment PRIMARY KEY;
6.数据库某表的备份,在命令行中输入:
mysqldump -u root -p database_name table_name > bak_file_name
例如:mysqldump -u root -p f_info user_info > user_info.dat
7.导出数据
select_statment into outfile"dest_file";
例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";
8.导入数据
load data infile"file_name" into table table_name;
例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;
9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。
例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;
10,删除字段
alter table form1 drop column 列名;
*************************** 删除重复记录 ***************************
查询记录
mysql> select * from test;
+----+-------+
| id | name |
+----+-------+
| 1 | phpzy |
| 2 | phpzy |
| 3 | phpzy.com |
| 4 | phpzy.com |
| 5 | phpzy.com |
查询无重复记录
mysql> select * from test where id in(select min(id) from test group by name);
+----+-------+
| id | name |
+----+-------+
| 1 | phpzy |
| 2 | phpzy.com |
r
+----+-------+
建一个表test2查询不重复test表
mysql> create table test2 select * from test where id in(select min(id) from test group by name);
mysql> select * from test2;
+----+-------+
| id | name |
+----+-------+
| 1 | phpzy |
| 2 | phpzy.com |
********************* 一些基本manual *********************
show databases;
show tables;
use XXX(database);
select count(*) from tablename;
delete from tablename where ---;
update tablename set "X"="X";
分享到:
相关推荐
### MySQL基础操作详解 #### 一、MySQL安装与配置 **1. 解压缩** - 首先,需要下载MySQL的安装包。通常可以从官方网站或其他可靠的来源获取。 - 下载完成后,将安装包解压到指定目录,例如`C:\MySQL`。 **2. ...
以下是从标题“mysql常用基础操作”及描述“mysql数据库的基本操作,后台的操作命令”中提炼出的关键知识点,涵盖了一系列重要的MySQL基本操作命令。 ### MySQL启动与管理 - **启动MySQL服务**:`/etc/init.d/...
mysql基本操作.ppt
MySQL 基本操作 MySQL 是一种关系型数据库管理系统,广泛应用于 Web 应用程序和企业级应用系统中。本文将介绍 MySQL 的基本操作,包括连接数据库、基本命令语法、常用命令等。 一、连接数据库 连接 MySQL 数据库...
mysql 基本操作命令和基本操作
以下是一些关于MySQL基础操作的关键点: 1. **安装MySQL**: - MySQL通常提供安装版和免安装版。安装版更便于管理和设置,适合不熟悉命令行操作的用户。在安装过程中,你可以设定初始的root用户的密码,这是非常...
MySql基本操作 yyds版
本教程将重点介绍在Windows操作系统中通过控制台来开启和关闭MySQL服务的基础操作。 一、安装MySQL服务 在开始进行控制台操作之前,你需要确保已经在你的计算机上安装了MySQL。通常,MySQL的安装过程中会自动创建一...
### MySQL基本操作详解 #### 一、MySQL简介 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),因其性能高效、稳定可靠而受到广大开发者的青睐。MySQL支持SQL(Structured Query Language)语言,用于管理...
Mysql基本操作与Mysql编程.pdf
MySql基础操作详解,希望能帮到大家
mysql常用操作命令 mysql是一个流行的关系数据库管理系统,作为开发人员,掌握mysql的常用操作命令是非常必要的。本文将对mysql的常用操作命令进行总结,包括连接mysql、查询版本信息、查询当前日期、查询服务器中...
02MySQL基本操作.md
0544_极智开发_解读mysql基本操作
主要时对MySQL的基本知识的了解,还有基本操作的代码进行了编写,我也会持续对里面的内容进行添加和修改。