Mysql基础
一、基本命令
1、创建数据表
创建数据表使用CREATE TABLE语句。语法如下:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
数据表名
[(create_definition,…)][table_options] [select_statement]
2、使用SHOW COLUMNS语句查看
在MySQL中,使用SHOW COLUMNS语句可以查看表结构,SHOW COLUMNS
语句的基本语法格式如下:
SHOW [FULL] COLUMNS FROM
数据表名
[FROM
数据库名
];
或
SHOW [FULL] COLUMNS FROM
数据库名
.
数据表名
;
3、
使用DESCRIBE语句查看
在
MySQL
中,还可以使用
DESCRIBE
语句查看数据表结构。
DESCRIBE
语句的基
本语法格式如下:
DESCRIBE
数据表名
;
其中,
DESCRIBE
可以简写成
DESC
。在查看表结构时,也可以只列出某一列的信
息。其语法格式如下:
DESCRIBE
数据表名 列名
;
4、添加新字段及修改字段定义
在
MySQL
的
ALTER TABLE
语句中,可以通过使用
ADD [COLUMN]
create_definition [FIRST | AFTER column_name ]
子句来添加新字段;使用
MODIFY [COLUMN] create_definition
子句可以修改已定义字段的定义。下面将
通过一个具体实例演示如何为一个已有表添加新字段,并修改已有字段的字段定义。
5、修改字段名
在
MySQL
的
ALTER TABLE
语句中,使用
CHANGE [COLUMN]
old_col_name create_definition
子句可以修改字段名或者字段类型。下面将
通过一个具体实例演示如何修改字段名
6、删除字段
在
MySQL
的
ALTER TABLE
中,使用
DROP [COLUMN]
col_name
子句可以删除指定字段。下面将通过一个具体实例演示如何删除
字段。
7、
修改表名
在
MySQL
的
ALTER TABLE
中,使用
RENAME [AS] new_tbl_name
子
句可以修改表名。下面将通过一个具体实例演示如何修改表名。
8、
重命名表
在
MySQL
中,重命名数据表可以使用
RENAME TABLE
语句来实现。
RENAME TABLE
语句的基本语法格式如下:
RENAME TABLE
数据表名
1 To
数据表名
2
9、复制表
创建表的
CREATE TABLE
命令还有另外一种语法结构,在一张已经存在的数据表
的基础上创建一份该表的拷贝,也就是复制表。
这种用法的语法格式如下:
CREATE TABLE [IF NOT EXISTS]
数据表名
{LIKE
源数据表名
| (LIKE
源数据表名
)}
10、删除表
删除数据表的操作很简单,同删除数据库的操作类似,使用
DROP TABLE
语句即可
实现。
DROP TABLE
语句的基本语法格式如下:
DROP TABLE [IF EXISTS]
数据表名
;
11、插入数据
在建立一个空的数据库和数据表时,首先需要考虑的是如何向数据表中添
加数据,该操作可以使用
INSERT
语句来完成。使用
INSERT
语句可以向一个已有数
据表插一个新行,也就插入一行新记录。在
MySQL
中,
INSERT
语句有
3
种语法格
式,分别是
INSERT... VALUES
语句、
INSERT... SET
语句和
INSERT... SELECT
语句。
①使用INSERT... VALUES语句插入数据
使用
INSERT... VALUES
语句插入数据,是
INSERT
语句的最常用的语法格式。它
的语法格式如下:
insert into
表名
[(
字段名
1
,字段名
2,…)] values(
值
1,
值
2,…);
②使用INSERT... VALUES语句插入数据
USE db_admin;
插入一条完整数据
INSERT INTO tb_user VALUES(1,
‘
zhangsan',
‘
123456',now());
SELECT * FROM tb_user;
插入数据记录的一部分
INSERT INTO tb_user (username,password) VALUES('rjkflm','111');
SELECT * FROM tb_user;
插入多条数据
INSERT INTO tb_user (username,password,createtime)
VALUES('mrbccd','111', '2019-09-05 10:35:26')
,( 'mingri','111', '2019-09-05 10:45:27')
,( 'mingrisoft','111', '2019-09-05 10:55:28');
SELECT * FROM tb_user;
③
使用INSERT... SET语句插入数据
在
MySQL
中,除了使用
INSERT... VALUES
语句可以插入数据外,还可以使用
INSERT... SET
语句插入数据。这种语法格式用于通过直接给表中的某些字段指定对
应的值来实现插入指定数据,对于未指定值的字段将采用默认值进行添加。
INSERT... SET
语句的语法格式如下:
INSERT INTO
数据表名
SET
字段名
1=
值
,
字段名
2=
值
2,...
12、插入查询结果
在
M y S Q L
中 , 支 持 将 查 询 结 果 插 入 到 指 定 的 数 据 表 中 , 这 可 以 通 过
INSERT...SELECT
语句来实现。
INSERT [INTO]
数据表
1 [(
字段名
,...)]
SELECT
列名
1
,列名
2… FROM
数据表
2
;
13、创建数据表时给字段设置默认值
在字段名和类型后面,加上:
default
默认值
14、创建数据表时加入约束
Ø
constraint
Ø
什么是约束?
实际上是对表中数据的限制条件
Ø
设计表时加入约束的目的?
保证表中数据的完整和有效
15、非空约束(not null)
作用:
not null
约束的字段不能为
NULL
值,必须赋予具体数据
16、唯一性约束(unique)
作用:
unique
约束的字段具有唯一性,不可重复
注意:
unique
约束的字段不能重复,但是可以为
NULL
,
NULL
不是一个值,也不能
用等号比较
17、组合使用 not null 和 unique
被
not null
和
unique
约束的字段,该字段即不能为
null
也不能重复
18、主键约束PK(primary key)
添加主键
primary key
的字段即不能重复也不能为空,效果与“
not null
unique”
相同,但本质是不同的,添加主键约束之后,主键不仅会有“
not null
unique”
作用,而且主键字段还会自动添加“索引
— index”
主键根据个数分类:单一主键、复合主键
19、MySQL中自动生成主键值(MySQL特有)
MySQL
数据库管理系统中提供了一个自增数字
auto_increment
,专门用来自
动生成主键值,主键值不需要用户去维护,也不需要用户生成,
MySQL
会自动生成。
自增数字默认从
1
开始,以
1
递增:
1
、
2
、
3
、
4
、
…
20、外键约束FK(foreign key)
外键是相对于主键说的,是建立表之间的联系的必须的前提
外键根据个数分为:单一外键、复合外键
外键可以使得两张表关联,保证数据的一致性和实现一些级联操作
结论(
classno
值必须来自
cno
):为了保证
t_student
表中的
classno
字段中
的数据必须来自
t_class
表中的
cno
字段中数据,有必要给
t_student
表中
classno
字段添加外键约束;
classno
称为外键字段,
classno
中的
100
、
200
、
300
称为外键值,
classno
在这里是单一外键;
注意以下三点:
①外键字段可以为NULL,外键为空的数据也叫孤儿数据;
②被引用字段必须具有unique
约束;
③5有了外键引用之后,表分为父表和子表,以上父表:班级表
t_class
; 子表是:
学生表
t_student
;删除表时先删除子表,再删除父表;插入数据时,先插入父表
数据再插入子表数据;
21、
修改数据
要执行修改的操作可以使用
UPDATE
语句,语法如下:
UPDATE
表名
SET
字段名
=
字段值,字段名
=
字段值
WHERE
条件;
注意:
update
如果没有条件限制,将把整张表的数据全部更新
UPDATE tb_user SET password='123' WHERE username='mrbccd';
UPDATE tb_user SET password='123' ;
22、删除数据
在数据库中,有些数据已经失去意义或者错误时就需要将它们删除,在
MySQL
中,可以使用
DELETE
语句或者
TRUNCATE TABLE
语句删除表中的一行或
多行数据
①
通过DELETE语句删除数据
通过
DELETE
语句删除数据的基本语法格式如下:
DELETE FROM
表名
WHERE
条件限制;
注意:若没有条件限制,会将表中所有记录全部删除;
DELETE FROM tb_user WHERE username=
‘
abs';
DELETE FROM tb_user_bak;
SELECT * FROM tb_user;
②通过TRUNCATE TABLE语句删除数据
在删除数据时,如果要从表中删除所有的行,通过
TRUNCATE TABLE
语句删除数
据的基本语法格式如下:
TRUNCATE [TABLE]
数据表名
23、数据库的备份与还原
使用
mysqldump
命令实现数据备份
,mysqldump
命令可以将数据库中的数据备份
成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。
•
备份整个数据库
mysqldump -u root -p db_admin > db_admin.sql
•
备份数据库中的一张表
m y s q l d u m p - u r o o t - p d b _ a d m i n t b _ a d m i n >
db_admin.tb_admin.sql
使用
source
命令导入数据备份
•
连接到数据库
•
create database test4;
•
use test4;
•
source c:/xampp/db_admin.sql