MySQL基本操作

注意要点:
1、mysql是不分大小写的。
2、[ ] 方括号里的命令是可选的。
3、在每一条sql语句中,都以 ;分号作为结束标志。
4、数据表里的列,代表是竖向,行代表横向,行里面的数据也可以叫记录。
===============================================================================

# mysql启动命令
>>>net start xxx	# xxx是mysql服务器名字,我这里是:wenSQL
-------------------
# mysql关闭命令
>>>net stop xxx

-------------------------------------------------------------------------------
# 登录mysql数据库
直接去开始里面找到mysql里的命令行,打开就会提示输入登录密码了。
# 以下命令都在mysql命令窗口里面执行;

使用命令登录数据库。
>mysql -u root -p
然后输入密码。

-------------------------------------------------------------------------------
# 数据库的查看、创建和删除。
----------------------------------
# 查看当前所有存在的数据库。
>show databases;

----------------------------------
# 查看创建好的数据库xxx的定义。注意:后面的\G加了可以使输出好看些。
>show create database 数据库名\G

----------------------------------
# 创建数据库,命令后面的 ; 分号要带上结尾,xxx是要创建数据库的名字。
创建的数据库,等于在系统磁盘上划分一块区域,数据库表名不能使用SQL关键字。
>create database 数据库名;
当创建重复名字时,就会报错,如果想要避免报错,可以使用以下命令:
>create database if not exists xxx;
这个相当于先判断,再自动创建。

---------------------------------
# 删除数据库,执行该命令时,要注意,mysql不会给任何确认提示。
>drop database xxx;
也可以用>drop database if not exists xxx;	先判断,后删除,避免报错。
若数据库不存在,则会报错。

------------------------------------------------------------------------------
# 数据库表
---------------------
# 创建表。
首先选用数据库:(以下代码都要先运行打开数据库命令。)
>use 数据库名;
然后创建表结构:
>create [temporary] table [if not exists] 表名
其中 temporary 参数,如果使用了这个关键字的话,就代表新建的表为临时表,
临时表会随着断开与该数据库连接时,mysql会自动删除临时表。如果不加这个关键字,
就代表是持久表,持久表一旦创建,将会一直存在。
# 格式如下:
create table 表名
(
字段名1 数据类型 [列级别约束条件] [默认值],
字段名2 数据类型 [列级别约束条件] [默认值],
.......
[表级别约束条件]
);

**************************************************
# 主键,不是每一个表中都一定需要有主键。
主键,又称主码,主键约束要求主键列的数据是唯一的,不能有重复,并且不允许空。
使用 primary key 创建主键
1、设置单字段主键
第一种方法:字段名 数据类型 primary key [默认值]
>create table xx
(
id		int(11)	 primary key,
name	varchar(25)
);

第二种方法:
>create table xx
(
id	int(11),
name	varchar(25),
primary key(id)
);
---------------------
2、设置多字段主键。
>create table xx
(
id	int(11),
name	varchar(25),
primary key(id,name)
);

**************************************************
# 使用非空约束。
非空约束 not null 指该字段不能为空。对于使用了非空约束的字段,如果添加了没有东西,数据库系统会报错。
语法格式如下:相当于写在默认值的位置。
字段名 数据类型 not null
create table xx
(
id	int(11)	primary key,
name	varchar(25)	not null
);
name 该列的值,就不能为空了。

**************************************************
# 使用唯一性约束。
唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
语法格式:字段名 数据类型 unique
>create table xx
(
id	int(11)	primary key,
name	varchar(22)	unique
);
还有一种方法:
>create table xx
(
id	int(11)	primary key,
name	varchar(22),
constraint sth unique(name)	# 也可以这样定义
);

**************************************************
# 使用默认约束。
语法格式:字段名 数据类型 default 默认值
>create table xx
(
id	int(11)	primary key,
name	varchar(25)	not null,
deptid	int(11)	default 111
);
插入的数据如果没有指定deptid,那默认都为111。


**************************************************
# 设置表的属性值自动增加。
在数据库应用中,经常希望在每次插入新记录时,系统会自动生成字段的主键值。
可以通过为表主键添加 auto_increment 关键字来实现。写在默认值里面。
在MySQL中 auto_increment 的初始值是 1 ,每新增一条记录,字段值自动加 1 ,
一个表只能有一个字段使用该关键字,且该字段必须为主键的一部分。
auto_increment约束的字段可以是任何整数类型。
语法格式:字段名 数据类型 auto_increment
>create table xx
(
id int(11) primary key auto_increment,
name int(11)
);
id字段的值,在添加记录时,会自动增加 1 。

