MySQL常用语句

MySQL常用指令

修改表结构

启动mysql服务

#启动mysql服务,mysql55是安装MySQL服务器时指定的服务器名称
net start mysql55
#停止mysql服务
net stop mysql55

创建数据库

#创建数据库							设置字符集			设置排序规则
create database 数据库名 character set gb2312 collate gb2312_chinese_ci;

#查看数据库服务器中存在的数据库
show databases;

#指定查看某个数据库信息
show create database 数据库名;

修改数据库

#修改数据库字符集和排序规则
alert database 数据库名 character set utf8 collate utf8_bin;

删除数据库

drop database 数据库名;

创建和查看数据表

#使用use语句设置当前数据库
use 数据库名;

#查看数据表
show tables;

#创建数据表
create table 表名 (
	字段定义1,
    字段定义2,
    。。。。。。
    字段定义n
);

#例如
#primary key:主键 auto_increment:主键名称 comment:自增 用户ID:注释
create table user (
	uID int(11) primary key auto_increment comment '用户ID', 
    uName varchar(30) not null,
    uPwd varchar(30) not null,
    uSex enum('男','女') default '男'	#注意最后一行没有逗号
);

#查看表结构(方式一)
desc 数据库名.表名;

#查看表结构(方式二)
desc 数据库名.表名G;

修改表

#修改表名
alert table 原表名 rename 新表名;

#修改字段
alert table 表名 change 原字段名 新字段名 新数据类型;

#只修改字段类型
alert table 表名 modify 字段名 新数据类型;

#修改字段的排列位置
alert table 表名 modify 字段名1 数据类型 first|after 字段名2;

#添加新字段
alert table 表名 add 字段名 数据类型;

#删除字段
alert table 表名 drop 字段名;

#修改表的存储引擎
alert table 表名 engine=存储引擎名;

复制表

#复制表结构及数据到新表
create table 新表名 select * from 原表名;

#只复制表结构到新表
create table 新表名 select * from 原表名 where false;

#mysql 5.0后实现表结构复制还可以用like
create table 新表名 like 原表名;

#复制表的部分字段及数据到新表
create table 新表名 as (select 字段1,字段2,.....from 原表名);

删除表

#删除表
drop table 表名;

#删除多张表
drop table 表名1,表名2;

修改表数据

使用insert语句插入单条数据

insert into 表名 [(字段列表)] values(值列表);
insert into user values(1,'hello world');
#向指定字段插入数据
INSERT into user(uName,uPwd) values('张三','admin');

使用REPLACE语句插入单条数据

REPLACE INTO 表名[(字段列表)] values(值列表);
REPLACE INTO user(uId,uName,uPwd) values(3,'张三','admin');

使用INSERT语句插入多条语句

INSERT INTO 表名[(字段列表)] values(值列表1)[(值列表2),...(值列表n)];
#注意 插入的值必须对应前面的字段
INSERT INTO user(uName,uSex,uPwd) values
('张三','男','admin'),
('李四','男','admin1'),
('法外狂徒','男','admin2');

使用REPLACE语句插入多条语句

REPLACE INTO user(uID,uName,uSex,uPwd) values
(5,'张一','admin1'),
(6,'张二','admin2'),
(7,'张五','admin3');

插入其它表数据

INSERT INTO 目标数据表(字段列表一)
SELECT 字段列表二 FROM 源数据表 WHERE 条件表达式; 

INSERT语句的其他语法格式

INSERT INTO 表名
SET 字段名1=值1 [字段名2=值2,....]
#字段顺序可以调整
INSERT INTO user
SET uName='admin',
	uPwd='123',
	uSex='男';

修改数据

UPDATE语句用于更新数据表中的数据

UPDATE 表名
SET 字段名1=值1,字段名2=值2 ...,字段名n=值n
[where 条件表达式];
#修改admin的密码
UPDATE user
SET uPwd = '456'
where uName='admin';
#修改数据表中所有的密码
UPDATE user
SET uPwd = '123';

删除数据

使用delete删除数据

DELETE FROM 表名 [WHERE 条件表达式];
#删除id为4的记录
DELETE FROM user
WHERE uID=4;
#删除表中所有数据
DELETE FROM user;

使用TRUNCATE语句删除数据

TRUNCATE [TABLE] 表名;
#删除user表所有数据
TRUNCATE user;

DELETE和TRUNCATE语句都能删除表中所有数据,它们的区别:

  • DELETE语句可以实现带条件的数据删除,TRUNCATE只能清除表中记录
  • TRUNCATE语句清除表中数据后,再向表中插入数据时,自动增加的字段默认初始值从新从1开始;使用DELETE语句清除表中数据后,再向表中添加记录时,自增字段的值会从记录中该字段最大值加1开始编号。
  • 使用DELETE语句每删除一行记录都会记录在系统操作日志中,TRUNCATE语句清空数据时,不会在日志中记录删除内容,如要删除表中所有数据,TRUNCATE语句效率要高于DELETE语句。
原文地址:https://www.cnblogs.com/striver20/p/13853391.html