**************************************************
# 查看显示当前数据库包含的表。
>show tables;

**************************************************
# 显示表的结构。
1、
>describe 表名;
2、简写
>desc 表名;
输出的表结构解释如下:
Field:列名。
Type:数据类型。
Null:表示该列是否可以为null值。
Key:表示该列是否已编制索引。
Default:表示该列是否有默认值,如果有的话,就会显示值是多少。
Extra:表示可以获取的与给定列有关的附加信息,列如 auto_increment等。

**************************************************
# 查看表详细的结构语句。
>show create table 表名\G;

**************************************************
# 复制现成的表,复制表的结构和数据。
有两种方法:
第一种:
>create table 新表名 like 旧表名;
第二种:
>create table 新表名 as (select * from 旧表名);

---------------------------------------------------------------------------
# 修改表。
*************************
1、修改表的结构。
alter [ignore] table [修改项...]用于更改原有表的结构。例如可以增加(删减)、创建(取消)索引、更改原有列的类型、重新命名列或表,还可以更改表的评注和表的类型。
>alter [ignore] table 表名
然后就要输入需要修改哪些东西的命令了:

其中修改项:
add [column] 列定义 [first | after 列名]		# 添加列
alter [column] 列名 {set default literal | dtio default}		# 修改默认值
change [column] 旧列名  列定义 [first|after 列名]	# 对列重命名
modify [column] 定义列 [first | afitrs] 	# 修改列类型
drop [colum] 列名	# 删除列
rename [ot] 新表名		#重命名该表
ordder by 列名		# 排序
convert to character set 字符集名 [collate 校对规则名]	# 将字符串转换为二进制
[default] character set 字符集名 [collate 校对规则名称]	# 修改默认字符集
*************************
ignore:MySQL相对标准SQL的扩展。若修改后的新表中存在重复关键字,如果没有指定ignore,
		当重复关键字错误发生时操作失败;如果指定了ignore,则对于有重复关键字的行只使用第一行,其他有冲突行被删除。
-------------------------------------
列定义:定义列的数据类型和属性,具体内容在create table 的语法中已做说明。
-------------------------------------
add[column]子句:向表中增加新列。
例如:在xx表中增加新的一列“考评”:
语法格式:alter table 表名 add 新字段名 数据类型;
>alter table xx add column 考评 tinyint null;
alter table 表名 add 新字段名 数据类型 first; 这语句可以在第一列添加字段
alter table 表名 add 新字段名 数据类型 after name;  这语句可以在name字段后面添加字段

-------------------------------------
first | after 列定义:表示在某列的前或后添加,不指定则添加到最后。

-------------------------------------
alter[conlumn]子句:修改表中指定列的默认值。

-------------------------------------
change [conlumn]子句:修改列的名称。重命名时,需给定旧的和新的列的列名称以及列当前的类型,定义新的列名和当前数据类型。
例如:要把 考评 列名更改为 考评分:
>alter table xx change 考评 考评分 tinyint;

-------------------------------------
modify[column]子句:修改指定的类型。
例如:把一个列的数据类型更改为 integer:
>alter table xx modify 考评分 integer not null;
注意:若表中修改的类型和原有类型发生冲突,那将会报错。

-------------------------------------
drop子句:从表中删除列或约束。
删除字段
语法格式:alter table 表名 drop 字段名;

-------------------------------------
rename子句:修改该表的表名。
例如:将xx表名改为xx1:
>alter table xx rename to xx1;

-------------------------------------
order by子句:用于在创建新表时,让各行按一定的顺序排列。注意:在执行插入和删除操作后,
			  表不会仍保持此排序。在对表进行了大的改动后,通过使用此项,可以提高查询效率。
			  在有些情况下,如果表按照排序,对于MySQL来说,排序可能会更简单。

# 修改字段排列的位置。
语法格式:alter table 表名 modify 字段1 数据类型 first|after 字段2;
数据类型指的是字段1的数据类型,first为可选参数,指将 字段1 修改为表的第一个字段,
after 字段2 指将 字段1 插入到 字段2 后面。

-------------------------------------
# 更改表的储存引擎。
可以使用 show engines; 命令查看系统支持的储存引擎。
可以使用 show create table 表名\G; 命令查看该表是什么储存引擎的。看倒数的代码(ENGINE=xxxx)这里写着。

**************************************************
2、更改表名。
>rename table 原表名 to 新表名;

-------------------------------------
3、删除表。
>drop [temporary] table [if exists] 表名;

--------------------------------------
4、查看表内容;
>select * from 表名;

# 删除表中的数据。
>delete from 表名;

**************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值